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

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

Issue 7210020: Added prerendering to omnibox. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase again Created 9 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #pragma once 7 #pragma once
8 8
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 virtual void CommitInstantLoader(InstantLoader* loader) OVERRIDE; 186 virtual void CommitInstantLoader(InstantLoader* loader) OVERRIDE;
187 virtual void InstantLoaderDoesntSupportInstant( 187 virtual void InstantLoaderDoesntSupportInstant(
188 InstantLoader* loader) OVERRIDE; 188 InstantLoader* loader) OVERRIDE;
189 virtual void AddToBlacklist(InstantLoader* loader, 189 virtual void AddToBlacklist(InstantLoader* loader,
190 const GURL& url) OVERRIDE; 190 const GURL& url) OVERRIDE;
191 virtual void SwappedTabContents(InstantLoader* loader) OVERRIDE; 191 virtual void SwappedTabContents(InstantLoader* loader) OVERRIDE;
192 192
193 private: 193 private:
194 friend class InstantTest; 194 friend class InstantTest;
195 195
196 enum PreviewCondition {
197 PREVIEW_CONDITION_SUCCESS,
198 PREVIEW_CONDITION_INVALID_TEMPLATE_URL,
199 PREVIEW_CONDITION_JAVASCRIPT_SCHEME,
200 PREVIEW_CONDITION_EXTENSION_KEYWORD,
201 PREVIEW_CONDITION_BLACKLISTED,
202 PREVIEW_CONDITION_INSTANT_SEARCH_ONLY,
203 };
204
196 typedef std::set<std::string> HostBlacklist; 205 typedef std::set<std::string> HostBlacklist;
197 206
198 // Updates |displayable_loader_| and if necessary notifies the delegate. 207 // Updates |displayable_loader_| and if necessary notifies the delegate.
199 void UpdateDisplayableLoader(); 208 void UpdateDisplayableLoader();
200 209
201 // Returns the TabContents of the pending loader (or NULL). This is only used 210 // Returns the TabContents of the pending loader (or NULL). This is only used
202 // for testing. 211 // for testing.
203 TabContentsWrapper* GetPendingPreviewContents(); 212 TabContentsWrapper* GetPendingPreviewContents();
204 213
205 // Returns true if we should update immediately. 214 // Returns true if we should update immediately.
(...skipping 15 matching lines...) Expand all
221 230
222 // Updates InstantLoaderManager and its current InstantLoader. This is invoked 231 // Updates InstantLoaderManager and its current InstantLoader. This is invoked
223 // internally from Update. 232 // internally from Update.
224 void UpdateLoader(const TemplateURL* template_url, 233 void UpdateLoader(const TemplateURL* template_url,
225 const GURL& url, 234 const GURL& url,
226 PageTransition::Type transition_type, 235 PageTransition::Type transition_type,
227 const string16& user_text, 236 const string16& user_text,
228 bool verbatim, 237 bool verbatim,
229 string16* suggested_text); 238 string16* suggested_text);
230 239
231 // Returns true if a preview should be shown for |match|. If |match| has 240 // Returns a PreviewCondition indicating why we might decide not to show a
232 // a TemplateURL that supports the instant API it is set in |template_url|. 241 // preview for |match|. If |match| has a TemplateURL that supports the instant
233 bool ShouldShowPreviewFor(const AutocompleteMatch& match, 242 // API it is set in |template_url|.
234 const TemplateURL** template_url); 243 PreviewCondition GetPreviewConditionFor(const AutocompleteMatch& match,
244 const TemplateURL** template_url);
235 245
236 // Marks the specified search engine id as not supporting instant. 246 // Marks the specified search engine id as not supporting instant.
237 void BlacklistFromInstant(TemplateURLID id); 247 void BlacklistFromInstant(TemplateURLID id);
238 248
239 // Returns true if the specified id has been blacklisted from supporting 249 // Returns true if the specified id has been blacklisted from supporting
240 // instant. 250 // instant.
241 bool IsBlacklistedFromInstant(TemplateURLID id); 251 bool IsBlacklistedFromInstant(TemplateURLID id);
242 252
243 // Clears the set of search engines blacklisted. 253 // Clears the set of search engines blacklisted.
244 void ClearBlacklist(); 254 void ClearBlacklist();
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 ScopedVector<InstantLoader> loaders_to_destroy_; 311 ScopedVector<InstantLoader> loaders_to_destroy_;
302 312
303 // The set of hosts that we don't use instant with. This is shared across all 313 // The set of hosts that we don't use instant with. This is shared across all
304 // instances and only maintained for the current session. 314 // instances and only maintained for the current session.
305 static HostBlacklist* host_blacklist_; 315 static HostBlacklist* host_blacklist_;
306 316
307 DISALLOW_COPY_AND_ASSIGN(InstantController); 317 DISALLOW_COPY_AND_ASSIGN(InstantController);
308 }; 318 };
309 319
310 #endif // CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_ 320 #endif // CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit.cc ('k') | chrome/browser/instant/instant_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698