Index: chrome/browser/history/history_types.h |
=================================================================== |
--- chrome/browser/history/history_types.h (revision 56942) |
+++ chrome/browser/history/history_types.h (working copy) |
@@ -540,6 +540,80 @@ |
typedef std::vector<MostVisitedURL> MostVisitedURLList; |
+// Used for intermediate history result operations. |
+struct HistoryMatch { |
+ // Required for STL, we don't use this directly. |
+ HistoryMatch() |
+ : url_info(), |
+ input_location(std::wstring::npos), |
+ match_in_scheme(false), |
+ innermost_match(true) { |
+ } |
+ |
+ HistoryMatch(const URLRow& url_info, |
+ size_t input_location, |
+ bool match_in_scheme, |
+ bool innermost_match) |
+ : url_info(url_info), |
+ input_location(input_location), |
+ match_in_scheme(match_in_scheme), |
+ innermost_match(innermost_match) { |
+ } |
+ |
+ bool operator==(const GURL& url) const { |
+ return url_info.url() == url; |
+ } |
+ |
+ URLRow url_info; |
+ |
+ // The offset of the user's input within the URL. |
+ size_t input_location; |
+ |
+ // Whether this is a match in the scheme. This determines whether we'll go |
+ // ahead and show a scheme on the URL even if the user didn't type one. |
+ // If our best match was in the scheme, not showing the scheme is both |
+ // confusing and, for inline autocomplete of the fill_into_edit, dangerous. |
+ // (If the user types "h" and we match "http://foo/", we need to inline |
+ // autocomplete that, not "foo/", which won't show anything at all, and |
+ // will mislead the user into thinking the What You Typed match is what's |
+ // selected.) |
+ bool match_in_scheme; |
+ |
+ // A match after any scheme/"www.", if the user input could match at both |
+ // locations. If the user types "w", an innermost match ("website.com") is |
+ // better than a non-innermost match ("www.google.com"). If the user types |
+ // "x", no scheme in our prefix list (or "www.") begins with x, so all |
+ // matches are, vacuously, "innermost matches". |
+ bool innermost_match; |
+}; |
+typedef std::deque<HistoryMatch> HistoryMatches; |
+ |
+struct Prefix { |
+ Prefix(std::wstring const& prefix, int num_components) |
+ : prefix(prefix), |
+ num_components(num_components) {} |
+ |
+ std::wstring prefix; |
+ |
+ // The number of "components" in the prefix. The scheme is a component, |
+ // and the initial "www." or "ftp." is a component. So "http://foo.com" |
+ // and "www.bar.com" each have one component, "ftp://ftp.ftp.com" has two, |
+ // and "mysite.com" has none. This is used to tell whether the user's |
+ // input is an innermost match or not. See comments in HistoryMatch. |
+ int num_components; |
+}; |
+typedef std::vector<Prefix> Prefixes; |
+ |
+// Constants which specify, when considered altogether, 'significant' |
+// history items. These are used to filter out insignificant items |
+// for consideration as autocomplete candidates. |
+const int kLowQualityMatchTypedLimit = 1; |
+const int kLowQualityMatchVisitLimit = 3; |
+const int kLowQualityMatchAgeLimitInDays = 3; |
+ |
+// Returns the date threshold for considering an history item as significant. |
+base::Time AutocompleteAgeThreshold(); |
+ |
} // namespace history |
#endif // CHROME_BROWSER_HISTORY_HISTORY_TYPES_H_ |
Property changes on: chrome/browser/history/history_types.h |
___________________________________________________________________ |
Deleted: svn:mergeinfo |