diff options
author | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-23 21:14:38 +0000 |
---|---|---|
committer | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-23 21:14:38 +0000 |
commit | 541f7792a2526af07cc2593ef5961fb58a472b0c (patch) | |
tree | 1ec1e4fa080111a490722dd9d6f3a6154e9a7185 /chrome/browser/metrics/metrics_service.cc | |
parent | 6eaddcc1be66c1ffb3980a6b5b1fe0f106be67e9 (diff) | |
download | chromium_src-541f7792a2526af07cc2593ef5961fb58a472b0c.zip chromium_src-541f7792a2526af07cc2593ef5961fb58a472b0c.tar.gz chromium_src-541f7792a2526af07cc2593ef5961fb58a472b0c.tar.bz2 |
Discard crash data during first run of a new version.
Avoid confusion associated with uploading crash data from an old version
during the first run of a new version.
Carlos: Please confirm that you're fine with discarding metrics about
installer and Render in Sbox.
Evan: Please confirm that I got all the usage/crash stats.
r=cpu,evanm,mal
Review URL: http://codereview.chromium.org/28017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10211 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/metrics/metrics_service.cc')
-rw-r--r-- | chrome/browser/metrics/metrics_service.cc | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc index 2906ef3..4d34ebb 100644 --- a/chrome/browser/metrics/metrics_service.cc +++ b/chrome/browser/metrics/metrics_service.cc @@ -306,6 +306,7 @@ void MetricsService::RegisterPrefs(PrefService* local_state) { local_state->RegisterStringPref(prefs::kStabilityLaunchTimeSec, L"0"); local_state->RegisterStringPref(prefs::kStabilityLastTimestampSec, L"0"); local_state->RegisterStringPref(prefs::kStabilityUptimeSec, L"0"); + local_state->RegisterStringPref(prefs::kStabilityStatsVersion, L""); local_state->RegisterBooleanPref(prefs::kStabilityExitedCleanly, true); local_state->RegisterBooleanPref(prefs::kStabilitySessionEndCompleted, true); local_state->RegisterIntegerPref(prefs::kMetricsSessionID, -1); @@ -336,6 +337,31 @@ void MetricsService::RegisterPrefs(PrefService* local_state) { local_state->RegisterListPref(prefs::kMetricsOngoingLogs); } +// static +void MetricsService::DiscardOldStabilityStats(PrefService* local_state) { + local_state->SetBoolean(prefs::kStabilityExitedCleanly, true); + + local_state->SetInteger(prefs::kStabilityIncompleteSessionEndCount, 0); + local_state->SetInteger(prefs::kStabilityBreakpadRegistrationSuccess, 0); + local_state->SetInteger(prefs::kStabilityBreakpadRegistrationFail, 0); + local_state->SetInteger(prefs::kStabilityDebuggerPresent, 0); + local_state->SetInteger(prefs::kStabilityDebuggerNotPresent, 0); + + local_state->SetInteger(prefs::kStabilityLaunchCount, 0); + local_state->SetInteger(prefs::kStabilityCrashCount, 0); + + local_state->SetInteger(prefs::kStabilityPageLoadCount, 0); + local_state->SetInteger(prefs::kStabilityRendererCrashCount, 0); + local_state->SetInteger(prefs::kStabilityRendererHangCount, 0); + + local_state->SetInteger(prefs::kSecurityRendererOnSboxDesktop, 0); + local_state->SetInteger(prefs::kSecurityRendererOnDefaultDesktop, 0); + + local_state->SetString(prefs::kStabilityUptimeSec, L"0"); + + local_state->ClearPref(prefs::kStabilityPluginStats); +} + MetricsService::MetricsService() : recording_active_(false), reporting_active_(false), @@ -550,6 +576,15 @@ void MetricsService::InitializeMetricsState() { PrefService* pref = g_browser_process->local_state(); DCHECK(pref); + if (WideToUTF8(pref->GetString(prefs::kStabilityStatsVersion)) != + MetricsLog::GetVersionString()) { + // This is a new version, so we don't want to confuse the stats about the + // old version with info that we upload. + DiscardOldStabilityStats(pref); + pref->SetString(prefs::kStabilityStatsVersion, + UTF8ToWide(MetricsLog::GetVersionString())); + } + client_id_ = WideToUTF8(pref->GetString(prefs::kMetricsClientID)); if (client_id_.empty()) { client_id_ = GenerateClientID(); @@ -779,7 +814,7 @@ void MetricsService::PushPendingLogsToUnsentLists() { state_ = SEND_OLD_INITIAL_LOGS; } else { // TODO(jar): Verify correctness in other states, including sending unsent - // iniitial logs. + // initial logs. PushPendingLogTextToUnsentOngoingLogs(); } DiscardPendingLog(); |