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

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: 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 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;

Powered by Google App Engine
This is Rietveld 408576698