summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-04 23:30:38 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-04 23:30:38 +0000
commit53af1824d5f30cf8ca630f71a284701f111e46fd (patch)
tree031aef8d848302d6ded45204157ffcce393a22f0
parentbaaf1d69403fc326c95e2385270e1f89b2362353 (diff)
downloadchromium_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.cc17
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
}
}