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 5dc49ab2cd9379615439830a019f6f79fdba9a53..0ce4df8dabd21d94c623d0ae10d11a73afba8b5d 100644 |
--- a/chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm |
+++ b/chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm |
@@ -11,11 +11,7 @@ |
#import "chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_window.h" |
#import "chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h" |
#import "chrome/browser/ui/cocoa/constrained_window/constrained_window_web_dialog_sheet.h" |
-#include "chrome/browser/ui/webui/chrome_web_contents_handler.h" |
-#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/web_contents.h" |
-#include "content/public/browser/web_contents_observer.h" |
-#include "ui/base/cocoa/window_size_constants.h" |
#include "ui/gfx/geometry/size.h" |
#include "ui/web_dialogs/web_dialog_delegate.h" |
#include "ui/web_dialogs/web_dialog_ui.h" |
@@ -27,59 +23,17 @@ |
namespace { |
-class ConstrainedWebDialogDelegateMac; |
- |
-// This class is to trigger a resize to the dialog window when |
-// ResizeDueToAutoResize() is invoked. |
-class WebDialogWebContentsDelegateMac |
- : public ui::WebDialogWebContentsDelegate { |
- public: |
- WebDialogWebContentsDelegateMac(content::BrowserContext* browser_context, |
- content::WebContentsObserver* observer, |
- ConstrainedWebDialogDelegateBase* delegate) |
- : ui::WebDialogWebContentsDelegate(browser_context, |
- new ChromeWebContentsHandler()), |
- observer_(observer), |
- delegate_(delegate) { |
- } |
- ~WebDialogWebContentsDelegateMac() override {} |
- |
- void ResizeDueToAutoResize(content::WebContents* source, |
- const gfx::Size& preferred_size) override { |
- if (!observer_->web_contents()) |
- return; |
- delegate_->ResizeToGivenSize(preferred_size); |
- } |
- |
- private: |
- // These members must outlive the instance. |
- content::WebContentsObserver* const observer_; |
- ConstrainedWebDialogDelegateBase* delegate_; |
- |
- DISALLOW_COPY_AND_ASSIGN(WebDialogWebContentsDelegateMac); |
-}; |
- |
class ConstrainedWebDialogDelegateMac |
: public ConstrainedWebDialogDelegateBase { |
public: |
ConstrainedWebDialogDelegateMac( |
content::BrowserContext* browser_context, |
- WebDialogDelegate* delegate, |
- content::WebContentsObserver* observer) |
- : ConstrainedWebDialogDelegateBase(browser_context, delegate, |
- new WebDialogWebContentsDelegateMac(browser_context, observer, |
- this)) {} |
+ WebDialogDelegate* delegate) |
+ : ConstrainedWebDialogDelegateBase(browser_context, delegate, NULL) {} |
// WebDialogWebContentsDelegate interface. |
void CloseContents(WebContents* source) override { |
window_->CloseWebContentsModalDialog(); |
- } |
- |
- // ConstrainedWebDialogDelegateBase: |
- void ResizeToGivenSize(const gfx::Size size) override { |
- NSSize updated_preferred_size = NSMakeSize(size.width(), |
- size.height()); |
- [window_->sheet() resizeWithNewSize:updated_preferred_size]; |
} |
void set_window(ConstrainedWindowMac* window) { window_ = window; } |
@@ -96,16 +50,13 @@ |
class ConstrainedWebDialogDelegateViewMac : |
public ConstrainedWindowMacDelegate, |
- public ConstrainedWebDialogDelegate, |
- public content::WebContentsObserver { |
+ public ConstrainedWebDialogDelegate { |
public: |
ConstrainedWebDialogDelegateViewMac( |
content::BrowserContext* browser_context, |
WebDialogDelegate* delegate, |
- content::WebContents* web_contents, |
- const gfx::Size& min_size, |
- const gfx::Size& max_size); |
+ content::WebContents* web_contents); |
~ConstrainedWebDialogDelegateViewMac() override {} |
// ConstrainedWebDialogDelegate interface |
@@ -124,37 +75,16 @@ |
gfx::NativeWindow GetNativeDialog() override { return window_; } |
WebContents* GetWebContents() override { return impl_->GetWebContents(); } |
gfx::Size GetMinimumSize() const override { |
- return min_size_; |
+ NOTIMPLEMENTED(); |
+ return gfx::Size(); |
} |
gfx::Size GetMaximumSize() const override { |
- return max_size_; |
+ NOTIMPLEMENTED(); |
+ return gfx::Size(); |
} |
gfx::Size GetPreferredSize() const override { |
- gfx::Size size; |
- if (!impl_->closed_via_webui()) { |
- NSRect frame = [window_ frame]; |
- size = gfx::Size(frame.size.width, frame.size.height); |
- } |
- return size; |
- } |
- |
- // content::WebContentsObserver: |
- void RenderViewCreated(content::RenderViewHost* render_view_host) override { |
- if (IsDialogAutoResizable()) |
- EnableAutoResize(); |
- } |
- void RenderViewHostChanged(content::RenderViewHost* old_host, |
- content::RenderViewHost* new_host) override { |
- if (IsDialogAutoResizable()) |
- EnableAutoResize(); |
- } |
- void DocumentOnLoadCompletedInMainFrame() override { |
- if (!IsDialogAutoResizable()) |
- return; |
- |
- EnableAutoResize(); |
- if (GetWebContents()) |
- constrained_window_->ShowWebContentsModalDialog(); |
+ NOTIMPLEMENTED(); |
+ return gfx::Size(); |
} |
// ConstrainedWindowMacDelegate interface |
@@ -165,28 +95,9 @@ |
} |
private: |
- void EnableAutoResize() { |
- if (!GetWebContents()) |
- return; |
- |
- content::RenderViewHost* render_view_host = |
- GetWebContents()->GetRenderViewHost(); |
- render_view_host->EnableAutoResize(min_size_, max_size_); |
- } |
- |
- // Whether or not the dialog is autoresizable is determined based on whether |
- // |max_size_| was specified. |
- bool IsDialogAutoResizable() { |
- return !max_size_.IsEmpty(); |
- } |
- |
scoped_ptr<ConstrainedWebDialogDelegateMac> impl_; |
- std::unique_ptr<ConstrainedWindowMac> constrained_window_; |
+ scoped_ptr<ConstrainedWindowMac> constrained_window_; |
base::scoped_nsobject<NSWindow> window_; |
- |
- // Minimum and maximum sizes to determine dialog bounds for auto-resizing. |
- const gfx::Size min_size_; |
- const gfx::Size max_size_; |
DISALLOW_COPY_AND_ASSIGN(ConstrainedWebDialogDelegateViewMac); |
}; |
@@ -194,24 +105,15 @@ |
ConstrainedWebDialogDelegateViewMac::ConstrainedWebDialogDelegateViewMac( |
content::BrowserContext* browser_context, |
WebDialogDelegate* delegate, |
- content::WebContents* web_contents, |
- const gfx::Size& min_size, |
- const gfx::Size& max_size) |
- : content::WebContentsObserver(web_contents), |
- impl_(new ConstrainedWebDialogDelegateMac(browser_context, delegate, |
- this)), |
- min_size_(min_size), |
- max_size_(max_size) { |
- if (IsDialogAutoResizable()) |
- Observe(GetWebContents()); |
- |
+ content::WebContents* web_contents) |
+ : impl_(new ConstrainedWebDialogDelegateMac(browser_context, delegate)) { |
// Create a window to hold web_contents in the constrained sheet: |
gfx::Size size; |
delegate->GetDialogSize(&size); |
NSRect frame = NSMakeRect(0, 0, size.width(), size.height()); |
- window_.reset([[ConstrainedWindowCustomWindow alloc] |
- initWithContentRect:ui::kWindowSizeDeterminedLater]); |
+ window_.reset( |
+ [[ConstrainedWindowCustomWindow alloc] initWithContentRect:frame]); |
[GetWebContents()->GetNativeView() setFrame:frame]; |
[GetWebContents()->GetNativeView() setAutoresizingMask: |
NSViewWidthSizable|NSViewHeightSizable]; |
@@ -220,14 +122,8 @@ |
base::scoped_nsobject<WebDialogConstrainedWindowSheet> sheet( |
[[WebDialogConstrainedWindowSheet alloc] initWithCustomWindow:window_ |
webDialogDelegate:delegate]); |
- |
- if (IsDialogAutoResizable()) { |
- constrained_window_ = CreateWebModalDialogMac( |
- this, web_contents, sheet); |
- } else { |
- constrained_window_ = CreateAndShowWebModalDialogMac( |
- this, web_contents, sheet); |
- } |
+ constrained_window_.reset(new ConstrainedWindowMac( |
+ this, web_contents, sheet)); |
impl_->set_window(constrained_window_.get()); |
} |
@@ -239,23 +135,6 @@ |
// Deleted when the dialog closes. |
ConstrainedWebDialogDelegateViewMac* constrained_delegate = |
new ConstrainedWebDialogDelegateViewMac( |
- browser_context, delegate, web_contents, |
- gfx::Size(), gfx::Size()); |
+ browser_context, delegate, web_contents); |
return constrained_delegate; |
} |
- |
-ConstrainedWebDialogDelegate* ShowConstrainedWebDialogWithAutoResize( |
- content::BrowserContext* browser_context, |
- WebDialogDelegate* delegate, |
- content::WebContents* web_contents, |
- const gfx::Size& min_size, |
- const gfx::Size& max_size) { |
- DCHECK(!min_size.IsEmpty()); |
- DCHECK(!max_size.IsEmpty()); |
- // Deleted when the dialog closes. |
- ConstrainedWebDialogDelegateViewMac* constrained_delegate = |
- new ConstrainedWebDialogDelegateViewMac( |
- browser_context, delegate, web_contents, |
- min_size, max_size); |
- return constrained_delegate; |
-} |