Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1764)

Unified Diff: chrome/browser/metrics/chrome_stability_metrics_provider.cc

Issue 1320153002: Add new termination status for failed launch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase and a nit. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 d1da84c00b52c9958b2b5415db01f40a9d708099..69135f7dd0047236965564094cb64fbd32d74a19 100644
--- a/chrome/browser/metrics/chrome_stability_metrics_provider.cc
+++ b/chrome/browser/metrics/chrome_stability_metrics_provider.cc
@@ -41,6 +41,15 @@
namespace {
+enum RendererType {
+ RENDERER_TYPE_RENDERER,
+ RENDERER_TYPE_EXTENSION,
+ // NOTE: Add new action types only immediately above this line. Also,
+ // make sure the enum list in tools/metrics/histograms/histograms.xml is
+ // updated with any change in here.
+ RENDERER_TYPE_COUNT
+};
+
// 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) {
@@ -98,9 +107,9 @@ void CountBrowserCrashDumpAttempts() {
}
#endif // defined(OS_WIN)
-void RecordChildKills(bool was_extension_process) {
- UMA_HISTOGRAM_PERCENTAGE("BrowserRenderProcessHost.ChildKills",
- was_extension_process ? 2 : 1);
+void RecordChildKills(int histogram_type) {
+ UMA_HISTOGRAM_ENUMERATION("BrowserRenderProcessHost.ChildKills",
+ histogram_type, RENDERER_TYPE_COUNT);
}
} // namespace
@@ -258,11 +267,14 @@ void ChromeStabilityMetricsProvider::LogRendererCrash(
content::RenderProcessHost* host,
base::TerminationStatus status,
int exit_code) {
+ int histogram_type = RENDERER_TYPE_RENDERER;
bool was_extension_process = false;
#if defined(ENABLE_EXTENSIONS)
- was_extension_process =
- extensions::ProcessMap::Get(host->GetBrowserContext())->Contains(
- host->GetID());
+ if (extensions::ProcessMap::Get(host->GetBrowserContext())
+ ->Contains(host->GetID())) {
+ histogram_type = RENDERER_TYPE_EXTENSION;
+ was_extension_process = true;
+ }
#endif
if (status == base::TERMINATION_STATUS_PROCESS_CRASHED ||
status == base::TERMINATION_STATUS_ABNORMAL_TERMINATION) {
@@ -278,13 +290,13 @@ void ChromeStabilityMetricsProvider::LogRendererCrash(
MapCrashExitCodeForHistogram(exit_code));
}
- UMA_HISTOGRAM_PERCENTAGE("BrowserRenderProcessHost.ChildCrashes",
- was_extension_process ? 2 : 1);
+ UMA_HISTOGRAM_ENUMERATION("BrowserRenderProcessHost.ChildCrashes",
+ histogram_type, RENDERER_TYPE_COUNT);
} else if (status == base::TERMINATION_STATUS_PROCESS_WAS_KILLED) {
- RecordChildKills(was_extension_process);
+ RecordChildKills(histogram_type);
#if defined(OS_CHROMEOS)
} else if (status == base::TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM) {
- RecordChildKills(was_extension_process);
+ RecordChildKills(histogram_type);
UMA_HISTOGRAM_ENUMERATION("BrowserRenderProcessHost.ChildKills.OOM",
was_extension_process ? 2 : 1,
3);
@@ -294,8 +306,16 @@ void ChromeStabilityMetricsProvider::LogRendererCrash(
: memory::RECORD_MEMORY_STATS_CONTENTS_OOM_KILLED);
#endif
} else if (status == base::TERMINATION_STATUS_STILL_RUNNING) {
- UMA_HISTOGRAM_PERCENTAGE("BrowserRenderProcessHost.DisconnectedAlive",
- was_extension_process ? 2 : 1);
+ UMA_HISTOGRAM_ENUMERATION("BrowserRenderProcessHost.DisconnectedAlive",
+ histogram_type, RENDERER_TYPE_COUNT);
+ } else if (status == base::TERMINATION_STATUS_LAUNCH_FAILED) {
+ UMA_HISTOGRAM_ENUMERATION("BrowserRenderProcessHost.ChildLaunchFailures",
+ histogram_type, RENDERER_TYPE_COUNT);
+ // Treat child process launch as a crash for now.
+ if (was_extension_process)
+ IncrementPrefValue(prefs::kStabilityExtensionRendererCrashCount);
+ else
+ IncrementPrefValue(prefs::kStabilityRendererCrashCount);
}
}
« no previous file with comments | « chrome/browser/devtools/devtools_ui_bindings.cc ('k') | chrome/browser/metrics/chrome_stability_metrics_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698