diff options
author | apacible <apacible@chromium.org> | 2015-11-13 11:13:52 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-13 19:14:28 +0000 |
commit | 5acf85a4aebf309d5cb11c6774ef3a067d12a21a (patch) | |
tree | 9f1d97f109d542761e624f93749b01e186bc465d /chrome/browser/ui | |
parent | 6c65b9ada7990e322be4accae2c628ce494adc12 (diff) | |
download | chromium_src-5acf85a4aebf309d5cb11c6774ef3a067d12a21a.zip chromium_src-5acf85a4aebf309d5cb11c6774ef3a067d12a21a.tar.gz chromium_src-5acf85a4aebf309d5cb11c6774ef3a067d12a21a.tar.bz2 |
Revert of Enable AutoResize for Constrained Web Dialogs for Mac. (patchset #4 id:650001 of https://codereview.chromium.org/1430023002/ )
Reason for revert:
This is breaking Mac10.9 browser_tests (flaky):
https://build.chromium.org/p/chromium.mac/builders/Mac10.9%20Tests/builds/11410
https://build.chromium.org/p/chromium.mac/builders/Mac10.9%20Tests/builds/11410/steps/browser_tests%20on%20Mac-10.9/logs/ConstrainedWebDialogBrowserTest.ContentResizeInAutoResizingDialog
Original issue's description:
> Enable AutoResize for Constrained Web Dialogs for Mac.
>
> Currently only constrained web dialogs for views (Linux/Windows) are able to
> autoresize. This change implements the option to pass in minimum and maximum
> sizes and enabling autoresizing functionality for OSX.
>
> This change adds two static functions for options on whether to create a
> ConstrainedWindowsMac that autoresizes or is of fixed size.
>
> BUG=217034
>
> Committed: https://crrev.com/0dbc8ff6d68291773b8b233a19e399d00f9262b0
> Cr-Commit-Position: refs/heads/master@{#359497}
TBR=thakis@chromium.org,erikchen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=217034
Review URL: https://codereview.chromium.org/1440173003
Cr-Commit-Position: refs/heads/master@{#359593}
Diffstat (limited to 'chrome/browser/ui')
26 files changed, 55 insertions, 267 deletions
diff --git a/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.mm b/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.mm index 99a645f..4a80bbd 100644 --- a/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.mm +++ b/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.mm @@ -39,7 +39,7 @@ void AutofillDialogCocoa::Show() { [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:[sheet_delegate_ window]]); constrained_window_.reset( - CreateAndShowWebModalDialogMac(this, delegate_->GetWebContents(), sheet)); + new ConstrainedWindowMac(this, delegate_->GetWebContents(), sheet)); [sheet_delegate_ show]; } diff --git a/chrome/browser/ui/cocoa/autofill/card_unmask_prompt_view_bridge.mm b/chrome/browser/ui/cocoa/autofill/card_unmask_prompt_view_bridge.mm index 11c985a..c8a666b 100644 --- a/chrome/browser/ui/cocoa/autofill/card_unmask_prompt_view_bridge.mm +++ b/chrome/browser/ui/cocoa/autofill/card_unmask_prompt_view_bridge.mm @@ -88,7 +88,7 @@ void CardUnmaskPromptViewBridge::Show() { base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:window]); constrained_window_.reset( - CreateAndShowWebModalDialogMac(this, web_contents_, sheet)); + new ConstrainedWindowMac(this, web_contents_, sheet)); } void CardUnmaskPromptViewBridge::ControllerGone() { diff --git a/chrome/browser/ui/cocoa/certificate_viewer_mac.mm b/chrome/browser/ui/cocoa/certificate_viewer_mac.mm index a6159bf..e5f6a9a 100644 --- a/chrome/browser/ui/cocoa/certificate_viewer_mac.mm +++ b/chrome/browser/ui/cocoa/certificate_viewer_mac.mm @@ -134,7 +134,7 @@ void ShowCertificateViewer(content::WebContents* web_contents, [panel_ setPolicies:(id) policies.get()]; constrainedWindow_.reset( - CreateAndShowWebModalDialogMac(observer_.get(), webContents, self)); + new ConstrainedWindowMac(observer_.get(), webContents, self)); } - (NSWindow*)overlayWindow { @@ -197,10 +197,6 @@ void ShowCertificateViewer(content::WebContents* web_contents, // NOOP } -- (void)resizeWithNewSize:(NSSize)preferredSize { - // NOOP -} - - (NSWindow*)sheetWindow { return panel_; } 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 bd517bc..220299f 100644 --- a/chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm +++ b/chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm @@ -10,10 +10,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/gfx/geometry/size.h" #include "ui/web_dialogs/web_dialog_delegate.h" #include "ui/web_dialogs/web_dialog_ui.h" @@ -25,61 +22,19 @@ using ui::WebDialogWebContentsDelegate; 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; } ConstrainedWindowMac* window() const { return window_; } @@ -94,16 +49,13 @@ class ConstrainedWebDialogDelegateMac 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 @@ -122,37 +74,16 @@ class ConstrainedWebDialogDelegateViewMac : 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 @@ -163,53 +94,25 @@ class ConstrainedWebDialogDelegateViewMac : } 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_; 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); }; 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:frame]); + window_.reset( + [[ConstrainedWindowCustomWindow alloc] initWithContentRect:frame]); [GetWebContents()->GetNativeView() setFrame:frame]; [GetWebContents()->GetNativeView() setAutoresizingMask: NSViewWidthSizable|NSViewHeightSizable]; @@ -218,14 +121,8 @@ ConstrainedWebDialogDelegateViewMac::ConstrainedWebDialogDelegateViewMac( base::scoped_nsobject<WebDialogConstrainedWindowSheet> sheet( [[WebDialogConstrainedWindowSheet alloc] initWithCustomWindow:window_ webDialogDelegate:delegate]); - - if (IsDialogAutoResizable()) { - constrained_window_.reset(CreateWebModalDialogMac( - this, web_contents, sheet)); - } else { - constrained_window_.reset(CreateAndShowWebModalDialogMac( - this, web_contents, sheet)); - } + constrained_window_.reset(new ConstrainedWindowMac( + this, web_contents, sheet)); impl_->set_window(constrained_window_.get()); } @@ -237,23 +134,6 @@ ConstrainedWebDialogDelegate* ShowConstrainedWebDialog( // Deleted when the dialog closes. ConstrainedWebDialogDelegateViewMac* constrained_delegate = new ConstrainedWebDialogDelegateViewMac( - browser_context, delegate, web_contents, - gfx::Size(), gfx::Size()); - 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); + browser_context, delegate, web_contents); return constrained_delegate; } diff --git a/chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_sheet.mm b/chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_sheet.mm index ab67fc6..aac5946 100644 --- a/chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_sheet.mm +++ b/chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_sheet.mm @@ -73,10 +73,6 @@ [customWindow_ setFrameOrigin:origin]; } -- (void)resizeWithNewSize:(NSSize)size { - // NOOP -} - - (NSWindow*)sheetWindow { return customWindow_; } 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 2a3b5a6..e3d981e 100644 --- a/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h +++ b/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h @@ -7,9 +7,6 @@ #import <Cocoa/Cocoa.h> -#include "base/mac/scoped_nsobject.h" -#include "components/web_modal/web_contents_modal_dialog_manager.h" - namespace content { class WebContents; } @@ -24,18 +21,6 @@ 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. @@ -46,9 +31,6 @@ class ConstrainedWindowMac { id<ConstrainedWindowSheet> sheet); ~ConstrainedWindowMac(); - // Shows the constrained window. - void ShowWebContentsModalDialog(); - // Closes the constrained window. void CloseWebContentsModalDialog(); @@ -56,20 +38,13 @@ 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_nsprotocol<id<ConstrainedWindowSheet>> sheet_; - scoped_ptr<SingleWebContentsDialogManagerCocoa> native_manager_; }; #endif // CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_MAC_ diff --git a/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.mm b/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.mm index c3b9a2c..f043fad 100644 --- a/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.mm +++ b/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.mm @@ -9,56 +9,34 @@ #import "chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet.h" #import "chrome/browser/ui/cocoa/single_web_contents_dialog_manager_cocoa.h" #include "components/guest_view/browser/guest_view_base.h" +#include "components/web_modal/web_contents_modal_dialog_manager.h" #include "content/public/browser/browser_thread.h" using web_modal::WebContentsModalDialogManager; -ConstrainedWindowMac* CreateAndShowWebModalDialogMac( - ConstrainedWindowMacDelegate* delegate, - content::WebContents* web_contents, - id<ConstrainedWindowSheet> sheet) { - ConstrainedWindowMac* window = - new ConstrainedWindowMac(delegate, web_contents, sheet); - window->ShowWebContentsModalDialog(); - return window; -} - -ConstrainedWindowMac* CreateWebModalDialogMac( - ConstrainedWindowMacDelegate* delegate, - content::WebContents* web_contents, - id<ConstrainedWindowSheet> sheet) { - return new ConstrainedWindowMac(delegate, web_contents, sheet); -} - ConstrainedWindowMac::ConstrainedWindowMac( ConstrainedWindowMacDelegate* delegate, content::WebContents* web_contents, id<ConstrainedWindowSheet> sheet) - : delegate_(delegate), - sheet_([sheet retain]) { + : delegate_(delegate) { DCHECK(sheet); // |web_contents| may be embedded within a chain of nested GuestViews. If it // is, follow the chain of embedders to the outermost WebContents and use it. - web_contents_ = + web_contents = guest_view::GuestViewBase::GetTopLevelWebContents(web_contents); - native_manager_.reset( - new SingleWebContentsDialogManagerCocoa(this, sheet_.get(), - GetDialogManager())); + auto manager = WebContentsModalDialogManager::FromWebContents(web_contents); + scoped_ptr<SingleWebContentsDialogManagerCocoa> native_manager( + new SingleWebContentsDialogManagerCocoa(this, sheet, manager)); + manager->ShowDialogWithManager([sheet sheetWindow], native_manager.Pass()); } ConstrainedWindowMac::~ConstrainedWindowMac() { CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); - native_manager_.reset(); DCHECK(!manager_); } -void ConstrainedWindowMac::ShowWebContentsModalDialog() { - GetDialogManager()->ShowDialogWithManager( - [sheet_.get() sheetWindow], native_manager_.Pass()); -} - void ConstrainedWindowMac::CloseWebContentsModalDialog() { if (manager_) manager_->Close(); @@ -68,8 +46,3 @@ void ConstrainedWindowMac::OnDialogClosing() { if (delegate_) delegate_->OnConstrainedWindowClosed(this); } - -WebContentsModalDialogManager* ConstrainedWindowMac::GetDialogManager() { - DCHECK(web_contents_); - return WebContentsModalDialogManager::FromWebContents(web_contents_); -} diff --git a/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac_browsertest.mm b/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac_browsertest.mm index f5712aa..5456a25 100644 --- a/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac_browsertest.mm +++ b/chrome/browser/ui/cocoa/constrained_window/constrained_window_mac_browsertest.mm @@ -77,15 +77,14 @@ class ConstrainedWindowMacTest : public InProcessBrowserTest { IN_PROC_BROWSER_TEST_F(ConstrainedWindowMacTest, ShowInInactiveTab) { // Show dialog in non active tab. NiceMock<ConstrainedWindowDelegateMock> delegate; - ConstrainedWindowMac* dialog = - CreateAndShowWebModalDialogMac(&delegate, tab0_, sheet_); + ConstrainedWindowMac dialog(&delegate, tab0_, sheet_); EXPECT_EQ(0.0, [sheet_window_ alphaValue]); // Switch to inactive tab. browser()->tab_strip_model()->ActivateTabAt(0, true); EXPECT_EQ(1.0, [sheet_window_ alphaValue]); - dialog->CloseWebContentsModalDialog(); + dialog.CloseWebContentsModalDialog(); } // If a tab has never been shown then the associated tab view for the web @@ -104,8 +103,7 @@ IN_PROC_BROWSER_TEST_F(ConstrainedWindowMacTest, ShowInUninitializedTab) { // Show dialog and verify that it's not visible yet. NiceMock<ConstrainedWindowDelegateMock> delegate; - ConstrainedWindowMac* dialog = - CreateAndShowWebModalDialogMac(&delegate, tab2, sheet_); + ConstrainedWindowMac dialog(&delegate, tab2, sheet_); EXPECT_FALSE([sheet_window_ isVisible]); // Activate the tab and verify that the constrained window is shown. @@ -114,26 +112,25 @@ IN_PROC_BROWSER_TEST_F(ConstrainedWindowMacTest, ShowInUninitializedTab) { EXPECT_TRUE([sheet_window_ isVisible]); EXPECT_EQ(1.0, [sheet_window_ alphaValue]); - dialog->CloseWebContentsModalDialog(); + dialog.CloseWebContentsModalDialog(); } // Test that adding a sheet disables tab dragging. IN_PROC_BROWSER_TEST_F(ConstrainedWindowMacTest, TabDragging) { NiceMock<ConstrainedWindowDelegateMock> delegate; - ConstrainedWindowMac* dialog = - CreateAndShowWebModalDialogMac(&delegate, tab1_, sheet_); + ConstrainedWindowMac dialog(&delegate, tab1_, sheet_); // Verify that the dialog disables dragging. EXPECT_TRUE([controller_ isTabDraggable:tab_view0_]); EXPECT_FALSE([controller_ isTabDraggable:tab_view1_]); - dialog->CloseWebContentsModalDialog(); + dialog.CloseWebContentsModalDialog(); } // Test that closing a browser window with a sheet works. IN_PROC_BROWSER_TEST_F(ConstrainedWindowMacTest, BrowserWindowClose) { NiceMock<ConstrainedWindowDelegateMock> delegate; - CreateAndShowWebModalDialogMac(&delegate, tab1_, sheet_); + ConstrainedWindowMac dialog(&delegate, tab1_, sheet_); EXPECT_EQ(1.0, [sheet_window_ alphaValue]); // Close the browser window. @@ -147,7 +144,7 @@ IN_PROC_BROWSER_TEST_F(ConstrainedWindowMacTest, BrowserWindowClose) { // Test that closing a tab with a sheet works. IN_PROC_BROWSER_TEST_F(ConstrainedWindowMacTest, TabClose) { NiceMock<ConstrainedWindowDelegateMock> delegate; - CreateAndShowWebModalDialogMac(&delegate, tab1_, sheet_); + ConstrainedWindowMac dialog(&delegate, tab1_, sheet_); EXPECT_EQ(1.0, [sheet_window_ alphaValue]); // Close the tab. diff --git a/chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet.h b/chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet.h index cf24f7d..4549556 100644 --- a/chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet.h +++ b/chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet.h @@ -24,8 +24,6 @@ - (void)updateSheetPosition; -- (void)resizeWithNewSize:(NSSize)size; - @property(readonly, nonatomic) NSWindow* sheetWindow; @end diff --git a/chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_controller_unittest.mm b/chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_controller_unittest.mm index 6cbccc7..efa051f 100644 --- a/chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_controller_unittest.mm @@ -56,10 +56,6 @@ const int kSystemSheetReturnCode = 77; - (void)updateSheetPosition { } -- (void)resizeWithNewSize:(NSSize)size { - // NOOP -} - - (NSWindow*)sheetWindow { return [alert_ window]; } diff --git a/chrome/browser/ui/cocoa/constrained_window/constrained_window_web_dialog_sheet.mm b/chrome/browser/ui/cocoa/constrained_window/constrained_window_web_dialog_sheet.mm index 6e7d3f1..3c71f00 100644 --- a/chrome/browser/ui/cocoa/constrained_window/constrained_window_web_dialog_sheet.mm +++ b/chrome/browser/ui/cocoa/constrained_window/constrained_window_web_dialog_sheet.mm @@ -27,14 +27,4 @@ [super updateSheetPosition]; } -- (void)resizeWithNewSize:(NSSize)size { - [customWindow_ setContentSize:size]; - - // self's updateSheetPosition() sets |customWindow_|'s contentSize to a - // fixed dialog size. Here, we want to resize to |size| instead. Use - // super rather than self to bypass the setContentSize() call for the fixed - // size. - [super updateSheetPosition]; -} - @end diff --git a/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.mm b/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.mm index 65c9182..5cc1a6b6 100644 --- a/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.mm +++ b/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.mm @@ -66,7 +66,8 @@ CollectedCookiesMac::CollectedCookiesMac(content::WebContents* web_contents) { base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:[sheet_controller_ window]]); - window_.reset(CreateAndShowWebModalDialogMac(this, web_contents, sheet)); + window_.reset(new ConstrainedWindowMac( + this, web_contents, sheet)); } CollectedCookiesMac::~CollectedCookiesMac() { diff --git a/chrome/browser/ui/cocoa/extensions/device_permissions_dialog_controller.mm b/chrome/browser/ui/cocoa/extensions/device_permissions_dialog_controller.mm index a03c00f..6babaf2 100644 --- a/chrome/browser/ui/cocoa/extensions/device_permissions_dialog_controller.mm +++ b/chrome/browser/ui/cocoa/extensions/device_permissions_dialog_controller.mm @@ -34,7 +34,7 @@ DevicePermissionsDialogController::DevicePermissionsDialogController( base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:window]); constrained_window_.reset( - CreateAndShowWebModalDialogMac(this, web_contents, sheet)); + new ConstrainedWindowMac(this, web_contents, sheet)); } DevicePermissionsDialogController::~DevicePermissionsDialogController() { diff --git a/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm b/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm index c4e94a9..c901e17 100644 --- a/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm +++ b/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm @@ -55,7 +55,7 @@ ExtensionInstallDialogController::ExtensionInstallDialogController( base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:window]); - constrained_window_.reset(CreateAndShowWebModalDialogMac( + constrained_window_.reset(new ConstrainedWindowMac( this, show_params->GetParentWebContents(), sheet)); std::string event_name = ExperienceSamplingEvent::kExtensionInstallDialog; diff --git a/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm b/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm index 05c2567..976d672 100644 --- a/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm +++ b/chrome/browser/ui/cocoa/extensions/media_galleries_dialog_cocoa.mm @@ -100,7 +100,7 @@ MediaGalleriesDialogCocoa::MediaGalleriesDialogCocoa( base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:[alert_ window]]); - window_.reset(CreateAndShowWebModalDialogMac( + window_.reset(new ConstrainedWindowMac( this, controller->WebContents(), sheet)); } } diff --git a/chrome/browser/ui/cocoa/login_prompt_cocoa.mm b/chrome/browser/ui/cocoa/login_prompt_cocoa.mm index 5706eb6..4ba6292 100644 --- a/chrome/browser/ui/cocoa/login_prompt_cocoa.mm +++ b/chrome/browser/ui/cocoa/login_prompt_cocoa.mm @@ -77,7 +77,7 @@ class LoginHandlerMac : public LoginHandler, base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:[sheet_controller_ window]]); - constrained_window_.reset(CreateAndShowWebModalDialogMac( + constrained_window_.reset(new ConstrainedWindowMac( this, requesting_contents, sheet)); NotifyAuthNeeded(); diff --git a/chrome/browser/ui/cocoa/one_click_signin_dialog_controller.mm b/chrome/browser/ui/cocoa/one_click_signin_dialog_controller.mm index 480dfcf..f0156f2 100644 --- a/chrome/browser/ui/cocoa/one_click_signin_dialog_controller.mm +++ b/chrome/browser/ui/cocoa/one_click_signin_dialog_controller.mm @@ -30,15 +30,15 @@ OneClickSigninDialogController::OneClickSigninDialogController( base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:window]); - constrained_window_.reset( - CreateAndShowWebModalDialogMac(this, web_contents, sheet)); + constrained_window_.reset(new ConstrainedWindowMac( + this, web_contents, sheet)); } OneClickSigninDialogController::~OneClickSigninDialogController() { } void OneClickSigninDialogController::OnConstrainedWindowClosed( - ConstrainedWindowMac* window) { + ConstrainedWindowMac* window) { [view_controller_ viewWillClose]; base::MessageLoop::current()->DeleteSoon(FROM_HERE, this); } diff --git a/chrome/browser/ui/cocoa/profiles/profile_signin_confirmation_dialog_cocoa.mm b/chrome/browser/ui/cocoa/profiles/profile_signin_confirmation_dialog_cocoa.mm index c58ba64..a46b4eb 100644 --- a/chrome/browser/ui/cocoa/profiles/profile_signin_confirmation_dialog_cocoa.mm +++ b/chrome/browser/ui/cocoa/profiles/profile_signin_confirmation_dialog_cocoa.mm @@ -59,7 +59,7 @@ ProfileSigninConfirmationDialogCocoa::ProfileSigninConfirmationDialogCocoa( [[window contentView] addSubview:[controller_ view]]; base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:window]); - window_.reset(CreateAndShowWebModalDialogMac(this, web_contents, sheet)); + window_.reset(new ConstrainedWindowMac(this, web_contents, sheet)); } ProfileSigninConfirmationDialogCocoa::~ProfileSigninConfirmationDialogCocoa() { diff --git a/chrome/browser/ui/cocoa/profiles/user_manager_mac.mm b/chrome/browser/ui/cocoa/profiles/user_manager_mac.mm index 8cf1c97..e5bf1c2 100644 --- a/chrome/browser/ui/cocoa/profiles/user_manager_mac.mm +++ b/chrome/browser/ui/cocoa/profiles/user_manager_mac.mm @@ -203,8 +203,8 @@ class ReauthDialogDelegate : public UserManager::ReauthDialogObserver, [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:[self window]]); constrained_window_.reset( - CreateAndShowWebModalDialogMac( - webContentsDelegate_.get(), webContents_, sheet)); + new ConstrainedWindowMac( + webContentsDelegate_.get(), webContents_, sheet)); // The close button needs to call CloseWebContentsModalDialog() on the // constrained window isntead of just [window close] so grab a reference to diff --git a/chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa.mm b/chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa.mm index f634d11..6e2703d 100644 --- a/chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa.mm +++ b/chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa.mm @@ -176,7 +176,7 @@ void ShowSSLClientCertificateSelector( } constrainedWindow_.reset( - CreateAndShowWebModalDialogMac(observer_.get(), webContents, self)); + new ConstrainedWindowMac(observer_.get(), webContents, self)); observer_->StartObserving(); } @@ -256,10 +256,6 @@ void ShowSSLClientCertificateSelector( // NOOP } -- (void)resizeWithNewSize:(NSSize)size { - // NOOP -} - - (NSWindow*)sheetWindow { return panel_; } diff --git a/chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm b/chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm index 7b78d81..abddcf9 100644 --- a/chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm +++ b/chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm @@ -92,7 +92,7 @@ TabModalConfirmDialogMac::TabModalConfirmDialogMac( base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:[alert_ window]]); - window_.reset(CreateAndShowWebModalDialogMac(this, web_contents, sheet)); + window_.reset(new ConstrainedWindowMac(this, web_contents, sheet)); delegate_->set_close_delegate(this); } diff --git a/chrome/browser/ui/cocoa/web_contents_modal_dialog_manager_views_mac.mm b/chrome/browser/ui/cocoa/web_contents_modal_dialog_manager_views_mac.mm index 31f057f..1eefbd1 100644 --- a/chrome/browser/ui/cocoa/web_contents_modal_dialog_manager_views_mac.mm +++ b/chrome/browser/ui/cocoa/web_contents_modal_dialog_manager_views_mac.mm @@ -96,10 +96,6 @@ [customWindow_ setFrameOrigin:origin]; } -- (void)resizeWithNewSize:(NSSize)size { - // NOOP -} - - (NSWindow*)sheetWindow { return customWindow_; } diff --git a/chrome/browser/ui/webui/constrained_web_dialog_delegate_base.cc b/chrome/browser/ui/webui/constrained_web_dialog_delegate_base.cc index db4c547..fd60a4b 100644 --- a/chrome/browser/ui/webui/constrained_web_dialog_delegate_base.cc +++ b/chrome/browser/ui/webui/constrained_web_dialog_delegate_base.cc @@ -113,8 +113,3 @@ gfx::Size ConstrainedWebDialogDelegateBase::GetPreferredSize() const { NOTREACHED(); return gfx::Size(); } - -void ConstrainedWebDialogDelegateBase::ResizeToGivenSize( - const gfx::Size size) { - NOTREACHED(); -} diff --git a/chrome/browser/ui/webui/constrained_web_dialog_delegate_base.h b/chrome/browser/ui/webui/constrained_web_dialog_delegate_base.h index 2fac4b5..973608f 100644 --- a/chrome/browser/ui/webui/constrained_web_dialog_delegate_base.h +++ b/chrome/browser/ui/webui/constrained_web_dialog_delegate_base.h @@ -23,8 +23,6 @@ class ConstrainedWebDialogDelegateBase : public ConstrainedWebDialogDelegate, public ui::WebDialogWebContentsDelegate { public: - // |browser_context| and |delegate| must outlive |this| instance, whereas - // |this| will take ownership of |tab_delegate|. ConstrainedWebDialogDelegateBase(content::BrowserContext* browser_context, ui::WebDialogDelegate* delegate, WebDialogWebContentsDelegate* tab_delegate); @@ -48,9 +46,6 @@ class ConstrainedWebDialogDelegateBase content::WebContents* source, const content::NativeWebKeyboardEvent& event) override; - // Resize the dialog to the given size. - virtual void ResizeToGivenSize(const gfx::Size size); - private: scoped_ptr<ui::WebDialogDelegate> web_dialog_delegate_; diff --git a/chrome/browser/ui/webui/constrained_web_dialog_ui.h b/chrome/browser/ui/webui/constrained_web_dialog_ui.h index c0e883c..62c9a8b 100644 --- a/chrome/browser/ui/webui/constrained_web_dialog_ui.h +++ b/chrome/browser/ui/webui/constrained_web_dialog_ui.h @@ -50,8 +50,6 @@ class ConstrainedWebDialogDelegate { // Returns the maximum size for the dialog. virtual gfx::Size GetMaximumSize() const = 0; - // Returns the preferred size for the dialog, or an empty size if - // the dialog has been closed. virtual gfx::Size GetPreferredSize() const = 0; protected: diff --git a/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc b/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc index 88f6c7f..08fec2d 100644 --- a/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc +++ b/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc @@ -25,6 +25,7 @@ using web_modal::WebContentsModalDialogManager; namespace { +#if !defined(OS_MACOSX) static const char kTestDataURL[] = "data:text/html,<!doctype html>" "<body></body>" "<style>" @@ -40,6 +41,7 @@ std::string GetChangeDimensionsScript(int dimension) { return base::StringPrintf("window.document.body.style.width = %d + 'px';" "window.document.body.style.height = %d + 'px';", dimension, dimension); } +#endif class ConstrainedWebDialogBrowserTestObserver : public content::WebContentsObserver { @@ -133,6 +135,7 @@ IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, EXPECT_TRUE(observer.contents_destroyed()); } +#if !defined(OS_MACOSX) // Tests that dialog autoresizes based on web contents when autoresizing // is enabled. IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, @@ -171,6 +174,7 @@ IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, EXPECT_EQ(max_size, dialog_delegate->GetMaximumSize()); // Check for initial sizing. Dialog was created as a 400x400 dialog. + EXPECT_EQ(gfx::Size(), web_contents->GetPreferredSize()); ASSERT_EQ(initial_dialog_size, dialog_delegate->GetPreferredSize()); observer.Wait(); @@ -234,6 +238,7 @@ IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, delegate->GetDialogSize(&initial_dialog_size); // Check for initial sizing. Dialog was created as a 400x400 dialog. + EXPECT_EQ(gfx::Size(), web_contents->GetPreferredSize()); ASSERT_EQ(initial_dialog_size, dialog_delegate->GetPreferredSize()); // Resize <body> to dimension smaller than dialog. @@ -252,3 +257,4 @@ IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, initial_dialog_size, dialog_delegate))); } +#endif // !OS_MACOSX |