Index: chrome/browser/ui/app_list/search_answer_web_contents_delegate.cc |
diff --git a/chrome/browser/ui/app_list/search_answer_web_contents_delegate.cc b/chrome/browser/ui/app_list/search_answer_web_contents_delegate.cc |
index 08af8884a8f4d1fc49703d00bc974ef42845cb1d..f4177fdbb977c37464afe8147dab8fb3f06833df 100644 |
--- a/chrome/browser/ui/app_list/search_answer_web_contents_delegate.cc |
+++ b/chrome/browser/ui/app_list/search_answer_web_contents_delegate.cc |
@@ -45,9 +45,13 @@ SearchAnswerWebContentsDelegate::SearchAnswerWebContentsDelegate( |
web_contents_->SetDelegate(this); |
web_view_->set_owned_by_client(); |
web_view_->SetWebContents(web_contents_.get()); |
+ |
+ model->AddObserver(this); |
} |
-SearchAnswerWebContentsDelegate::~SearchAnswerWebContentsDelegate() {} |
+SearchAnswerWebContentsDelegate::~SearchAnswerWebContentsDelegate() { |
+ model_->RemoveObserver(this); |
+} |
views::View* SearchAnswerWebContentsDelegate::web_view() { |
return web_view_.get(); |
@@ -62,6 +66,12 @@ void SearchAnswerWebContentsDelegate::Update() { |
model_->SetSearchAnswerAvailable(false); |
current_request_url_ = GURL(); |
+ if (model_->search_box()->is_voice_query()) { |
+ // No need to send a server request and show a card because launcher |
+ // automatically closes upon voice queries. |
+ return; |
+ } |
+ |
if (!model_->search_engine_is_google()) |
return; |
@@ -153,4 +163,9 @@ void SearchAnswerWebContentsDelegate::DidStopLoading() { |
model_->SetSearchAnswerAvailable(true); |
} |
+void SearchAnswerWebContentsDelegate::OnSearchEngineIsGoogleChanged( |
+ bool is_google) { |
+ Update(); |
+} |
+ |
} // namespace app_list |