| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "components/metrics/stability_metrics_helper.h" | 5 #include "components/metrics/stability_metrics_helper.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 // Since |abs(STATUS_GUARD_PAGE_VIOLATION) == MAX_INT| it causes problems in | 46 // Since |abs(STATUS_GUARD_PAGE_VIOLATION) == MAX_INT| it causes problems in |
| 47 // histograms.cc. Solve this by remapping it to a smaller value, which | 47 // histograms.cc. Solve this by remapping it to a smaller value, which |
| 48 // hopefully doesn't conflict with other codes. | 48 // hopefully doesn't conflict with other codes. |
| 49 if (static_cast<DWORD>(exit_code) == STATUS_GUARD_PAGE_VIOLATION) | 49 if (static_cast<DWORD>(exit_code) == STATUS_GUARD_PAGE_VIOLATION) |
| 50 return 0x1FCF7EC3; // Randomly picked number. | 50 return 0x1FCF7EC3; // Randomly picked number. |
| 51 #endif | 51 #endif |
| 52 | 52 |
| 53 return std::abs(exit_code); | 53 return std::abs(exit_code); |
| 54 } | 54 } |
| 55 | 55 |
| 56 void RecordChildKills(int histogram_type) { | 56 void RecordChildKills(RendererType histogram_type) { |
| 57 UMA_HISTOGRAM_ENUMERATION("BrowserRenderProcessHost.ChildKills", | 57 UMA_HISTOGRAM_ENUMERATION("BrowserRenderProcessHost.ChildKills", |
| 58 histogram_type, RENDERER_TYPE_COUNT); | 58 histogram_type, RENDERER_TYPE_COUNT); |
| 59 } | 59 } |
| 60 | 60 |
| 61 } // namespace | 61 } // namespace |
| 62 | 62 |
| 63 StabilityMetricsHelper::StabilityMetricsHelper(PrefService* local_state) | 63 StabilityMetricsHelper::StabilityMetricsHelper(PrefService* local_state) |
| 64 : local_state_(local_state) { | 64 : local_state_(local_state) { |
| 65 DCHECK(local_state_); | 65 DCHECK(local_state_); |
| 66 } | 66 } |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 base::RecordAction(base::UserMetricsAction("PageLoad")); | 172 base::RecordAction(base::UserMetricsAction("PageLoad")); |
| 173 IncrementPrefValue(prefs::kStabilityPageLoadCount); | 173 IncrementPrefValue(prefs::kStabilityPageLoadCount); |
| 174 IncrementLongPrefsValue(prefs::kUninstallMetricsPageLoadCount); | 174 IncrementLongPrefsValue(prefs::kUninstallMetricsPageLoadCount); |
| 175 // We need to save the prefs, as page load count is a critical stat, and it | 175 // We need to save the prefs, as page load count is a critical stat, and it |
| 176 // might be lost due to a crash :-(. | 176 // might be lost due to a crash :-(. |
| 177 } | 177 } |
| 178 | 178 |
| 179 void StabilityMetricsHelper::LogRendererCrash(bool was_extension_process, | 179 void StabilityMetricsHelper::LogRendererCrash(bool was_extension_process, |
| 180 base::TerminationStatus status, | 180 base::TerminationStatus status, |
| 181 int exit_code) { | 181 int exit_code) { |
| 182 int histogram_type = | 182 RendererType histogram_type = |
| 183 was_extension_process ? RENDERER_TYPE_EXTENSION : RENDERER_TYPE_RENDERER; | 183 was_extension_process ? RENDERER_TYPE_EXTENSION : RENDERER_TYPE_RENDERER; |
| 184 | 184 |
| 185 switch (status) { | 185 switch (status) { |
| 186 case base::TERMINATION_STATUS_NORMAL_TERMINATION: | 186 case base::TERMINATION_STATUS_NORMAL_TERMINATION: |
| 187 break; | 187 break; |
| 188 case base::TERMINATION_STATUS_PROCESS_CRASHED: | 188 case base::TERMINATION_STATUS_PROCESS_CRASHED: |
| 189 case base::TERMINATION_STATUS_ABNORMAL_TERMINATION: | 189 case base::TERMINATION_STATUS_ABNORMAL_TERMINATION: |
| 190 case base::TERMINATION_STATUS_OOM: | 190 case base::TERMINATION_STATUS_OOM: |
| 191 if (was_extension_process) { | 191 if (was_extension_process) { |
| 192 IncrementPrefValue(prefs::kStabilityExtensionRendererCrashCount); | 192 IncrementPrefValue(prefs::kStabilityExtensionRendererCrashCount); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 void StabilityMetricsHelper::IncrementLongPrefsValue(const char* path) { | 256 void StabilityMetricsHelper::IncrementLongPrefsValue(const char* path) { |
| 257 int64_t value = local_state_->GetInt64(path); | 257 int64_t value = local_state_->GetInt64(path); |
| 258 local_state_->SetInt64(path, value + 1); | 258 local_state_->SetInt64(path, value + 1); |
| 259 } | 259 } |
| 260 | 260 |
| 261 void StabilityMetricsHelper::LogRendererHang() { | 261 void StabilityMetricsHelper::LogRendererHang() { |
| 262 IncrementPrefValue(prefs::kStabilityRendererHangCount); | 262 IncrementPrefValue(prefs::kStabilityRendererHangCount); |
| 263 } | 263 } |
| 264 | 264 |
| 265 } // namespace metrics | 265 } // namespace metrics |
| OLD | NEW |