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

Unified Diff: chrome/browser/ui/search/search.h

Issue 12250033: Consolidate search terms extraction and Instant process determination. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed build/tests 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/search/search.h
diff --git a/chrome/browser/ui/search/search.h b/chrome/browser/ui/search/search.h
index 888e5dfde0023c76d03396d70a62b92aafc16633..9d0532b05e66eeceda80fc6da8d4e6bf188d4862 100644
--- a/chrome/browser/ui/search/search.h
+++ b/chrome/browser/ui/search/search.h
@@ -14,57 +14,79 @@
class GURL;
class Profile;
+class TemplateURL;
namespace content {
class NavigationEntry;
+class WebContents;
}
namespace chrome {
namespace search {
// The key used to store search terms data in the NavigationEntry to be later
-// displayed in the Omnibox. With the context of the user's exact query,
+// displayed in the omnibox. With the context of the user's exact query,
// InstantController sets the correct search terms to be displayed.
extern const char kInstantExtendedSearchTermsKey[];
+// The URL for the local omnibox popup (rendered in a WebContents).
+extern const char kLocalOmniboxPopupURL[];
+
+// The default value we should assign to the instant_extended.enabled pref.
+// As with other prefs, the default is used only when the user hasn't toggled
+// the pref explicitly.
enum InstantExtendedDefault {
- INSTANT_FORCE_ON, // Force the setting on if no other setting exists.
- INSTANT_USE_EXISTING, // Use same the value of the old instant.enabled pref.
- INSTANT_FORCE_OFF, // Force the setting off if no other setting exists.
+ INSTANT_DEFAULT_ON, // Default the pref to be enabled.
+ INSTANT_USE_EXISTING, // Use the current value of the instant.enabled pref.
+ INSTANT_DEFAULT_OFF, // Default the pref to be disabled.
};
// Returns an enum value indicating which mode to set the new
// instant_extended.enabled pref to by default.
InstantExtendedDefault GetInstantExtendedDefaultSetting();
-// Returns whether the Instant extended API is enabled for the given |profile|.
-// |profile| may not be NULL.
-bool IsInstantExtendedAPIEnabled(Profile* profile);
+// Returns whether the Instant Extended API is enabled in this profile.
+bool IsInstantExtendedAPIEnabled(const Profile* profile);
-// Returns the value to pass to the &espv cgi parameter when loading the
-// embedded search page from the user's default search provider. Will be
+// Returns the value to pass to the &espv CGI parameter when loading the
+// embedded search page from the user's default search provider. Will be
// 0 if the Instant Extended API is not enabled.
-uint64 EmbeddedSearchPageVersion(Profile* profile);
-
-// Force the instant extended API to be enabled for tests.
-void EnableInstantExtendedAPIForTesting();
+uint64 EmbeddedSearchPageVersion(const Profile* profile);
-// Returns whether query extraction is enabled. If
-// |IsInstantExtendedAPIEnabled()| and the profile is not off the record, then
-// this method will also return true.
-bool IsQueryExtractionEnabled(Profile* profile);
+// Returns whether query extraction is enabled.
+bool IsQueryExtractionEnabled(const Profile* profile);
-// Force query extraction to be enabled for tests.
-void EnableQueryExtractionForTesting();
-
-// Return the search terms attached to a specific NavigationEntry, or empty
-// string otherwise.
+// Returns the search terms attached to a specific NavigationEntry, or empty
+// string otherwise. Does not consider IsQueryExtractionEnabled(), so most
+// callers should use GetSearchTerms() below instead.
string16 GetSearchTermsFromNavigationEntry(
const content::NavigationEntry* entry);
-// Returns true if |url| has the same scheme, host, port and path as the
-// Instant URL set via --instant-url.
-bool IsForcedInstantURL(const GURL& url);
+// Returns search terms if this WebContents is a search results page. It looks
+// in the visible NavigationEntry first, to see if search terms have already
+// been extracted. Failing that, it tries to extract search terms from the URL.
+// Returns a blank string if search terms were not found, or if search terms
+// extraction is disabled for this WebContents or profile.
+string16 GetSearchTerms(const content::WebContents* contents);
+
+// Returns true if |url| should be rendered in the Instant renderer process.
+bool ShouldAssignURLToInstantRenderer(const GURL& url, Profile* profile);
+
+// -----------------------------------------------------
+// The following APIs are exposed for use in tests only.
+// -----------------------------------------------------
+
+// Forces the Instant Extended API to be enabled for tests.
+void EnableInstantExtendedAPIForTesting();
+
+// Forces query extraction to be enabled for tests.
+void EnableQueryExtractionForTesting();
+
+// Actually implements the logic for ShouldAssignURLToInstantRenderer().
+// Exposed for testing only.
+bool ShouldAssignURLToInstantRendererImpl(const GURL& url,
+ bool extended_api_enabled,
+ TemplateURL* template_url);
// Type for a collection of experiment configuration parameters.
typedef std::vector<std::pair<std::string, std::string> > FieldTrialFlags;
@@ -83,21 +105,22 @@ bool GetFieldTrialInfo(const std::string& group_name,
// Given a FieldTrialFlags object, returns the string value of the provided
// flag.
// Exposed for testing only.
-std::string GetStringValueForFlagWithDefault(
- const std::string& flag,
- const std::string& default_value,
- FieldTrialFlags& flags);
+std::string GetStringValueForFlagWithDefault(const std::string& flag,
+ const std::string& default_value,
+ const FieldTrialFlags& flags);
// Given a FieldTrialFlags object, returns the uint64 value of the provided
// flag.
// Exposed for testing only.
-uint64 GetUInt64ValueForFlagWithDefault(
- const std::string& flag, uint64 default_value, FieldTrialFlags& flags);
+uint64 GetUInt64ValueForFlagWithDefault(const std::string& flag,
+ uint64 default_value,
+ const FieldTrialFlags& flags);
// Given a FieldTrialFlags object, returns the bool value of the provided flag.
// Exposed for testing only.
-bool GetBoolValueForFlagWithDefault(
- const std::string& flag, bool default_value, FieldTrialFlags& flags);
+bool GetBoolValueForFlagWithDefault(const std::string& flag,
+ bool default_value,
+ const FieldTrialFlags& flags);
} // namespace search
} // namespace chrome

Powered by Google App Engine
This is Rietveld 408576698