Index: chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h |
diff --git a/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h b/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h |
index e3d981edd473d5ba63b33dffd050956c2b3e3fe3..3b60a39a20e9e2f41aeefbd42ad8dde78a258b39 100644 |
--- a/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h |
+++ b/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h |
@@ -7,6 +7,9 @@ |
#import <Cocoa/Cocoa.h> |
+#include "base/mac/scoped_nsobject.h" |
+#include "components/web_modal/web_contents_modal_dialog_manager.h" |
+ |
namespace content { |
class WebContents; |
} |
@@ -21,6 +24,18 @@ class ConstrainedWindowMacDelegate { |
virtual void OnConstrainedWindowClosed(ConstrainedWindowMac* window) = 0; |
}; |
+// Creates a ConstrainedWindowMac, shows the dialog, and returns it. |
+std::unique_ptr<ConstrainedWindowMac> CreateAndShowWebModalDialogMac( |
+ ConstrainedWindowMacDelegate* delegate, |
+ content::WebContents* web_contents, |
+ id<ConstrainedWindowSheet> sheet); |
+ |
+// Creates a ConstrainedWindowMac and returns it. |
+std::unique_ptr<ConstrainedWindowMac> CreateWebModalDialogMac( |
+ ConstrainedWindowMacDelegate* delegate, |
+ content::WebContents* web_contents, |
+ id<ConstrainedWindowSheet> sheet); |
+ |
// Constrained window implementation for Mac. |
// Normally an instance of this class is owned by the delegate. The delegate |
// should delete the instance when the window is closed. |
@@ -31,6 +46,9 @@ class ConstrainedWindowMac { |
id<ConstrainedWindowSheet> sheet); |
~ConstrainedWindowMac(); |
+ // Shows the constrained window. |
+ void ShowWebContentsModalDialog(); |
+ |
// Closes the constrained window. |
void CloseWebContentsModalDialog(); |
@@ -38,13 +56,24 @@ class ConstrainedWindowMac { |
void set_manager(SingleWebContentsDialogManagerCocoa* manager) { |
manager_ = manager; |
} |
+ id<ConstrainedWindowSheet> sheet() const { return sheet_.get(); } |
// Called by |manager_| when the dialog is closing. |
void OnDialogClosing(); |
+ // Whether or not the dialog was shown. If the dialog is auto-resizable, it |
+ // is hidden until its WebContents initially loads. |
+ bool DialogWasShown(); |
+ |
+ // Gets the dialog manager for |web_contents_|. |
+ web_modal::WebContentsModalDialogManager* GetDialogManager(); |
+ |
private: |
ConstrainedWindowMacDelegate* delegate_; // weak, owns us. |
SingleWebContentsDialogManagerCocoa* manager_; // weak, owned by WCMDM. |
+ content::WebContents* web_contents_; // weak, owned by dialog initiator. |
+ base::scoped_nsprotocol<id<ConstrainedWindowSheet>> sheet_; |
+ scoped_ptr<SingleWebContentsDialogManagerCocoa> native_manager_; |
}; |
#endif // CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_MAC_ |