diff options
author | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-04 23:30:38 +0000 |
---|---|---|
committer | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-04 23:30:38 +0000 |
commit | 53af1824d5f30cf8ca630f71a284701f111e46fd (patch) | |
tree | 031aef8d848302d6ded45204157ffcce393a22f0 | |
parent | baaf1d69403fc326c95e2385270e1f89b2362353 (diff) | |
download | chromium_src-53af1824d5f30cf8ca630f71a284701f111e46fd.zip chromium_src-53af1824d5f30cf8ca630f71a284701f111e46fd.tar.gz chromium_src-53af1824d5f30cf8ca630f71a284701f111e46fd.tar.bz2 |
[Windows] Generate crashreport for renderer process before murdering it from hung renderer dialog.
BUG=127469
Review URL: https://chromiumcodereview.appspot.com/10505002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140424 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/ui/views/hung_renderer_view.cc | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/chrome/browser/ui/views/hung_renderer_view.cc b/chrome/browser/ui/views/hung_renderer_view.cc index 59146a3..6a45343 100644 --- a/chrome/browser/ui/views/hung_renderer_view.cc +++ b/chrome/browser/ui/views/hung_renderer_view.cc @@ -44,6 +44,10 @@ #include "ui/aura/window.h" #endif +#if defined(OS_WIN) +#include "chrome/browser/hang_monitor/hang_crash_dump_win.h" +#endif + class HungRendererDialogView; using content::RenderViewHost; @@ -431,10 +435,17 @@ void HungRendererDialogView::ButtonPressed( views::Button* sender, const views::Event& event) { if (sender == kill_button_ && hung_pages_table_model_->GetRenderProcessHost()) { + + base::ProcessHandle process_handle = + hung_pages_table_model_->GetRenderProcessHost()->GetHandle(); + +#if defined(OS_WIN) + // Try to generate a crash report for the hung process. + CrashDumpAndTerminateHungChildProcess(process_handle); +#else // Kill the process. - base::KillProcess( - hung_pages_table_model_->GetRenderProcessHost()->GetHandle(), - content::RESULT_CODE_HUNG, false); + base::KillProcess(process_handle, content::RESULT_CODE_HUNG, false); +#endif } } |