| Index: chrome/browser/metrics/chrome_stability_metrics_provider.cc
|
| diff --git a/chrome/browser/metrics/chrome_stability_metrics_provider.cc b/chrome/browser/metrics/chrome_stability_metrics_provider.cc
|
| index a26d263d3f6913906dcaef38f4e92358f05fdc64..d1da84c00b52c9958b2b5415db01f40a9d708099 100644
|
| --- a/chrome/browser/metrics/chrome_stability_metrics_provider.cc
|
| +++ b/chrome/browser/metrics/chrome_stability_metrics_provider.cc
|
| @@ -11,7 +11,6 @@
|
| #include "base/metrics/sparse_histogram.h"
|
| #include "base/prefs/pref_registry_simple.h"
|
| #include "base/prefs/pref_service.h"
|
| -#include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/common/chrome_constants.h"
|
| #include "chrome/common/pref_names.h"
|
| @@ -42,20 +41,6 @@
|
|
|
| namespace {
|
|
|
| -void IncrementPrefValue(const char* path) {
|
| - PrefService* pref = g_browser_process->local_state();
|
| - DCHECK(pref);
|
| - int value = pref->GetInteger(path);
|
| - pref->SetInteger(path, value + 1);
|
| -}
|
| -
|
| -void IncrementLongPrefsValue(const char* path) {
|
| - PrefService* pref = g_browser_process->local_state();
|
| - DCHECK(pref);
|
| - int64 value = pref->GetInt64(path);
|
| - pref->SetInt64(path, value + 1);
|
| -}
|
| -
|
| // Converts an exit code into something that can be inserted into our
|
| // histograms (which expect non-negative numbers less than MAX_INT).
|
| int MapCrashExitCodeForHistogram(int exit_code) {
|
| @@ -120,7 +105,10 @@ void RecordChildKills(bool was_extension_process) {
|
|
|
| } // namespace
|
|
|
| -ChromeStabilityMetricsProvider::ChromeStabilityMetricsProvider() {
|
| +ChromeStabilityMetricsProvider::ChromeStabilityMetricsProvider(
|
| + PrefService* local_state)
|
| + : local_state_(local_state) {
|
| + DCHECK(local_state_);
|
| BrowserChildProcessObserver::Add(this);
|
| }
|
|
|
| @@ -146,38 +134,38 @@ void ChromeStabilityMetricsProvider::OnRecordingDisabled() {
|
|
|
| void ChromeStabilityMetricsProvider::ProvideStabilityMetrics(
|
| metrics::SystemProfileProto* system_profile_proto) {
|
| - PrefService* pref = g_browser_process->local_state();
|
| metrics::SystemProfileProto_Stability* stability_proto =
|
| system_profile_proto->mutable_stability();
|
|
|
| - int count = pref->GetInteger(prefs::kStabilityPageLoadCount);
|
| + int count = local_state_->GetInteger(prefs::kStabilityPageLoadCount);
|
| if (count) {
|
| stability_proto->set_page_load_count(count);
|
| - pref->SetInteger(prefs::kStabilityPageLoadCount, 0);
|
| + local_state_->SetInteger(prefs::kStabilityPageLoadCount, 0);
|
| }
|
|
|
| - count = pref->GetInteger(prefs::kStabilityChildProcessCrashCount);
|
| + count = local_state_->GetInteger(prefs::kStabilityChildProcessCrashCount);
|
| if (count) {
|
| stability_proto->set_child_process_crash_count(count);
|
| - pref->SetInteger(prefs::kStabilityChildProcessCrashCount, 0);
|
| + local_state_->SetInteger(prefs::kStabilityChildProcessCrashCount, 0);
|
| }
|
|
|
| - count = pref->GetInteger(prefs::kStabilityRendererCrashCount);
|
| + count = local_state_->GetInteger(prefs::kStabilityRendererCrashCount);
|
| if (count) {
|
| stability_proto->set_renderer_crash_count(count);
|
| - pref->SetInteger(prefs::kStabilityRendererCrashCount, 0);
|
| + local_state_->SetInteger(prefs::kStabilityRendererCrashCount, 0);
|
| }
|
|
|
| - count = pref->GetInteger(prefs::kStabilityExtensionRendererCrashCount);
|
| + count =
|
| + local_state_->GetInteger(prefs::kStabilityExtensionRendererCrashCount);
|
| if (count) {
|
| stability_proto->set_extension_renderer_crash_count(count);
|
| - pref->SetInteger(prefs::kStabilityExtensionRendererCrashCount, 0);
|
| + local_state_->SetInteger(prefs::kStabilityExtensionRendererCrashCount, 0);
|
| }
|
|
|
| - count = pref->GetInteger(prefs::kStabilityRendererHangCount);
|
| + count = local_state_->GetInteger(prefs::kStabilityRendererHangCount);
|
| if (count) {
|
| stability_proto->set_renderer_hang_count(count);
|
| - pref->SetInteger(prefs::kStabilityRendererHangCount, 0);
|
| + local_state_->SetInteger(prefs::kStabilityRendererHangCount, 0);
|
| }
|
|
|
| #if defined(OS_WIN)
|
| @@ -186,15 +174,13 @@ void ChromeStabilityMetricsProvider::ProvideStabilityMetrics(
|
| }
|
|
|
| void ChromeStabilityMetricsProvider::ClearSavedStabilityMetrics() {
|
| - PrefService* local_state = g_browser_process->local_state();
|
| -
|
| // Clear all the prefs used in this class in UMA reports (which doesn't
|
| // include |kUninstallMetricsPageLoadCount| as it's not sent up by UMA).
|
| - local_state->SetInteger(prefs::kStabilityChildProcessCrashCount, 0);
|
| - local_state->SetInteger(prefs::kStabilityExtensionRendererCrashCount, 0);
|
| - local_state->SetInteger(prefs::kStabilityPageLoadCount, 0);
|
| - local_state->SetInteger(prefs::kStabilityRendererCrashCount, 0);
|
| - local_state->SetInteger(prefs::kStabilityRendererHangCount, 0);
|
| + local_state_->SetInteger(prefs::kStabilityChildProcessCrashCount, 0);
|
| + local_state_->SetInteger(prefs::kStabilityExtensionRendererCrashCount, 0);
|
| + local_state_->SetInteger(prefs::kStabilityPageLoadCount, 0);
|
| + local_state_->SetInteger(prefs::kStabilityRendererCrashCount, 0);
|
| + local_state_->SetInteger(prefs::kStabilityRendererHangCount, 0);
|
| }
|
|
|
| // static
|
| @@ -313,6 +299,16 @@ void ChromeStabilityMetricsProvider::LogRendererCrash(
|
| }
|
| }
|
|
|
| +void ChromeStabilityMetricsProvider::IncrementPrefValue(const char* path) {
|
| + int value = local_state_->GetInteger(path);
|
| + local_state_->SetInteger(path, value + 1);
|
| +}
|
| +
|
| +void ChromeStabilityMetricsProvider::IncrementLongPrefsValue(const char* path) {
|
| + int64 value = local_state_->GetInt64(path);
|
| + local_state_->SetInt64(path, value + 1);
|
| +}
|
| +
|
| void ChromeStabilityMetricsProvider::LogRendererHang() {
|
| IncrementPrefValue(prefs::kStabilityRendererHangCount);
|
| }
|
|
|