From b0c819facfd2222853b1fe69a2e0891e17db6791 Mon Sep 17 00:00:00 2001 From: "jar@chromium.org" Date: Sun, 8 Mar 2009 04:52:15 +0000 Subject: The MetricsService are not initialized unless the user have opted in See contributed CL 28315 by Xharze BUG=2278 Review URL: http://codereview.chromium.org/40274 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11219 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/metrics/metrics_service.cc | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'chrome/browser/metrics') diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc index 220102f..858032a 100644 --- a/chrome/browser/metrics/metrics_service.cc +++ b/chrome/browser/metrics/metrics_service.cc @@ -430,6 +430,19 @@ void MetricsService::SetRecording(bool enabled) { return; if (enabled) { + if (client_id_.empty()) { + PrefService* pref = g_browser_process->local_state(); + DCHECK(pref); + client_id_ = WideToUTF8(pref->GetString(prefs::kMetricsClientID)); + if (client_id_.empty()) { + client_id_ = GenerateClientID(); + pref->SetString(prefs::kMetricsClientID, UTF8ToWide(client_id_)); + + // Might as well make a note of how long this ID has existed + pref->SetString(prefs::kMetricsClientIDTimestamp, + Int64ToWString(Time::Now().ToTimeT())); + } + } StartRecording(); ListenerRegistration(true); } else { @@ -592,15 +605,6 @@ void MetricsService::InitializeMetricsState() { UTF8ToWide(MetricsLog::GetVersionString())); } - client_id_ = WideToUTF8(pref->GetString(prefs::kMetricsClientID)); - if (client_id_.empty()) { - client_id_ = GenerateClientID(); - pref->SetString(prefs::kMetricsClientID, UTF8ToWide(client_id_)); - - // Might as well make a note of how long this ID has existed - pref->SetInt64(prefs::kMetricsClientIDTimestamp, Time::Now().ToTimeT()); - } - // Update session ID session_id_ = pref->GetInteger(prefs::kMetricsSessionID); ++session_id_; -- cgit v1.1