OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_UI_SEARCH_INSTANT_PAGE_H_ | 5 #ifndef CHROME_BROWSER_UI_SEARCH_INSTANT_PAGE_H_ |
6 #define CHROME_BROWSER_UI_SEARCH_INSTANT_PAGE_H_ | 6 #define CHROME_BROWSER_UI_SEARCH_INSTANT_PAGE_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/compiler_specific.h" | 11 #include "base/compiler_specific.h" |
12 #include "base/string16.h" | 12 #include "base/string16.h" |
| 13 #include "chrome/browser/ui/search/search_model_observer.h" |
13 #include "chrome/common/instant_types.h" | 14 #include "chrome/common/instant_types.h" |
14 #include "chrome/common/omnibox_focus_state.h" | 15 #include "chrome/common/omnibox_focus_state.h" |
15 #include "content/public/browser/web_contents_observer.h" | 16 #include "content/public/browser/web_contents_observer.h" |
16 #include "content/public/common/page_transition_types.h" | 17 #include "content/public/common/page_transition_types.h" |
17 | 18 |
18 class GURL; | 19 class GURL; |
19 | 20 |
20 namespace content { | 21 namespace content { |
21 class WebContents; | 22 class WebContents; |
22 } | 23 } |
23 | 24 |
24 namespace gfx { | 25 namespace gfx { |
25 class Rect; | 26 class Rect; |
26 } | 27 } |
27 | 28 |
28 // InstantPage is used to exchange messages with a page that implements the | 29 // InstantPage is used to exchange messages with a page that implements the |
29 // Instant/Embedded Search API (http://dev.chromium.org/embeddedsearch). | 30 // Instant/Embedded Search API (http://dev.chromium.org/embeddedsearch). |
30 // InstantPage is not used directly but via one of its derived classes: | 31 // InstantPage is not used directly but via one of its derived classes: |
31 // InstantOverlay, InstantNTP and InstantTab. | 32 // InstantOverlay, InstantNTP and InstantTab. |
32 class InstantPage : public content::WebContentsObserver { | 33 class InstantPage : public content::WebContentsObserver, |
| 34 public SearchModelObserver { |
33 public: | 35 public: |
34 // InstantPage calls its delegate in response to messages received from the | 36 // InstantPage calls its delegate in response to messages received from the |
35 // page. Each method is called with the |contents| corresponding to the page | 37 // page. Each method is called with the |contents| corresponding to the page |
36 // we are observing. | 38 // we are observing. |
37 class Delegate { | 39 class Delegate { |
38 public: | 40 public: |
39 // Called when a RenderView is created, so that state can be initialized. | 41 // Called when a RenderView is created, so that state can be initialized. |
40 virtual void InstantPageRenderViewCreated( | 42 virtual void InstantPageRenderViewCreated( |
41 const content::WebContents* contents) = 0; | 43 const content::WebContents* contents) = 0; |
42 | 44 |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 content::RenderViewHost* render_view_host) OVERRIDE; | 211 content::RenderViewHost* render_view_host) OVERRIDE; |
210 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; | 212 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
211 virtual void RenderViewGone(base::TerminationStatus status) OVERRIDE; | 213 virtual void RenderViewGone(base::TerminationStatus status) OVERRIDE; |
212 virtual void DidCommitProvisionalLoadForFrame( | 214 virtual void DidCommitProvisionalLoadForFrame( |
213 int64 frame_id, | 215 int64 frame_id, |
214 bool is_main_frame, | 216 bool is_main_frame, |
215 const GURL& url, | 217 const GURL& url, |
216 content::PageTransition transition_type, | 218 content::PageTransition transition_type, |
217 content::RenderViewHost* render_view_host) OVERRIDE; | 219 content::RenderViewHost* render_view_host) OVERRIDE; |
218 | 220 |
| 221 // Overridden from SearchModelObserver: |
| 222 virtual void ModelChanged(const SearchModel::State& old_state, |
| 223 const SearchModel::State& new_state) OVERRIDE; |
| 224 |
| 225 // Helper to look up the SearchModel for this page. |
| 226 SearchModel* GetSearchModel(); |
| 227 |
| 228 // Update the status of Instant support. |
| 229 void SetSupportsInstant(bool supports_instant); |
| 230 |
219 void OnSetSuggestions(int page_id, | 231 void OnSetSuggestions(int page_id, |
220 const std::vector<InstantSuggestion>& suggestions); | 232 const std::vector<InstantSuggestion>& suggestions); |
221 void OnInstantSupportDetermined(int page_id, bool supports_instant); | 233 void OnInstantSupportDetermined(int page_id, bool supports_instant); |
222 void OnShowInstantOverlay(int page_id, | 234 void OnShowInstantOverlay(int page_id, |
223 int height, | 235 int height, |
224 InstantSizeUnits units); | 236 InstantSizeUnits units); |
225 void OnFocusOmnibox(int page_id, OmniboxFocusState state); | 237 void OnFocusOmnibox(int page_id, OmniboxFocusState state); |
226 void OnSearchBoxNavigate(int page_id, | 238 void OnSearchBoxNavigate(int page_id, |
227 const GURL& url, | 239 const GURL& url, |
228 content::PageTransition transition, | 240 content::PageTransition transition, |
229 WindowOpenDisposition disposition); | 241 WindowOpenDisposition disposition); |
230 void OnDeleteMostVisitedItem(InstantRestrictedID most_visited_item_id); | 242 void OnDeleteMostVisitedItem(InstantRestrictedID most_visited_item_id); |
231 void OnUndoMostVisitedDeletion(InstantRestrictedID most_visited_item_id); | 243 void OnUndoMostVisitedDeletion(InstantRestrictedID most_visited_item_id); |
232 void OnUndoAllMostVisitedDeletions(); | 244 void OnUndoAllMostVisitedDeletions(); |
233 | 245 |
234 Delegate* const delegate_; | 246 Delegate* const delegate_; |
235 const std::string instant_url_; | 247 const std::string instant_url_; |
| 248 const bool extended_enabled_; |
236 bool supports_instant_; | 249 bool supports_instant_; |
237 | 250 |
238 DISALLOW_COPY_AND_ASSIGN(InstantPage); | 251 DISALLOW_COPY_AND_ASSIGN(InstantPage); |
239 }; | 252 }; |
240 | 253 |
241 #endif // CHROME_BROWSER_UI_SEARCH_INSTANT_PAGE_H_ | 254 #endif // CHROME_BROWSER_UI_SEARCH_INSTANT_PAGE_H_ |
OLD | NEW |