diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-05 00:53:18 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-05 00:53:18 +0000 |
commit | 90ba0b7405b7226d7702b633b927d389487a73ec (patch) | |
tree | 3a34a2951e81431cc5e8944b5661f7e4196977b7 | |
parent | 7519557e854b97e635f9dd0bcb8482cff7057b75 (diff) | |
download | chromium_src-90ba0b7405b7226d7702b633b927d389487a73ec.zip chromium_src-90ba0b7405b7226d7702b633b927d389487a73ec.tar.gz chromium_src-90ba0b7405b7226d7702b633b927d389487a73ec.tar.bz2 |
Fix crash where the SpeechRecognitionBubble doesn't have a parent.
This can happen when there isn't a location bar.
BUG=173746
Review URL: https://chromiumcodereview.appspot.com/12197015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180590 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/ui/views/speech_recognition_bubble_views.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/chrome/browser/ui/views/speech_recognition_bubble_views.cc b/chrome/browser/ui/views/speech_recognition_bubble_views.cc index 3d95cfd..0ee10ca 100644 --- a/chrome/browser/ui/views/speech_recognition_bubble_views.cc +++ b/chrome/browser/ui/views/speech_recognition_bubble_views.cc @@ -360,7 +360,8 @@ void SpeechRecognitionBubbleImpl::Show() { views::View* icon = NULL; // Anchor to the location icon view, in case |element_rect| is offscreen. - Browser* browser = chrome::FindBrowserWithWebContents(GetWebContents()); + WebContents* web_contents = GetWebContents(); + Browser* browser = chrome::FindBrowserWithWebContents(web_contents); if (browser) { BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser); @@ -369,7 +370,15 @@ void SpeechRecognitionBubbleImpl::Show() { } bubble_ = new SpeechRecognitionBubbleView(delegate_, icon, element_rect_, - GetWebContents()); + web_contents); + + if (!icon) { + // We dont't have an icon to attach to. Manually specify the web contents + // window as the parent. + bubble_->set_parent_window( + web_contents->GetView()->GetTopLevelNativeWindow()); + } + views::BubbleDelegateView::CreateBubble(bubble_); UpdateLayout(); } |