Chromium Code Reviews| Index: chrome/browser/ui/search/search_tab_helper.cc |
| diff --git a/chrome/browser/ui/search/search_tab_helper.cc b/chrome/browser/ui/search/search_tab_helper.cc |
| index 5086f81134839ebe362d9dfa161dbb4a6af203d6..69addba6fff713b7faaead1f60bdad7bac2ca3ed 100644 |
| --- a/chrome/browser/ui/search/search_tab_helper.cc |
| +++ b/chrome/browser/ui/search/search_tab_helper.cc |
| @@ -33,8 +33,7 @@ bool IsSearchResults(const content::WebContents* contents) { |
| } // namespace |
| SearchTabHelper::SearchTabHelper(content::WebContents* web_contents) |
| - : WebContentsObserver(web_contents), |
| - is_search_enabled_(chrome::IsInstantExtendedAPIEnabled()), |
| + : is_search_enabled_(chrome::IsInstantExtendedAPIEnabled()), |
| user_input_in_progress_(false), |
| popup_is_open_(false), |
| user_text_is_empty_(true), |
| @@ -42,6 +41,8 @@ SearchTabHelper::SearchTabHelper(content::WebContents* web_contents) |
| if (!is_search_enabled_) |
| return; |
| + WebContentsObserver::Observe(web_contents); |
|
samarth
2013/05/08 02:38:48
Ah so I made this change so that we only receive I
kmadhusu
2013/05/09 02:40:40
Reverted this change.
|
| + |
| registrar_.Add( |
| this, |
| content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| @@ -90,11 +91,22 @@ bool SearchTabHelper::OnMessageReceived(const IPC::Message& message) { |
| OnSearchBoxShowBars) |
| IPC_MESSAGE_HANDLER(ChromeViewHostMsg_SearchBoxHideBars, |
| OnSearchBoxHideBars) |
| + IPC_MESSAGE_HANDLER(ChromeViewHostMsg_InstantSupportDetermined, |
| + OnInstantSupportDetermined) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| return handled; |
| } |
| +void SearchTabHelper::DidFinishLoad( |
| + int64 /* frame_id */, |
| + const GURL& /* validated_url */, |
| + bool is_main_frame, |
| + content::RenderViewHost* /* render_view_host */) { |
| + if (is_main_frame) |
| + DetermineIfPageSupportsInstant(); |
| +} |
| + |
| void SearchTabHelper::UpdateMode() { |
| SearchMode::Type type = SearchMode::MODE_DEFAULT; |
| SearchMode::Origin origin = SearchMode::ORIGIN_DEFAULT; |
| @@ -123,6 +135,10 @@ void SearchTabHelper::UpdateMode() { |
| } |
| } |
| +void SearchTabHelper::DetermineIfPageSupportsInstant() { |
| + Send(new ChromeViewMsg_DetermineIfPageSupportsInstant(routing_id())); |
| +} |
| + |
| void SearchTabHelper::OnSearchBoxShowBars(int page_id) { |
| if (web_contents()->IsActiveEntry(page_id)) |
| model_.SetTopBarsVisible(true); |
| @@ -134,3 +150,9 @@ void SearchTabHelper::OnSearchBoxHideBars(int page_id) { |
| Send(new ChromeViewMsg_SearchBoxBarsHidden(routing_id())); |
| } |
| } |
| + |
| +void SearchTabHelper::OnInstantSupportDetermined(int page_id, |
| + bool supports_instant) { |
| + if (web_contents()->IsActiveEntry(page_id)) |
| + model_.SetSupportsInstant(supports_instant); |
| +} |