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

Unified Diff: chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm

Issue 12276010: Factor out uses of the WebContentsModalDialog interface from platform-independent code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove incorrect override Created 7 years, 10 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
« no previous file with comments | « chrome/browser/ui/android/login_prompt_android.cc ('k') | chrome/browser/ui/cocoa/login_prompt_cocoa.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm
diff --git a/chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm b/chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm
index dd710c11266064362b6467290971d5fef6ba0d90..ffb11c2690c0f94c7b8482ae4290504da50dc4e0 100644
--- a/chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm
+++ b/chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm
@@ -20,17 +20,46 @@ using content::WebContents;
using ui::WebDialogDelegate;
using ui::WebDialogWebContentsDelegate;
-class ConstrainedWebDialogDelegateMac :
+namespace {
+
+class ConstrainedWebDialogDelegateMac
+ : public ConstrainedWebDialogDelegateBase {
+ public:
+ ConstrainedWebDialogDelegateMac(
+ content::BrowserContext* browser_context,
+ WebDialogDelegate* delegate,
+ WebDialogWebContentsDelegate* tab_delegate)
+ : ConstrainedWebDialogDelegateBase(
+ browser_context, delegate, tab_delegate) {}
+
+ // WebDialogWebContentsDelegate interface.
+ virtual void CloseContents(WebContents* source) OVERRIDE {
+ window_->CloseWebContentsModalDialog();
+ }
+
+ void set_window(ConstrainedWindowMac* window) { window_ = window; }
+ ConstrainedWindowMac* window() const { return window_; }
+
+ private:
+ // Weak, owned by ConstrainedWebDialogDelegateViewMac.
+ ConstrainedWindowMac* window_;
+
+ DISALLOW_COPY_AND_ASSIGN(ConstrainedWebDialogDelegateMac);
+};
+
+} // namespace
+
+class ConstrainedWebDialogDelegateViewMac :
public ConstrainedWindowMacDelegate,
public ConstrainedWebDialogDelegate {
public:
- ConstrainedWebDialogDelegateMac(
+ ConstrainedWebDialogDelegateViewMac(
content::BrowserContext* browser_context,
WebDialogDelegate* delegate,
WebDialogWebContentsDelegate* tab_delegate,
content::WebContents* web_contents);
- virtual ~ConstrainedWebDialogDelegateMac() {}
+ virtual ~ConstrainedWebDialogDelegateViewMac() {}
// ConstrainedWebDialogDelegate interface
virtual const WebDialogDelegate*
@@ -46,8 +75,8 @@ class ConstrainedWebDialogDelegateMac :
virtual void ReleaseWebContentsOnDialogClose() OVERRIDE {
return impl_->ReleaseWebContentsOnDialogClose();
}
- virtual WebContentsModalDialog* GetWindow() OVERRIDE {
- return impl_->GetWindow();
+ virtual NativeWebContentsModalDialog GetNativeDialog() OVERRIDE {
+ return constrained_window_->GetNativeDialog();
}
virtual WebContents* GetWebContents() OVERRIDE {
return impl_->GetWebContents();
@@ -62,21 +91,21 @@ class ConstrainedWebDialogDelegateMac :
}
private:
- scoped_ptr<ConstrainedWebDialogDelegateBase> impl_;
+ scoped_ptr<ConstrainedWebDialogDelegateMac> impl_;
scoped_ptr<ConstrainedWindowMac> constrained_window_;
scoped_nsobject<NSWindow> window_;
- DISALLOW_COPY_AND_ASSIGN(ConstrainedWebDialogDelegateMac);
+ DISALLOW_COPY_AND_ASSIGN(ConstrainedWebDialogDelegateViewMac);
};
-ConstrainedWebDialogDelegateMac::ConstrainedWebDialogDelegateMac(
+ConstrainedWebDialogDelegateViewMac::ConstrainedWebDialogDelegateViewMac(
content::BrowserContext* browser_context,
WebDialogDelegate* delegate,
WebDialogWebContentsDelegate* tab_delegate,
content::WebContents* web_contents)
- : impl_(new ConstrainedWebDialogDelegateBase(browser_context,
- delegate,
- tab_delegate)) {
+ : impl_(new ConstrainedWebDialogDelegateMac(browser_context,
+ delegate,
+ tab_delegate)) {
// Create a window to hold web_contents in the constrained sheet:
gfx::Size size;
delegate->GetDialogSize(&size);
@@ -92,7 +121,8 @@ ConstrainedWebDialogDelegateMac::ConstrainedWebDialogDelegateMac(
initWithCustomWindow:window_]);
constrained_window_.reset(new ConstrainedWindowMac(
this, web_contents, sheet));
- return impl_->set_window(constrained_window_.get());
+
+ impl_->set_window(constrained_window_.get());
}
ConstrainedWebDialogDelegate* CreateConstrainedWebDialog(
@@ -101,8 +131,8 @@ ConstrainedWebDialogDelegate* CreateConstrainedWebDialog(
WebDialogWebContentsDelegate* tab_delegate,
content::WebContents* web_contents) {
// Deleted when the dialog closes.
- ConstrainedWebDialogDelegateMac* constrained_delegate =
- new ConstrainedWebDialogDelegateMac(
+ ConstrainedWebDialogDelegateViewMac* constrained_delegate =
+ new ConstrainedWebDialogDelegateViewMac(
browser_context, delegate, tab_delegate, web_contents);
return constrained_delegate;
}
« no previous file with comments | « chrome/browser/ui/android/login_prompt_android.cc ('k') | chrome/browser/ui/cocoa/login_prompt_cocoa.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698