diff options
author | rohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-30 15:25:14 +0000 |
---|---|---|
committer | rohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-30 15:25:14 +0000 |
commit | 45443e21c295806e33c360042140a8b62398716c (patch) | |
tree | c5c05ff5cc084398c3f783d56dfc94105eb6cd8b | |
parent | 8c5853292d2395085f81b0515d73f9ca7098c2ea (diff) | |
download | chromium_src-45443e21c295806e33c360042140a8b62398716c.zip chromium_src-45443e21c295806e33c360042140a8b62398716c.tar.gz chromium_src-45443e21c295806e33c360042140a8b62398716c.tar.bz2 |
[Mac] Prevent constrained windows (sheets) from opening while instant preview results are showing.
The sheet will be shown when instant results are committed, either by mouse click or by pressing enter. If the instant results are destroyed, the sheet is never made visible.
BUG=61373
TEST=Enable instant. Paste in a URL that opens an http auth sheet. The sheet should not be visible. No crashy, either. Press enter. The sheet should show.
TEST=Enable instant. Paste in a URL that opens an http auth sheet, then delete the last character. Some sort of instant results should load, most likely a 404 page. Retype the last character. 404 page will continue to show, but the sheet will not open. Click on the preview. The sheet should show.
Review URL: http://codereview.chromium.org/5301006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67712 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller.h | 2 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller.mm | 4 | ||||
-rw-r--r-- | chrome/browser/cocoa/constrained_window_mac.mm | 5 |
3 files changed, 10 insertions, 1 deletions
diff --git a/chrome/browser/cocoa/browser_window_controller.h b/chrome/browser/cocoa/browser_window_controller.h index ce55ec6..fae4f2b 100644 --- a/chrome/browser/cocoa/browser_window_controller.h +++ b/chrome/browser/cocoa/browser_window_controller.h @@ -234,6 +234,8 @@ class TabContents; // Closes the tab sheet |window| and potentially shows the next sheet in the // tab's sheet queue. - (void)removeConstrainedWindow:(ConstrainedWindowMac*)window; +// Returns NO if constrained windows cannot be attached to this window. +- (BOOL)canAttachConstrainedWindow; // Shows or hides the docked web inspector depending on |contents|'s state. - (void)updateDevToolsForContents:(TabContents*)contents; diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm index 2d3f258..3face17 100644 --- a/chrome/browser/cocoa/browser_window_controller.mm +++ b/chrome/browser/cocoa/browser_window_controller.mm @@ -444,6 +444,10 @@ [tabStripController_ removeConstrainedWindow:window]; } +- (BOOL)canAttachConstrainedWindow { + return ![previewableContentsController_ isShowingPreview]; +} + - (void)updateDevToolsForContents:(TabContents*)contents { [devToolsController_ updateDevToolsForTabContents:contents]; [devToolsController_ ensureContentsVisible]; diff --git a/chrome/browser/cocoa/constrained_window_mac.mm b/chrome/browser/cocoa/constrained_window_mac.mm index e063896..3843c50 100644 --- a/chrome/browser/cocoa/constrained_window_mac.mm +++ b/chrome/browser/cocoa/constrained_window_mac.mm @@ -69,7 +69,10 @@ void ConstrainedWindowMac::ShowConstrainedWindow() { NSWindowController* controller = [browserWindow windowController]; if (controller != nil) { DCHECK([controller isKindOfClass:[BrowserWindowController class]]); - Realize(static_cast<BrowserWindowController*>(controller)); + BrowserWindowController* browser_controller = + static_cast<BrowserWindowController*>(controller); + if ([browser_controller canAttachConstrainedWindow]) + Realize(browser_controller); } } |