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

Unified Diff: components/web_modal/web_contents_modal_dialog_manager.h

Issue 17500003: Close web contents modal dialogs on content load start (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix for autocheckout dialog breakage Created 7 years, 5 months 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
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..2fc4e31bcef3bea17310ff06a7f6c7f67261755e 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 inhibit closing the window when a page load starts on the
+ // WebContents.
+ void SetInhibitCloseOnLoadStart(NativeWebContentsModalDialog dialog,
+ bool inhibit);
+
// 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 inhibit_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;

Powered by Google App Engine
This is Rietveld 408576698