OLD | NEW |
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 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 COMPONENTS_OMNIBOX_BROWSER_PHYSICAL_WEB_PROVIDER_H_ | 5 #ifndef COMPONENTS_OMNIBOX_BROWSER_PHYSICAL_WEB_PROVIDER_H_ |
6 #define COMPONENTS_OMNIBOX_BROWSER_PHYSICAL_WEB_PROVIDER_H_ | 6 #define COMPONENTS_OMNIBOX_BROWSER_PHYSICAL_WEB_PROVIDER_H_ |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "components/bookmarks/browser/titled_url_match.h" |
9 #include "components/omnibox/browser/autocomplete_input.h" | 10 #include "components/omnibox/browser/autocomplete_input.h" |
10 #include "components/omnibox/browser/autocomplete_provider.h" | 11 #include "components/omnibox/browser/autocomplete_provider.h" |
11 | 12 |
12 class AutocompleteProviderClient; | 13 class AutocompleteProviderClient; |
13 class HistoryURLProvider; | 14 class HistoryURLProvider; |
14 | 15 |
15 namespace base { | 16 namespace base { |
16 class ListValue; | 17 class ListValue; |
17 } | 18 } |
18 | 19 |
(...skipping 17 matching lines...) Expand all Loading... |
36 // AutocompleteProvider: | 37 // AutocompleteProvider: |
37 void Start(const AutocompleteInput& input, bool minimal_changes) override; | 38 void Start(const AutocompleteInput& input, bool minimal_changes) override; |
38 void Stop(bool clear_cached_results, bool due_to_user_inactivity) override; | 39 void Stop(bool clear_cached_results, bool due_to_user_inactivity) override; |
39 void AddProviderInfo(ProvidersInfo* provider_info) const override; | 40 void AddProviderInfo(ProvidersInfo* provider_info) const override; |
40 | 41 |
41 private: | 42 private: |
42 PhysicalWebProvider(AutocompleteProviderClient* client, | 43 PhysicalWebProvider(AutocompleteProviderClient* client, |
43 HistoryURLProvider* history_url_provider); | 44 HistoryURLProvider* history_url_provider); |
44 ~PhysicalWebProvider() override; | 45 ~PhysicalWebProvider() override; |
45 | 46 |
46 // Adds a separate match item to |matches_| for each nearby URL in | 47 // When the user has focused the omnibox but not yet entered any text (i.e., |
47 // |metadata_list|, up to the maximum number of matches allowed. If the total | 48 // the Zero Suggest case), calling this method adds a separate match item to |
48 // number of nearby URLs exceeds this limit, one match is used for an overflow | 49 // |matches_| for each nearby URL in |metadata_list|, up to the maximum number |
49 // item. | 50 // of matches allowed. If the total number of nearby URLs exceeds this limit, |
50 void ConstructMatches(base::ListValue* metadata_list); | 51 // one match is used for an overflow item. |
| 52 void ConstructZeroSuggestMatches( |
| 53 std::unique_ptr<base::ListValue> metadata_list); |
| 54 |
| 55 // When the user has entered text into the omnibox (i.e., the Query Suggest |
| 56 // case), calling this method adds a separate match item to |matches_| for |
| 57 // each nearby URL in |metadata_list| that matches all of the query terms in |
| 58 // |input|, up to the maximum number of matches allowed. |
| 59 void ConstructQuerySuggestMatches( |
| 60 std::unique_ptr<base::ListValue> metadata_list, |
| 61 const AutocompleteInput& input); |
51 | 62 |
52 // Adds an overflow match item to |matches_| with a relevance score equal to | 63 // Adds an overflow match item to |matches_| with a relevance score equal to |
53 // |relevance| and a label indicating there are |additional_url_count| more | 64 // |relevance| and a label indicating there are |additional_url_count| more |
54 // nearby URLs. The page |title| of one of the additional nearby URLs will be | 65 // nearby URLs. The page |title| of one of the additional nearby URLs will be |
55 // included in the label, truncating if necessary. Selecting the overflow item | 66 // included in the label, truncating if necessary. Selecting the overflow item |
56 // navigates to the Physical Web WebUI, which displays the full list of nearby | 67 // navigates to the Physical Web WebUI, which displays the full list of nearby |
57 // URLs. | 68 // URLs. |
58 void AppendOverflowItem(int additional_url_count, | 69 void AppendOverflowItem(int additional_url_count, |
59 int relevance, | 70 int relevance, |
60 const base::string16& title); | 71 const base::string16& title); |
61 | 72 |
62 AutocompleteProviderClient* client_; | 73 AutocompleteProviderClient* client_; |
63 | 74 |
64 // Used for efficiency when creating the verbatim match. Can be null. | 75 // Used for efficiency when creating the verbatim match. Can be null. |
65 HistoryURLProvider* history_url_provider_; | 76 HistoryURLProvider* history_url_provider_; |
66 | 77 |
67 // The number of nearby Physical Web URLs when the provider last constructed | 78 // The number of nearby Physical Web URLs when the provider last constructed |
68 // matches. | 79 // matches. |
69 size_t nearby_url_count_; | 80 size_t nearby_url_count_; |
70 | 81 |
| 82 // If true, provide suggestions when the user has focused the omnibox but has |
| 83 // not typed anything. |
| 84 bool zero_suggest_enabled_; |
| 85 |
| 86 // If true, provide suggestions when the user has entered a query into the |
| 87 // omnibox. |
| 88 bool after_typing_enabled_; |
| 89 |
| 90 // The base relevance score for Physical Web URL suggestions when the user has |
| 91 // not typed anything into the omnibox. |
| 92 int zero_suggest_base_relevance_; |
| 93 |
| 94 // The base relevance score for Physical Web URL suggestions after the user |
| 95 // has typed a query into the omnibox. |
| 96 int after_typing_base_relevance_; |
| 97 |
| 98 // Set to true if at least one suggestion was created the last time the |
| 99 // provider was started, even if the suggestion could not be displayed due to |
| 100 // a field trial. |
| 101 bool had_physical_web_suggestions_; |
| 102 |
| 103 // Set to true if at least one suggestion was created since the last time the |
| 104 // omnibox was focused, even if the suggestion could not be displayed due to |
| 105 // a field trial. |
| 106 bool had_physical_web_suggestions_at_focus_or_later_; |
| 107 |
71 DISALLOW_COPY_AND_ASSIGN(PhysicalWebProvider); | 108 DISALLOW_COPY_AND_ASSIGN(PhysicalWebProvider); |
72 }; | 109 }; |
73 | 110 |
74 #endif // COMPONENTS_OMNIBOX_BROWSER_PHYSICAL_WEB_PROVIDER_H_ | 111 #endif // COMPONENTS_OMNIBOX_BROWSER_PHYSICAL_WEB_PROVIDER_H_ |
OLD | NEW |