| OLD | NEW | 
|     1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |     1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 //------------------------------------------------------------------------------ |     5 //------------------------------------------------------------------------------ | 
|     6 // Description of the life cycle of a instance of MetricsService. |     6 // Description of the life cycle of a instance of MetricsService. | 
|     7 // |     7 // | 
|     8 //  OVERVIEW |     8 //  OVERVIEW | 
|     9 // |     9 // | 
|    10 // A MetricsService instance is typically created at application startup.  It is |    10 // A MetricsService instance is typically created at application startup.  It is | 
| (...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   439   registry->RegisterIntegerPref(prefs::kStabilityRendererCrashCount, 0); |   439   registry->RegisterIntegerPref(prefs::kStabilityRendererCrashCount, 0); | 
|   440   registry->RegisterIntegerPref(prefs::kStabilityExtensionRendererCrashCount, |   440   registry->RegisterIntegerPref(prefs::kStabilityExtensionRendererCrashCount, | 
|   441                                 0); |   441                                 0); | 
|   442   registry->RegisterIntegerPref(prefs::kStabilityRendererHangCount, 0); |   442   registry->RegisterIntegerPref(prefs::kStabilityRendererHangCount, 0); | 
|   443   registry->RegisterIntegerPref(prefs::kStabilityChildProcessCrashCount, 0); |   443   registry->RegisterIntegerPref(prefs::kStabilityChildProcessCrashCount, 0); | 
|   444   registry->RegisterIntegerPref(prefs::kStabilityBreakpadRegistrationFail, 0); |   444   registry->RegisterIntegerPref(prefs::kStabilityBreakpadRegistrationFail, 0); | 
|   445   registry->RegisterIntegerPref(prefs::kStabilityBreakpadRegistrationSuccess, |   445   registry->RegisterIntegerPref(prefs::kStabilityBreakpadRegistrationSuccess, | 
|   446                                 0); |   446                                 0); | 
|   447   registry->RegisterIntegerPref(prefs::kStabilityDebuggerPresent, 0); |   447   registry->RegisterIntegerPref(prefs::kStabilityDebuggerPresent, 0); | 
|   448   registry->RegisterIntegerPref(prefs::kStabilityDebuggerNotPresent, 0); |   448   registry->RegisterIntegerPref(prefs::kStabilityDebuggerNotPresent, 0); | 
 |   449   registry->RegisterIntegerPref(prefs::kStabilityGpuCrashCount, 0); | 
|   449 #if defined(OS_CHROMEOS) |   450 #if defined(OS_CHROMEOS) | 
|   450   registry->RegisterIntegerPref(prefs::kStabilityOtherUserCrashCount, 0); |   451   registry->RegisterIntegerPref(prefs::kStabilityOtherUserCrashCount, 0); | 
|   451   registry->RegisterIntegerPref(prefs::kStabilityKernelCrashCount, 0); |   452   registry->RegisterIntegerPref(prefs::kStabilityKernelCrashCount, 0); | 
|   452   registry->RegisterIntegerPref(prefs::kStabilitySystemUncleanShutdownCount, 0); |   453   registry->RegisterIntegerPref(prefs::kStabilitySystemUncleanShutdownCount, 0); | 
|   453 #endif  // OS_CHROMEOS |   454 #endif  // OS_CHROMEOS | 
|   454  |   455  | 
|   455   registry->RegisterStringPref(prefs::kStabilitySavedSystemProfile, |   456   registry->RegisterStringPref(prefs::kStabilitySavedSystemProfile, | 
|   456                                std::string()); |   457                                std::string()); | 
|   457   registry->RegisterStringPref(prefs::kStabilitySavedSystemProfileHash, |   458   registry->RegisterStringPref(prefs::kStabilitySavedSystemProfileHash, | 
|   458                                std::string()); |   459                                std::string()); | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
|   479   local_state->SetInteger(prefs::kStabilityBreakpadRegistrationFail, 0); |   480   local_state->SetInteger(prefs::kStabilityBreakpadRegistrationFail, 0); | 
|   480   local_state->SetInteger(prefs::kStabilityDebuggerPresent, 0); |   481   local_state->SetInteger(prefs::kStabilityDebuggerPresent, 0); | 
|   481   local_state->SetInteger(prefs::kStabilityDebuggerNotPresent, 0); |   482   local_state->SetInteger(prefs::kStabilityDebuggerNotPresent, 0); | 
|   482  |   483  | 
|   483   local_state->SetInteger(prefs::kStabilityLaunchCount, 0); |   484   local_state->SetInteger(prefs::kStabilityLaunchCount, 0); | 
|   484   local_state->SetInteger(prefs::kStabilityCrashCount, 0); |   485   local_state->SetInteger(prefs::kStabilityCrashCount, 0); | 
|   485  |   486  | 
|   486   local_state->SetInteger(prefs::kStabilityPageLoadCount, 0); |   487   local_state->SetInteger(prefs::kStabilityPageLoadCount, 0); | 
|   487   local_state->SetInteger(prefs::kStabilityRendererCrashCount, 0); |   488   local_state->SetInteger(prefs::kStabilityRendererCrashCount, 0); | 
|   488   local_state->SetInteger(prefs::kStabilityRendererHangCount, 0); |   489   local_state->SetInteger(prefs::kStabilityRendererHangCount, 0); | 
 |   490   local_state->SetInteger(prefs::kStabilityGpuCrashCount, 0); | 
|   489  |   491  | 
|   490   local_state->SetInt64(prefs::kStabilityLaunchTimeSec, 0); |   492   local_state->SetInt64(prefs::kStabilityLaunchTimeSec, 0); | 
|   491   local_state->SetInt64(prefs::kStabilityLastTimestampSec, 0); |   493   local_state->SetInt64(prefs::kStabilityLastTimestampSec, 0); | 
|   492  |   494  | 
|   493   local_state->ClearPref(prefs::kStabilityPluginStats); |   495   local_state->ClearPref(prefs::kStabilityPluginStats); | 
|   494  |   496  | 
|   495   local_state->ClearPref(prefs::kMetricsInitialLogs); |   497   local_state->ClearPref(prefs::kMetricsInitialLogs); | 
|   496   local_state->ClearPref(prefs::kMetricsOngoingLogs); |   498   local_state->ClearPref(prefs::kMetricsOngoingLogs); | 
|   497 } |   499 } | 
|   498  |   500  | 
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   668   registrar->Add(observer, chrome::NOTIFICATION_TAB_PARENTED, |   670   registrar->Add(observer, chrome::NOTIFICATION_TAB_PARENTED, | 
|   669                  content::NotificationService::AllSources()); |   671                  content::NotificationService::AllSources()); | 
|   670   registrar->Add(observer, chrome::NOTIFICATION_TAB_CLOSING, |   672   registrar->Add(observer, chrome::NOTIFICATION_TAB_CLOSING, | 
|   671                  content::NotificationService::AllSources()); |   673                  content::NotificationService::AllSources()); | 
|   672   registrar->Add(observer, content::NOTIFICATION_LOAD_START, |   674   registrar->Add(observer, content::NOTIFICATION_LOAD_START, | 
|   673                  content::NotificationService::AllSources()); |   675                  content::NotificationService::AllSources()); | 
|   674   registrar->Add(observer, content::NOTIFICATION_LOAD_STOP, |   676   registrar->Add(observer, content::NOTIFICATION_LOAD_STOP, | 
|   675                  content::NotificationService::AllSources()); |   677                  content::NotificationService::AllSources()); | 
|   676   registrar->Add(observer, content::NOTIFICATION_RENDERER_PROCESS_CLOSED, |   678   registrar->Add(observer, content::NOTIFICATION_RENDERER_PROCESS_CLOSED, | 
|   677                  content::NotificationService::AllSources()); |   679                  content::NotificationService::AllSources()); | 
 |   680   registrar->Add(observer, content::NOTIFICATION_GPU_PROCESS_CLOSED_ABNORMALLY, | 
 |   681                  content::NotificationService::AllSources()); | 
|   678   registrar->Add(observer, content::NOTIFICATION_RENDER_WIDGET_HOST_HANG, |   682   registrar->Add(observer, content::NOTIFICATION_RENDER_WIDGET_HOST_HANG, | 
|   679                  content::NotificationService::AllSources()); |   683                  content::NotificationService::AllSources()); | 
|   680   registrar->Add(observer, chrome::NOTIFICATION_OMNIBOX_OPENED_URL, |   684   registrar->Add(observer, chrome::NOTIFICATION_OMNIBOX_OPENED_URL, | 
|   681                  content::NotificationService::AllSources()); |   685                  content::NotificationService::AllSources()); | 
|   682 } |   686 } | 
|   683  |   687  | 
|   684 void MetricsService::BrowserChildProcessHostConnected( |   688 void MetricsService::BrowserChildProcessHostConnected( | 
|   685     const content::ChildProcessData& data) { |   689     const content::ChildProcessData& data) { | 
|   686   GetChildProcessStats(data).process_launches++; |   690   GetChildProcessStats(data).process_launches++; | 
|   687 } |   691 } | 
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   744  |   748  | 
|   745     case chrome::NOTIFICATION_OMNIBOX_OPENED_URL: { |   749     case chrome::NOTIFICATION_OMNIBOX_OPENED_URL: { | 
|   746       MetricsLog* current_log = |   750       MetricsLog* current_log = | 
|   747           static_cast<MetricsLog*>(log_manager_.current_log()); |   751           static_cast<MetricsLog*>(log_manager_.current_log()); | 
|   748       DCHECK(current_log); |   752       DCHECK(current_log); | 
|   749       current_log->RecordOmniboxOpenedURL( |   753       current_log->RecordOmniboxOpenedURL( | 
|   750           *content::Details<OmniboxLog>(details).ptr()); |   754           *content::Details<OmniboxLog>(details).ptr()); | 
|   751       break; |   755       break; | 
|   752     } |   756     } | 
|   753  |   757  | 
 |   758     case content::NOTIFICATION_GPU_PROCESS_CLOSED_ABNORMALLY: | 
 |   759       LogGpuCrash(); | 
 |   760       break; | 
 |   761  | 
|   754     default: |   762     default: | 
|   755       NOTREACHED(); |   763       NOTREACHED(); | 
|   756       break; |   764       break; | 
|   757   } |   765   } | 
|   758  |   766  | 
|   759   HandleIdleSinceLastTransmission(false); |   767   HandleIdleSinceLastTransmission(false); | 
|   760 } |   768 } | 
|   761  |   769  | 
|   762 void MetricsService::HandleIdleSinceLastTransmission(bool in_idle) { |   770 void MetricsService::HandleIdleSinceLastTransmission(bool in_idle) { | 
|   763   // If there wasn't a lot of action, maybe the computer was asleep, in which |   771   // If there wasn't a lot of action, maybe the computer was asleep, in which | 
| (...skipping 1154 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1918           process_type == content::PROCESS_TYPE_PPAPI_BROKER); |  1926           process_type == content::PROCESS_TYPE_PPAPI_BROKER); | 
|  1919 } |  1927 } | 
|  1920  |  1928  | 
|  1921 #if defined(OS_CHROMEOS) |  1929 #if defined(OS_CHROMEOS) | 
|  1922 void MetricsService::StartExternalMetrics() { |  1930 void MetricsService::StartExternalMetrics() { | 
|  1923   external_metrics_ = new chromeos::ExternalMetrics; |  1931   external_metrics_ = new chromeos::ExternalMetrics; | 
|  1924   external_metrics_->Start(); |  1932   external_metrics_->Start(); | 
|  1925 } |  1933 } | 
|  1926 #endif |  1934 #endif | 
|  1927  |  1935  | 
 |  1936 void MetricsService::LogGpuCrash() { | 
 |  1937   IncrementPrefValue(prefs::kStabilityGpuCrashCount); | 
 |  1938 } | 
 |  1939  | 
|  1928 // static |  1940 // static | 
|  1929 bool MetricsServiceHelper::IsMetricsReportingEnabled() { |  1941 bool MetricsServiceHelper::IsMetricsReportingEnabled() { | 
|  1930   bool result = false; |  1942   bool result = false; | 
|  1931   const PrefService* local_state = g_browser_process->local_state(); |  1943   const PrefService* local_state = g_browser_process->local_state(); | 
|  1932   if (local_state) { |  1944   if (local_state) { | 
|  1933     const PrefService::Preference* uma_pref = |  1945     const PrefService::Preference* uma_pref = | 
|  1934         local_state->FindPreference(prefs::kMetricsReportingEnabled); |  1946         local_state->FindPreference(prefs::kMetricsReportingEnabled); | 
|  1935     if (uma_pref) { |  1947     if (uma_pref) { | 
|  1936       bool success = uma_pref->GetValue()->GetAsBoolean(&result); |  1948       bool success = uma_pref->GetValue()->GetAsBoolean(&result); | 
|  1937       DCHECK(success); |  1949       DCHECK(success); | 
|  1938     } |  1950     } | 
|  1939   } |  1951   } | 
|  1940   return result; |  1952   return result; | 
|  1941 } |  1953 } | 
| OLD | NEW |