diff options
author | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-20 23:32:47 +0000 |
---|---|---|
committer | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-20 23:32:47 +0000 |
commit | 6d87d61d30acf85de04e788187778f87bafcd818 (patch) | |
tree | 12e9ea962b57c84c83fdee6ea41afc8c7c5b8307 /chrome/browser/autocomplete/history_provider_util.h | |
parent | a4ae7db11300ea8d5a57367ae6a742474be2684e (diff) | |
download | chromium_src-6d87d61d30acf85de04e788187778f87bafcd818.zip chromium_src-6d87d61d30acf85de04e788187778f87bafcd818.tar.gz chromium_src-6d87d61d30acf85de04e788187778f87bafcd818.tar.bz2 |
History provider: style cleanup
BUG=none
TEST=it compiles
Review URL: http://codereview.chromium.org/3177020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56939 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autocomplete/history_provider_util.h')
-rw-r--r-- | chrome/browser/autocomplete/history_provider_util.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/chrome/browser/autocomplete/history_provider_util.h b/chrome/browser/autocomplete/history_provider_util.h new file mode 100644 index 0000000..5f72983 --- /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_ |