summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authormsw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 00:07:02 +0000
committermsw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 00:07:02 +0000
commit4ea32eca4da84df77415f1326095eca47308fbde (patch)
treed00dd9c67b17bc8b361b30c0f6e45528a8bf3ad4 /ui
parentccfc8a2189cd03fe40d9502fe09a233b9fe88ff4 (diff)
downloadchromium_src-4ea32eca4da84df77415f1326095eca47308fbde.zip
chromium_src-4ea32eca4da84df77415f1326095eca47308fbde.tar.gz
chromium_src-4ea32eca4da84df77415f1326095eca47308fbde.tar.bz2
Patch AvatarMenuBubbleView crash; only SizeToContents if GetBubbleFrameView.
Showing the avatar menu crashes after crrev.com/114330. SizeToContents was called before BubbleFrameView init. This workaround checks GetBubbleFrameView before calling SizeToContents. Also, run OnAvatarMenuModelChanged on Init, not ctor. BUG=106989,107574 TEST=No crash and doesn't regress crbug.com/106989. Review URL: http://codereview.chromium.org/8909013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114538 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r--ui/views/bubble/bubble_delegate.cc3
-rw-r--r--ui/views/bubble/bubble_delegate.h4
2 files changed, 4 insertions, 3 deletions
diff --git a/ui/views/bubble/bubble_delegate.cc b/ui/views/bubble/bubble_delegate.cc
index 9a790d9..663cec9 100644
--- a/ui/views/bubble/bubble_delegate.cc
+++ b/ui/views/bubble/bubble_delegate.cc
@@ -279,7 +279,8 @@ void BubbleDelegateView::SizeToContents() {
BubbleFrameView* BubbleDelegateView::GetBubbleFrameView() const {
const Widget* widget = border_widget_ ? border_widget_ : GetWidget();
- return static_cast<BubbleFrameView*>(widget->non_client_view()->frame_view());
+ const NonClientView* view = widget ? widget->non_client_view() : NULL;
+ return view ? static_cast<BubbleFrameView*>(view->frame_view()) : NULL;
}
gfx::Rect BubbleDelegateView::GetBubbleBounds() {
diff --git a/ui/views/bubble/bubble_delegate.h b/ui/views/bubble/bubble_delegate.h
index 01bd518..1c73e14 100644
--- a/ui/views/bubble/bubble_delegate.h
+++ b/ui/views/bubble/bubble_delegate.h
@@ -107,12 +107,12 @@ class VIEWS_EXPORT BubbleDelegateView : public WidgetDelegateView,
// contents preferred size.
void SizeToContents();
+ BubbleFrameView* GetBubbleFrameView() const;
+
private:
FRIEND_TEST_ALL_PREFIXES(BubbleFrameViewBasicTest, NonClientHitTest);
FRIEND_TEST_ALL_PREFIXES(BubbleDelegateTest, CreateDelegate);
- BubbleFrameView* GetBubbleFrameView() const;
-
// Get bubble bounds from the anchor point and client view's preferred size.
gfx::Rect GetBubbleBounds();