Index: chrome/browser/autocomplete/history_provider_util.h |
diff --git a/chrome/browser/autocomplete/history_provider_util.h b/chrome/browser/autocomplete/history_provider_util.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5f729832e7e5845fb160432a2113ad5539b3a4f4 |
--- /dev/null |
+++ b/chrome/browser/autocomplete/history_provider_util.h |
@@ -0,0 +1,80 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_AUTOCOMPLETE_HISTORY_PROVIDER_UTIL_H_ |
+#define CHROME_BROWSER_AUTOCOMPLETE_HISTORY_PROVIDER_UTIL_H_ |
+#pragma once |
+ |
+#include <deque> |
+#include <vector> |
+ |
+#include "chrome/browser/history/history_types.h" |
+ |
+namespace history { |
+ |
+// Constants which specify, when considered altogether, 'significant' |
+// history items. These are used to filter out insignificant items |
+// for consideration as autocomplete candidates. |
+extern const int kLowQualityMatchTypedLimit; |
+extern const int kLowQualityMatchVisitLimit; |
+extern const int kLowQualityMatchAgeLimitInDays; |
+ |
+// Used for intermediate history result operations. |
+struct HistoryMatch { |
+ // Required for STL, we don't use this directly. |
+ HistoryMatch(); |
+ |
+ HistoryMatch(const URLRow& url_info, |
+ size_t input_location, |
+ bool match_in_scheme, |
+ bool innermost_match); |
+ |
+ bool operator==(const GURL& url) const; |
+ |
+ 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(const std::wstring& 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; |
+ |
+// Returns the date threshold for considering an history item as significant. |
+base::Time AutocompleteAgeThreshold(); |
+ |
+} |
+ |
+#endif // CHROME_BROWSER_AUTOCOMPLETE_HISTORY_PROVIDER_UTIL_H_ |