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

Unified Diff: content/browser/gpu/gpu_process_host.cc

Issue 418733002: Prevent duplicate navigation to debug URLs from Telemetry. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Read crash count from Browser System Info instead of scrubbing chrome://gpu page. Created 6 years, 5 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: content/browser/gpu/gpu_process_host.cc
diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc
index f123addefee525e1206fddb3d5822821e2b6a621..401dedcc2f20b56c5cb38a3467055c14face65ce 100644
--- a/content/browser/gpu/gpu_process_host.cc
+++ b/content/browser/gpu/gpu_process_host.cc
@@ -68,6 +68,11 @@ namespace content {
bool GpuProcessHost::gpu_enabled_ = true;
bool GpuProcessHost::hardware_gpu_enabled_ = true;
+int GpuProcessHost::gpu_crash_count_ = 0;
+int GpuProcessHost::gpu_recent_crash_count_ = 0;
+base::Time GpuProcessHost::last_gpu_crash_time_;
Ken Russell (switch to Gerrit) 2014/07/25 21:21:36 We need to ensure that this doesn't add any static
+bool GpuProcessHost::crashed_before_ = false;
+int GpuProcessHost::swiftshader_crash_count_ = 0;
namespace {
@@ -366,13 +371,6 @@ GpuProcessHost::~GpuProcessHost() {
// fail.
const int kGpuMaxCrashCount = 3;
- // Number of times the gpu process has crashed in the current browser session.
- static int gpu_crash_count = 0;
- static int gpu_recent_crash_count = 0;
- static base::Time last_gpu_crash_time;
- static bool crashed_before = false;
- static int swiftshader_crash_count = 0;
-
bool disable_crash_limit = CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDisableGpuProcessCrashLimit);
@@ -382,37 +380,38 @@ GpuProcessHost::~GpuProcessHost() {
if (process_launched_ && kind_ == GPU_PROCESS_KIND_SANDBOXED) {
if (swiftshader_rendering_) {
UMA_HISTOGRAM_ENUMERATION("GPU.SwiftShaderLifetimeEvents",
- DIED_FIRST_TIME + swiftshader_crash_count,
+ DIED_FIRST_TIME + swiftshader_crash_count_,
GPU_PROCESS_LIFETIME_EVENT_MAX);
- if (++swiftshader_crash_count >= kGpuMaxCrashCount &&
+ if (++swiftshader_crash_count_ >= kGpuMaxCrashCount &&
!disable_crash_limit) {
// SwiftShader is too unstable to use. Disable it for current session.
gpu_enabled_ = false;
}
} else {
- ++gpu_crash_count;
+ ++gpu_crash_count_;
UMA_HISTOGRAM_ENUMERATION("GPU.GPUProcessLifetimeEvents",
- std::min(DIED_FIRST_TIME + gpu_crash_count,
+ std::min(DIED_FIRST_TIME + gpu_crash_count_,
GPU_PROCESS_LIFETIME_EVENT_MAX - 1),
GPU_PROCESS_LIFETIME_EVENT_MAX);
// Allow about 1 GPU crash per hour to be removed from the crash count,
// so very occasional crashes won't eventually add up and prevent the
// GPU process from launching.
- ++gpu_recent_crash_count;
+ ++gpu_recent_crash_count_;
base::Time current_time = base::Time::Now();
- if (crashed_before) {
- int hours_different = (current_time - last_gpu_crash_time).InHours();
- gpu_recent_crash_count =
- std::max(0, gpu_recent_crash_count - hours_different);
+ if (crashed_before_) {
+ int hours_different = (current_time - last_gpu_crash_time_).InHours();
+ gpu_recent_crash_count_ =
+ std::max(0, gpu_recent_crash_count_ - hours_different);
}
- crashed_before = true;
- last_gpu_crash_time = current_time;
+ crashed_before_ = true;
+ last_gpu_crash_time_ = current_time;
- if ((gpu_recent_crash_count >= kGpuMaxCrashCount && !disable_crash_limit)
- || !initialized_) {
+ if ((gpu_recent_crash_count_ >= kGpuMaxCrashCount &&
+ !disable_crash_limit) ||
+ !initialized_) {
#if !defined(OS_CHROMEOS)
// The gpu process is too unstable to use. Disable it for current
// session.

Powered by Google App Engine
This is Rietveld 408576698