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

Unified Diff: chrome/browser/ui/webui/hung_renderer_dialog.cc

Issue 8372042: Tests for WebUI Hung Renderer Dialog (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: fixed reversion issue Created 9 years, 1 month 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
« no previous file with comments | « chrome/browser/ui/webui/hung_renderer_dialog.h ('k') | chrome/chrome_tests.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/hung_renderer_dialog.cc
diff --git a/chrome/browser/ui/webui/hung_renderer_dialog.cc b/chrome/browser/ui/webui/hung_renderer_dialog.cc
index de0233451310e5c191aab408e2d75da609af653e..c4770a9470ce819ab7cf7a4cbcbdddf5f8c3bb97 100644
--- a/chrome/browser/ui/webui/hung_renderer_dialog.cc
+++ b/chrome/browser/ui/webui/hung_renderer_dialog.cc
@@ -35,12 +35,12 @@ namespace browser {
void ShowHungRendererDialog(TabContents* contents) {
#if defined(OS_CHROMEOS) || defined(USE_AURA)
- HungRendererDialog::ShowHungRendererDialog(contents);
+ HungRendererDialog::ShowHungRendererDialog(contents, true);
#else
// TODO(rbyers): Remove IsMoreWebUI check once we decide for sure which
// platforms will use the WebUI version of this dialog.
if (ChromeWebUI::IsMoreWebUI())
- HungRendererDialog::ShowHungRendererDialog(contents);
+ HungRendererDialog::ShowHungRendererDialog(contents, true);
else
ShowNativeHungRendererDialog(contents);
#endif
@@ -62,11 +62,12 @@ void HideHungRendererDialog(TabContents* contents) {
////////////////////////////////////////////////////////////////////////////////
// HungRendererDialog public static methods
-void HungRendererDialog::ShowHungRendererDialog(TabContents* contents) {
+void HungRendererDialog::ShowHungRendererDialog(TabContents* contents,
+ bool isEnabled) {
if (!logging::DialogsAreSuppressed()) {
if (g_instance)
return;
- g_instance = new HungRendererDialog();
+ g_instance = new HungRendererDialog(isEnabled);
g_instance->ShowDialog(contents);
}
}
@@ -80,9 +81,10 @@ void HungRendererDialog::HideHungRendererDialog(TabContents* contents) {
////////////////////////////////////////////////////////////////////////////////
// HungRendererDialog private methods
-HungRendererDialog::HungRendererDialog()
+HungRendererDialog::HungRendererDialog(bool is_enabled)
: contents_(NULL),
handler_(NULL),
+ is_enabled_(is_enabled),
window_(NULL) {
}
@@ -135,25 +137,27 @@ std::string HungRendererDialog::GetDialogArgs() const {
}
void HungRendererDialog::OnDialogClosed(const std::string& json_retval) {
- // Figure out what the response was.
- scoped_ptr<Value> root(base::JSONReader::Read(json_retval, false));
- bool response = false;
- ListValue* list = NULL;
- // If the dialog closes because of a button click then the json is a list
- // containing a single bool. If the dialog closes some other way, then we
- // assume it means no permission was given to kill tabs.
- if (root.get() && root->GetAsList(&list) && list &&
- list->GetBoolean(0, &response) && response) {
- // The user indicated that it is OK to kill the renderer process.
- if (contents_ && contents_->GetRenderProcessHost()) {
- base::KillProcess(contents_->GetRenderProcessHost()->GetHandle(),
- content::RESULT_CODE_HUNG, false);
+ if (is_enabled_) {
+ // Figure out what the response was.
+ scoped_ptr<Value> root(base::JSONReader::Read(json_retval, false));
+ bool response = false;
+ ListValue* list = NULL;
+ // If the dialog closes because of a button click then the json is a list
+ // containing a single bool. If the dialog closes some other way, then we
+ // assume it means no permission was given to kill tabs.
+ if (root.get() && root->GetAsList(&list) && list &&
+ list->GetBoolean(0, &response) && response) {
+ // The user indicated that it is OK to kill the renderer process.
+ if (contents_ && contents_->GetRenderProcessHost()) {
+ base::KillProcess(contents_->GetRenderProcessHost()->GetHandle(),
+ content::RESULT_CODE_HUNG, false);
+ }
+ } else {
+ // No indication from the user that it is ok to kill anything. Just wait.
+ // Start waiting again for responsiveness.
+ if (contents_ && contents_->render_view_host())
+ contents_->render_view_host()->RestartHangMonitorTimeout();
}
- } else {
- // No indication from the user that it is ok to kill anything. Just wait.
- // Start waiting again for responsiveness.
- if (contents_ && contents_->render_view_host())
- contents_->render_view_host()->RestartHangMonitorTimeout();
}
g_instance = NULL;
delete this;
« no previous file with comments | « chrome/browser/ui/webui/hung_renderer_dialog.h ('k') | chrome/chrome_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698