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..588b35e7cec21e2c5ebfb9a15604640df8be9988 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. |
+ConstrainedWindowMac* CreateAndShowWebModalDialogMac( |
+ ConstrainedWindowMacDelegate* delegate, |
+ content::WebContents* web_contents, |
+ id<ConstrainedWindowSheet> sheet); |
+ |
+// Creates a ConstrainedWindowMac and returns it. |
+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,20 @@ 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(); |
+ // 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_nsobject<id> sheet_; |
erikchen
2015/11/12 22:14:57
using scoped_nsprotocol should allow you to retain
apacible
2015/11/13 00:04:00
Done.
|
+ scoped_ptr<SingleWebContentsDialogManagerCocoa> native_manager_; |
}; |
#endif // CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_MAC_ |