Index: content/browser/tab_contents/tab_contents.cc |
diff --git a/content/browser/tab_contents/tab_contents.cc b/content/browser/tab_contents/tab_contents.cc |
index 99bba05763bd6bd653dfb49e6b74ddcda356ee1e..87070e8e98cc1415556799e4802899681b984c5a 100644 |
--- a/content/browser/tab_contents/tab_contents.cc |
+++ b/content/browser/tab_contents/tab_contents.cc |
@@ -2425,6 +2425,7 @@ void TabContents::RunJavaScriptMessage( |
const std::wstring& default_prompt, |
const GURL& frame_url, |
const int flags, |
+ const bool unload_handler_being_run, |
IPC::Message* reply_msg, |
bool* did_suppress_message) { |
// Suppress javascript messages when requested and when inside a constrained |
@@ -2433,9 +2434,11 @@ void TabContents::RunJavaScriptMessage( |
// Also suppress messages when showing an interstitial. The interstitial is |
// shown over the previous page, we don't want the hidden page dialogs to |
// interfere with the interstitial. |
+ // Also suppress messages during beforeunload/unload event handlers. |
bool suppress_this_message = |
suppress_javascript_messages_ || |
showing_interstitial_page() || |
+ unload_handler_being_run || |
(delegate() && delegate()->ShouldSuppressDialogs()); |
if (delegate()) |
suppress_this_message |= |