Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10462)

Unified Diff: chrome_frame/metrics_service.cc

Issue 9396001: Begin to separate the MetricsService logic for creating vs uploading logs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome_frame/metrics_service.cc
diff --git a/chrome_frame/metrics_service.cc b/chrome_frame/metrics_service.cc
index 622a892ae4b9e2ca4432065070afc1b995ebfc52..0186b24c0e10fce000fdcd318b60ae8fa42fe825 100644
--- a/chrome_frame/metrics_service.cc
+++ b/chrome_frame/metrics_service.cc
@@ -366,8 +366,11 @@ void MetricsService::StartRecording() {
if (log_manager_.current_log())
return;
+ MetricsLogManager::LogType log_type = (state_ == INITIALIZED) ?
+ MetricsLogManager::INITIAL_LOG : MetricsLogManager::ONGOING_LOG;
log_manager_.BeginLoggingWithLog(new MetricsLogBase(client_id_, session_id_,
- GetVersionString()));
+ GetVersionString()),
+ log_type);
if (state_ == INITIALIZED)
state_ = ACTIVE;
}
@@ -384,10 +387,12 @@ void MetricsService::StopRecording(bool save_log) {
RecordCurrentHistograms();
}
- if (save_log)
- log_manager_.StageCurrentLogForUpload();
- else
+ if (save_log) {
+ log_manager_.FinishCurrentLog();
+ log_manager_.StageNextLogForUpload();
+ } else {
log_manager_.DiscardCurrentLog();
+ }
}
void MetricsService::MakePendingLog() {
@@ -409,8 +414,6 @@ void MetricsService::MakePendingLog() {
DCHECK(false);
return;
}
-
- DCHECK(log_manager_.has_staged_log());
}
bool MetricsService::TransmissionPermitted() const {
@@ -434,19 +437,18 @@ bool MetricsService::UploadData() {
}
MakePendingLog();
- DCHECK(log_manager_.has_staged_log());
bool ret = true;
- if (log_manager_.staged_log_text().empty()) {
- NOTREACHED() << "Failed to compress log for transmission.";
- ret = false;
- } else {
+ if (log_manager_.has_staged_log()) {
HRESULT hr = ChromeFrameMetricsDataUploader::UploadDataHelper(
log_manager_.staged_log_text().xml);
DCHECK(SUCCEEDED(hr));
+ log_manager_.DiscardStagedLog();
+ } else {
+ NOTREACHED();
+ ret = false;
}
- log_manager_.DiscardStagedLog();
currently_uploading = 0;
return ret;

Powered by Google App Engine
This is Rietveld 408576698