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

Side by Side Diff: chrome/browser/gpu_process_host.cc

Issue 5172009: This adds some plumbing for propagating the reason for a renderer's death (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Final review changes Created 10 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/gpu_process_host.h ('k') | chrome/browser/importer/importer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/gpu_process_host.h" 5 #include "chrome/browser/gpu_process_host.h"
6 6
7 #include "app/app_switches.h" 7 #include "app/app_switches.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 } 488 }
489 489
490 void GpuProcessHost::OnChildDied() { 490 void GpuProcessHost::OnChildDied() {
491 // Located in OnChildDied because OnProcessCrashed suffers from a race 491 // Located in OnChildDied because OnProcessCrashed suffers from a race
492 // condition on Linux. The GPU process will only die if it crashes. 492 // condition on Linux. The GPU process will only die if it crashes.
493 UMA_HISTOGRAM_ENUMERATION("GPU.GPUProcessLifetimeEvents", 493 UMA_HISTOGRAM_ENUMERATION("GPU.GPUProcessLifetimeEvents",
494 kCrashed, kGPUProcessLifetimeEvent_Max); 494 kCrashed, kGPUProcessLifetimeEvent_Max);
495 BrowserChildProcessHost::OnChildDied(); 495 BrowserChildProcessHost::OnChildDied();
496 } 496 }
497 497
498 void GpuProcessHost::OnProcessCrashed() { 498 void GpuProcessHost::OnProcessCrashed(int exit_code) {
499 if (++g_gpu_crash_count >= kGpuMaxCrashCount) { 499 if (++g_gpu_crash_count >= kGpuMaxCrashCount) {
500 // The gpu process is too unstable to use. Disable it for current session. 500 // The gpu process is too unstable to use. Disable it for current session.
501 RenderViewHostDelegateHelper::set_gpu_enabled(false); 501 RenderViewHostDelegateHelper::set_gpu_enabled(false);
502 } 502 }
503 BrowserChildProcessHost::OnProcessCrashed(); 503 BrowserChildProcessHost::OnProcessCrashed(exit_code);
504 } 504 }
505 505
506 bool GpuProcessHost::CanLaunchGpuProcess() const { 506 bool GpuProcessHost::CanLaunchGpuProcess() const {
507 return RenderViewHostDelegateHelper::gpu_enabled(); 507 return RenderViewHostDelegateHelper::gpu_enabled();
508 } 508 }
509 509
510 bool GpuProcessHost::LaunchGpuProcess() { 510 bool GpuProcessHost::LaunchGpuProcess() {
511 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess(); 511 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess();
512 CommandLine::StringType gpu_launcher = 512 CommandLine::StringType gpu_launcher =
513 browser_command_line.GetSwitchValueNative(switches::kGpuLauncher); 513 browser_command_line.GetSwitchValueNative(switches::kGpuLauncher);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess(); 567 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess();
568 if (browser_command_line.HasSwitch(switches::kIgnoreGpuBlacklist) || 568 if (browser_command_line.HasSwitch(switches::kIgnoreGpuBlacklist) ||
569 blacklist->LoadGpuBlacklist(gpu_blacklist_json.as_string(), true)) { 569 blacklist->LoadGpuBlacklist(gpu_blacklist_json.as_string(), true)) {
570 gpu_blacklist_.reset(blacklist); 570 gpu_blacklist_.reset(blacklist);
571 return true; 571 return true;
572 } 572 }
573 delete blacklist; 573 delete blacklist;
574 return false; 574 return false;
575 } 575 }
576 576
OLDNEW
« no previous file with comments | « chrome/browser/gpu_process_host.h ('k') | chrome/browser/importer/importer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698