1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_MATCH_H_
6 #define COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_MATCH_H_
10 #include "components/history/core/browser/url_row.h"
14 // Used for intermediate history result operations.
16 // Required for STL, we don't use this directly.
19 HistoryMatch(const URLRow& url_info,
20 size_t input_location,
22 bool innermost_match);
24 static bool EqualsGURL(const HistoryMatch& h, const GURL& url);
26 // Returns true if url in this HistoryMatch is just a host
27 // (e.g. "http://www.google.com/") and not some other subpage
28 // (e.g. "http://www.google.com/foo.html").
29 bool IsHostOnly() const;
33 // The offset of the user's input within the URL.
34 size_t input_location;
36 // Whether this is a match in the scheme. This determines whether we'll go
37 // ahead and show a scheme on the URL even if the user didn't type one.
38 // If our best match was in the scheme, not showing the scheme is both
39 // confusing and, for inline autocomplete of the fill_into_edit, dangerous.
40 // (If the user types "h" and we match "http://foo/", we need to inline
41 // autocomplete that, not "foo/", which won't show anything at all, and
42 // will mislead the user into thinking the What You Typed match is what's
46 // A match after any scheme/"www.", if the user input could match at both
47 // locations. If the user types "w", an innermost match ("website.com") is
48 // better than a non-innermost match ("www.google.com"). If the user types
49 // "x", no scheme in our prefix list (or "www.") begins with x, so all
50 // matches are, vacuously, "innermost matches".
53 typedef std::deque<HistoryMatch> HistoryMatches;
55 } // namespace history
57 #endif // COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_MATCH_H_