summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/extension_view_mac.mm
diff options
context:
space:
mode:
authorandybons@chromium.org <andybons@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-15 18:16:28 +0000
committerandybons@chromium.org <andybons@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-15 18:16:28 +0000
commitbc6b07f245717b49c89000f0e3eb755e0e9fa58e (patch)
treed8d452656bb2c48640f01b158822320fd46338eb /chrome/browser/cocoa/extension_view_mac.mm
parentab7bcf1498b88cdc2ce9794bbde23ce48c307950 (diff)
downloadchromium_src-bc6b07f245717b49c89000f0e3eb755e0e9fa58e.zip
chromium_src-bc6b07f245717b49c89000f0e3eb755e0e9fa58e.tar.gz
chromium_src-bc6b07f245717b49c89000f0e3eb755e0e9fa58e.tar.bz2
[Mac] Fixes two Browser Action popup sizing issues. One is caused by WebCore sending 0 as a preferred width for a WebView after the correct dimensions have been already received. The other involves a core animation race condition where my code to check for an existing animation was simply incorrect.
TEST=none BUG=32162 Review URL: http://codereview.chromium.org/551030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36370 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/extension_view_mac.mm')
-rw-r--r--chrome/browser/cocoa/extension_view_mac.mm8
1 files changed, 8 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/extension_view_mac.mm b/chrome/browser/cocoa/extension_view_mac.mm
index b1f9d0e..0ff029a 100644
--- a/chrome/browser/cocoa/extension_view_mac.mm
+++ b/chrome/browser/cocoa/extension_view_mac.mm
@@ -55,6 +55,14 @@ void ExtensionViewMac::UpdatePreferredSize(const gfx::Size& new_size) {
frame.size.width = new_size.width();
frame.size.height = new_size.height();
+ // On first display of some extensions, this function is called with zero
+ // width after the correct size has been set. Bail if zero is seen, assuming
+ // that an extension popup view doesn't want any dimensions to ever be zero.
+ // TODO(andybons): Verify this assumption and look into WebCore's
+ // |contentesPreferredWidth| to see why this is occurring.
+ if (NSIsEmptyRect(frame))
+ return;
+
// RenderWidgetHostViewCocoa overrides setFrame but not setFrameSize.
[view setFrame:frame];
[view setNeedsDisplay:YES];