Index: chrome/browser/ui/search/instant_page.h |
diff --git a/chrome/browser/ui/search/instant_page.h b/chrome/browser/ui/search/instant_page.h |
index 5bb3045e467dca76041b20932083a5a8ecffa2be..ec9f7523d1c67c970aa432279034463a4630821c 100644 |
--- a/chrome/browser/ui/search/instant_page.h |
+++ b/chrome/browser/ui/search/instant_page.h |
@@ -11,6 +11,7 @@ |
#include "base/compiler_specific.h" |
#include "base/gtest_prod_util.h" |
#include "base/strings/string16.h" |
+#include "chrome/browser/ui/search/search_model_observer.h" |
#include "chrome/common/instant_types.h" |
#include "chrome/common/omnibox_focus_state.h" |
#include "content/public/browser/web_contents_observer.h" |
@@ -32,7 +33,8 @@ class Rect; |
// Instant/Embedded Search API (http://dev.chromium.org/embeddedsearch). |
// InstantPage is not used directly but via one of its derived classes: |
// InstantOverlay, InstantNTP and InstantTab. |
-class InstantPage : public content::WebContentsObserver { |
+class InstantPage : public content::WebContentsObserver, |
+ public SearchModelObserver { |
public: |
// InstantPage calls its delegate in response to messages received from the |
// page. Each method is called with the |contents| corresponding to the page |
@@ -63,6 +65,10 @@ class InstantPage : public content::WebContentsObserver { |
const content::WebContents* contents, |
const std::vector<InstantSuggestion>& suggestions) = 0; |
+ // Called upon determination of whether the page supports voice search. |
+ virtual void SetVoiceSearchSupported(const content::WebContents* contents, |
+ bool supported) = 0; |
+ |
// Called when the page wants to be shown. Usually in response to Update() |
// or SendAutocompleteResults(). |
virtual void ShowInstantOverlay(const content::WebContents* contents, |
@@ -204,9 +210,9 @@ class InstantPage : public content::WebContentsObserver { |
protected: |
InstantPage(Delegate* delegate, const std::string& instant_url); |
- // Sets |contents| as the page to communicate with. |contents| may be NULL, |
- // which effectively stops all communication. |
- void SetContents(content::WebContents* contents); |
+ // Sets |web_contents| as the page to communicate with. |web_contents| may be |
+ // NULL, which effectively stops all communication. |
+ void SetContents(content::WebContents* web_contents); |
Delegate* delegate() const { return delegate_; } |
@@ -218,6 +224,7 @@ class InstantPage : public content::WebContentsObserver { |
virtual bool ShouldProcessRenderViewGone(); |
virtual bool ShouldProcessAboutToNavigateMainFrame(); |
virtual bool ShouldProcessSetSuggestions(); |
+ virtual bool ShouldProcessSetVoiceSearchSupported(); |
virtual bool ShouldProcessShowInstantOverlay(); |
virtual bool ShouldProcessFocusOmnibox(); |
virtual bool ShouldProcessNavigateToURL(); |
@@ -263,9 +270,16 @@ class InstantPage : public content::WebContentsObserver { |
int error_code, |
const string16& error_description, |
content::RenderViewHost* render_view_host) OVERRIDE; |
+ // Overridden from SearchModelObserver: |
+ virtual void ModelChanged(const SearchModel::State& old_state, |
+ const SearchModel::State& new_state) OVERRIDE; |
+ |
+ // Helper to look up the SearchModel for this page. |
+ SearchModel* GetSearchModel(); |
void OnSetSuggestions(int page_id, |
const std::vector<InstantSuggestion>& suggestions); |
+ void OnSetVoiceSearchSupported(int page_id, bool supported); |
void OnInstantSupportDetermined(int page_id, bool supports_instant); |
void OnShowInstantOverlay(int page_id, |
int height, |