diff options
author | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-15 00:07:02 +0000 |
---|---|---|
committer | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-15 00:07:02 +0000 |
commit | 4ea32eca4da84df77415f1326095eca47308fbde (patch) | |
tree | d00dd9c67b17bc8b361b30c0f6e45528a8bf3ad4 /ui | |
parent | ccfc8a2189cd03fe40d9502fe09a233b9fe88ff4 (diff) | |
download | chromium_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.cc | 3 | ||||
-rw-r--r-- | ui/views/bubble/bubble_delegate.h | 4 |
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(); |