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