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 5502c09d2180fd039105b00951873a212fd2876c..eff0e2c108096143d0c1a7591311fcd29e50ab7b 100644 |
--- a/components/web_modal/web_contents_modal_dialog_manager.h |
+++ b/components/web_modal/web_contents_modal_dialog_manager.h |
@@ -47,6 +47,10 @@ class WebContentsModalDialogManager |
// calling this function. |
void FocusTopmostDialog(); |
+ // Set to true to close the window when a page load starts on the WebContents. |
+ void SetCloseOnInterstitialWebUI(NativeWebContentsModalDialog dialog, |
+ bool close); |
+ |
// Overriden from NativeWebContentsModalDialogManagerDelegate: |
virtual content::WebContents* GetWebContents() const OVERRIDE; |
// Called when a WebContentsModalDialogs we own is about to be closed. |
@@ -64,6 +68,7 @@ class WebContentsModalDialogManager |
: manager_(manager) {} |
void CloseAllDialogs() { manager_->CloseAllDialogs(); } |
+ void DidAttachInterstitialPage() { manager_->DidAttachInterstitialPage(); } |
void ResetNativeManager(NativeWebContentsModalDialogManager* delegate) { |
manager_->native_manager_.reset(delegate); |
} |
@@ -78,7 +83,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 close_on_interstitial_webui; |
+ }; |
+ |
+ 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); |
@@ -94,6 +110,7 @@ class WebContentsModalDialogManager |
const content::FrameNavigateParams& params) OVERRIDE; |
virtual void DidGetIgnoredUIEvent() OVERRIDE; |
virtual void WebContentsDestroyed(content::WebContents* tab) OVERRIDE; |
+ virtual void DidAttachInterstitialPage() OVERRIDE; |
// Delegate for notifying our owner about stuff. Not owned by us. |
WebContentsModalDialogManagerDelegate* delegate_; |