Index: components/web_modal/web_contents_modal_dialog_manager.h |
diff --git a/components/web_modal/web_contents_modal_dialog_manager.h b/components/web_modal/web_contents_modal_dialog_manager.h |
index e2548c04e5cfc8b48bef516d9048aefea4f03052..00671b2db1a1956f10a686423a6626be45acf643 100644 |
--- a/components/web_modal/web_contents_modal_dialog_manager.h |
+++ b/components/web_modal/web_contents_modal_dialog_manager.h |
@@ -45,6 +45,11 @@ class WebContentsModalDialogManager |
// calling this function. |
void FocusTopmostDialog(); |
+ // Set to true to prevent closing the window when a page load starts on the |
+ // WebContents. |
+ void SetPreventCloseOnLoadStart(NativeWebContentsModalDialog dialog, |
+ bool prevent); |
+ |
// Overriden from NativeWebContentsModalDialogManagerDelegate: |
virtual content::WebContents* GetWebContents() const OVERRIDE; |
// Called when a WebContentsModalDialogs we own is about to be closed. |
@@ -76,7 +81,18 @@ class WebContentsModalDialogManager |
explicit WebContentsModalDialogManager(content::WebContents* web_contents); |
friend class content::WebContentsUserData<WebContentsModalDialogManager>; |
- typedef std::deque<NativeWebContentsModalDialog> WebContentsModalDialogList; |
+ struct DialogState { |
+ explicit DialogState(NativeWebContentsModalDialog dialog); |
+ |
+ NativeWebContentsModalDialog dialog; |
+ bool prevent_close_on_load_start; |
+ }; |
+ |
+ typedef std::deque<DialogState> WebContentsModalDialogList; |
+ |
+ // Utility function to get the dialog state for a dialog. |
+ WebContentsModalDialogList::iterator FindDialogState( |
+ NativeWebContentsModalDialog dialog); |
// Blocks/unblocks interaction with renderer process. |
void BlockWebContentsInteraction(bool blocked); |
@@ -87,9 +103,6 @@ class WebContentsModalDialogManager |
void CloseAllDialogs(); |
// Overridden from content::WebContentsObserver: |
- virtual void DidNavigateMainFrame( |
- const content::LoadCommittedDetails& details, |
- const content::FrameNavigateParams& params) OVERRIDE; |
virtual void DidGetIgnoredUIEvent() OVERRIDE; |
virtual void WebContentsDestroyed(content::WebContents* tab) OVERRIDE; |