Index: trunk/src/chrome/browser/ui/search/instant_page.h |
=================================================================== |
--- trunk/src/chrome/browser/ui/search/instant_page.h (revision 204944) |
+++ trunk/src/chrome/browser/ui/search/instant_page.h (working copy) |
@@ -11,7 +11,6 @@ |
#include "base/compiler_specific.h" |
#include "base/gtest_prod_util.h" |
#include "base/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" |
@@ -33,8 +32,7 @@ |
// 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, |
- public SearchModelObserver { |
+class InstantPage : public content::WebContentsObserver { |
public: |
// InstantPage calls its delegate in response to messages received from the |
// page. Each method is called with the |contents| corresponding to the page |
@@ -121,6 +119,12 @@ |
// support suddenly). |
virtual bool supports_instant() const; |
+ // True if Instant support has been tested and determined for this page at |
+ // least once. Note that Instant support may change in the future. |
+ bool instant_support_determined() const { |
+ return instant_support_determined_; |
+ } |
+ |
// Returns true if the page is the local NTP (i.e. its URL is |
// chrome::kChromeSearchLocalNTPURL). |
virtual bool IsLocal() const; |
@@ -155,6 +159,10 @@ |
// Tells the page about the font information. |
void InitializeFonts(); |
+ // Tells the renderer to determine if the page supports the Instant API, which |
+ // results in a call to InstantSupportDetermined() when the reply is received. |
+ void DetermineIfPageSupportsInstant(); |
+ |
// Tells the page about the available autocomplete results. |
void SendAutocompleteResults( |
const std::vector<InstantAutocompleteResult>& results); |
@@ -222,6 +230,11 @@ |
// Overridden from content::WebContentsObserver: |
virtual void RenderViewCreated( |
content::RenderViewHost* render_view_host) OVERRIDE; |
+ virtual void DidFinishLoad( |
+ int64 frame_id, |
+ const GURL& validated_url, |
+ bool is_main_frame, |
+ content::RenderViewHost* render_view_host) OVERRIDE; |
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
virtual void RenderViewGone(base::TerminationStatus status) OVERRIDE; |
virtual void DidCommitProvisionalLoadForFrame( |
@@ -241,18 +254,9 @@ |
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(); |
- |
- // Update the status of Instant support. |
- void SetSupportsInstant(bool supports_instant); |
- |
void OnSetSuggestions(int page_id, |
const std::vector<InstantSuggestion>& suggestions); |
+ void OnInstantSupportDetermined(int page_id, bool supports_instant); |
void OnShowInstantOverlay(int page_id, |
int height, |
InstantSizeUnits units); |
@@ -268,10 +272,8 @@ |
Delegate* const delegate_; |
const std::string instant_url_; |
- |
- // TODO(kmadhusu): Remove |supports_instant_| from here and get the details |
- // from SearchModel. Refer to crbug.com/246323 for more details. |
bool supports_instant_; |
+ bool instant_support_determined_; |
DISALLOW_COPY_AND_ASSIGN(InstantPage); |
}; |