summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-05 00:53:18 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-05 00:53:18 +0000
commit90ba0b7405b7226d7702b633b927d389487a73ec (patch)
tree3a34a2951e81431cc5e8944b5661f7e4196977b7
parent7519557e854b97e635f9dd0bcb8482cff7057b75 (diff)
downloadchromium_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.cc13
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();
}