Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(538)

Side by Side Diff: chrome/browser/instant/instant_controller.h

Issue 11833043: Instant Extended: Fallback to local preview if the remote instant page is not ready on user input. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@refactor
Patch Set: Addressing sreeram's comments. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/instant/instant_client.cc ('k') | chrome/browser/instant/instant_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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_INSTANT_INSTANT_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_
6 #define CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_ 6 #define CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 // Invoked by InstantLoader when the preview gains focus, usually due to the 169 // Invoked by InstantLoader when the preview gains focus, usually due to the
170 // user clicking on it. 170 // user clicking on it.
171 void InstantLoaderContentsFocused(); 171 void InstantLoaderContentsFocused();
172 172
173 // Invoked by the InstantLoader when its RenderView crashes. 173 // Invoked by the InstantLoader when its RenderView crashes.
174 void InstantLoaderRenderViewGone(); 174 void InstantLoaderRenderViewGone();
175 175
176 // Invoked by InstantLoader when the instant page is about to navigate. 176 // Invoked by InstantLoader when the instant page is about to navigate.
177 void InstantLoaderAboutToNavigateMainFrame(const GURL& url); 177 void InstantLoaderAboutToNavigateMainFrame(const GURL& url);
178 178
179 // Invoked by InstantLoader when it's underlying RenderView is created.
180 // TODO(shishir): We assume that the WebContent's current RenderViewHost is
181 // the RenderViewHost being created which is not always true. Fix this.
182 void InstantLoaderRenderViewCreated();
183
179 // Invoked by the InstantLoader when the instant page wants to navigate to 184 // Invoked by the InstantLoader when the instant page wants to navigate to
180 // the speicfied URL. 185 // the speicfied URL.
181 void NavigateToURL(const GURL& url, content::PageTransition transition); 186 void NavigateToURL(const GURL& url, content::PageTransition transition);
182 187
183 // Adds a new event to |debug_events_| and also DVLOG's it. Ensures that 188 // Adds a new event to |debug_events_| and also DVLOG's it. Ensures that
184 // |debug_events_| doesn't get too large. 189 // |debug_events_| doesn't get too large.
185 void LogDebugEvent(const std::string& info) const; 190 void LogDebugEvent(const std::string& info) const;
186 191
187 // See comments for |debug_events_| below. 192 // See comments for |debug_events_| below.
188 const std::list<std::pair<int64, std::string> >& debug_events() { 193 const std::list<std::pair<int64, std::string> >& debug_events() {
(...skipping 21 matching lines...) Expand all
210 // ensure that the |loader_| is not already on the stack since it is deleted 215 // ensure that the |loader_| is not already on the stack since it is deleted
211 // in this call. 216 // in this call.
212 void CreateLoader(const std::string& instant_url, 217 void CreateLoader(const std::string& instant_url,
213 const content::WebContents* active_tab); 218 const content::WebContents* active_tab);
214 219
215 // Called when the |loader_| might be stale. If it's actually stale, and the 220 // Called when the |loader_| might be stale. If it's actually stale, and the
216 // omnibox doesn't have focus, and the preview isn't showing, the |loader_| is 221 // omnibox doesn't have focus, and the preview isn't showing, the |loader_| is
217 // deleted and recreated. Else the refresh is skipped. 222 // deleted and recreated. Else the refresh is skipped.
218 void OnStaleLoader(); 223 void OnStaleLoader();
219 224
225 // If the |loader_| being used is in fallback mode, it will be switched back
226 // to the remote loader if the loader is not showing and the omnibox does not
227 // have focus.
228 void MaybeSwitchToRemoteLoader();
229
220 // If the active tab is an Instant search results page, sets |instant_tab_| to 230 // If the active tab is an Instant search results page, sets |instant_tab_| to
221 // point to it. Else, deletes any existing |instant_tab_|. 231 // point to it. Else, deletes any existing |instant_tab_|.
222 void ResetInstantTab(); 232 void ResetInstantTab();
223 233
224 // Hide the preview. Also sends an onchange event (with blank query) to the 234 // Hide the preview. Also sends an onchange event (with blank query) to the
225 // preview, telling it to clear out results for any old queries. 235 // preview, telling it to clear out results for any old queries.
226 void HideLoader(); 236 void HideLoader();
227 237
228 // Like HideLoader(), but doesn't call OnStaleLoader(). Use HideLoader() 238 // Like HideLoader(), but doesn't call OnStaleLoader(). Use HideLoader()
229 // unless you are going to call loader_.reset() yourself subsequently. 239 // unless you are going to call loader_.reset() yourself subsequently.
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 // MODE_SEARCH_SUGGESTIONS, except in those cases where this is false. 353 // MODE_SEARCH_SUGGESTIONS, except in those cases where this is false.
344 bool allow_preview_to_show_search_suggestions_; 354 bool allow_preview_to_show_search_suggestions_;
345 355
346 // List of events and their timestamps, useful in debugging Instant behaviour. 356 // List of events and their timestamps, useful in debugging Instant behaviour.
347 mutable std::list<std::pair<int64, std::string> > debug_events_; 357 mutable std::list<std::pair<int64, std::string> > debug_events_;
348 358
349 DISALLOW_COPY_AND_ASSIGN(InstantController); 359 DISALLOW_COPY_AND_ASSIGN(InstantController);
350 }; 360 };
351 361
352 #endif // CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_ 362 #endif // CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/instant/instant_client.cc ('k') | chrome/browser/instant/instant_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698