Index: chrome_frame/metrics_service.cc |
diff --git a/chrome_frame/metrics_service.cc b/chrome_frame/metrics_service.cc |
index 01e3c50d93cc01737cb353c51a7c8bdff9cdc289..402a717af82331fa98873a28b214a4f613901203 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 { |
@@ -432,19 +435,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()); |
DCHECK(SUCCEEDED(hr)); |
+ log_manager_.DiscardStagedLog(); |
+ } else { |
+ NOTREACHED() << "Failed to prepare log for transmission."; |
Ilya Sherman
2012/02/29 01:25:41
nit: There was a thread recently about not printin
stuartmorgan
2012/02/29 13:26:15
Yep, should have noticed that while I was moving t
|
+ ret = false; |
} |
- log_manager_.DiscardStagedLog(); |
currently_uploading = 0; |
return ret; |