Index: components/app_modal/javascript_dialog_manager.cc |
diff --git a/components/app_modal/javascript_dialog_manager.cc b/components/app_modal/javascript_dialog_manager.cc |
index b6ee3395c99e4e90161a2d6a230f9f77d592856e..7628f213971b00f14c59ec058dd2c1b7dc228e99 100644 |
--- a/components/app_modal/javascript_dialog_manager.cc |
+++ b/components/app_modal/javascript_dialog_manager.cc |
@@ -241,12 +241,6 @@ bool JavaScriptDialogManager::HandleJavaScriptDialog( |
return true; |
} |
-void JavaScriptDialogManager::ResetDialogState( |
- content::WebContents* web_contents) { |
- CancelActiveAndPendingDialogs(web_contents); |
- javascript_dialog_extra_data_.erase(web_contents); |
-} |
- |
base::string16 JavaScriptDialogManager::GetTitle( |
content::WebContents* web_contents, |
const GURL& origin_url, |
@@ -281,8 +275,9 @@ base::string16 JavaScriptDialogManager::GetTitle( |
: IDS_JAVASCRIPT_MESSAGEBOX_TITLE_NONSTANDARD_URL_IFRAME); |
} |
-void JavaScriptDialogManager::CancelActiveAndPendingDialogs( |
- content::WebContents* web_contents) { |
+void JavaScriptDialogManager::CancelDialogs(content::WebContents* web_contents, |
+ bool suppress_callbacks, |
+ bool reset_state) { |
AppModalDialogQueue* queue = AppModalDialogQueue::GetInstance(); |
AppModalDialog* active_dialog = queue->active_dialog(); |
for (AppModalDialogQueue::iterator i = queue->begin(); |
@@ -292,10 +287,13 @@ void JavaScriptDialogManager::CancelActiveAndPendingDialogs( |
if ((*i) == active_dialog) |
continue; |
if ((*i)->web_contents() == web_contents) |
- (*i)->Invalidate(); |
+ (*i)->Invalidate(suppress_callbacks); |
} |
if (active_dialog && active_dialog->web_contents() == web_contents) |
- active_dialog->Invalidate(); |
+ active_dialog->Invalidate(suppress_callbacks); |
+ |
+ if (reset_state) |
+ javascript_dialog_extra_data_.erase(web_contents); |
} |
void JavaScriptDialogManager::OnBeforeUnloadDialogClosed( |