Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Side by Side Diff: chrome/browser/autocomplete/zero_suggest_provider.cc

Issue 1185723002: Prepare HistoryProvider for componentization (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Response to review Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "chrome/browser/autocomplete/zero_suggest_provider.h" 5 #include "chrome/browser/autocomplete/zero_suggest_provider.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/i18n/case_conversion.h" 8 #include "base/i18n/case_conversion.h"
9 #include "base/json/json_string_value_serializer.h" 9 #include "base/json/json_string_value_serializer.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 // The maximum relevance of the top match from this provider. 69 // The maximum relevance of the top match from this provider.
70 const int kDefaultVerbatimZeroSuggestRelevance = 1300; 70 const int kDefaultVerbatimZeroSuggestRelevance = 1300;
71 71
72 // Relevance value to use if it was not set explicitly by the server. 72 // Relevance value to use if it was not set explicitly by the server.
73 const int kDefaultZeroSuggestRelevance = 100; 73 const int kDefaultZeroSuggestRelevance = 100;
74 74
75 } // namespace 75 } // namespace
76 76
77 // static 77 // static
78 ZeroSuggestProvider* ZeroSuggestProvider::Create( 78 ZeroSuggestProvider* ZeroSuggestProvider::Create(
79 AutocompleteProviderClient* client,
79 AutocompleteProviderListener* listener, 80 AutocompleteProviderListener* listener,
80 TemplateURLService* template_url_service, 81 TemplateURLService* template_url_service,
81 Profile* profile) { 82 Profile* profile) {
82 return new ZeroSuggestProvider(listener, template_url_service, profile); 83 return new ZeroSuggestProvider(client, listener, template_url_service,
84 profile);
83 } 85 }
84 86
85 // static 87 // static
86 void ZeroSuggestProvider::RegisterProfilePrefs( 88 void ZeroSuggestProvider::RegisterProfilePrefs(
87 user_prefs::PrefRegistrySyncable* registry) { 89 user_prefs::PrefRegistrySyncable* registry) {
88 registry->RegisterStringPref(prefs::kZeroSuggestCachedResults, std::string()); 90 registry->RegisterStringPref(prefs::kZeroSuggestCachedResults, std::string());
89 } 91 }
90 92
91 void ZeroSuggestProvider::Start(const AutocompleteInput& input, 93 void ZeroSuggestProvider::Start(const AutocompleteInput& input,
92 bool minimal_changes, 94 bool minimal_changes,
(...skipping 21 matching lines...) Expand all
114 TemplateURLRef::SearchTermsArgs search_term_args(prefix); 116 TemplateURLRef::SearchTermsArgs search_term_args(prefix);
115 GURL suggest_url(default_provider->suggestions_url_ref().ReplaceSearchTerms( 117 GURL suggest_url(default_provider->suggestions_url_ref().ReplaceSearchTerms(
116 search_term_args, template_url_service_->search_terms_data())); 118 search_term_args, template_url_service_->search_terms_data()));
117 if (!suggest_url.is_valid()) 119 if (!suggest_url.is_valid())
118 return; 120 return;
119 121
120 // No need to send the current page URL in personalized suggest or 122 // No need to send the current page URL in personalized suggest or
121 // most visited field trials. 123 // most visited field trials.
122 if (CanSendURL(input.current_url(), suggest_url, default_provider, 124 if (CanSendURL(input.current_url(), suggest_url, default_provider,
123 current_page_classification_, 125 current_page_classification_,
124 template_url_service_->search_terms_data(), client_.get()) && 126 template_url_service_->search_terms_data(), client_) &&
125 !OmniboxFieldTrial::InZeroSuggestPersonalizedFieldTrial() && 127 !OmniboxFieldTrial::InZeroSuggestPersonalizedFieldTrial() &&
126 !OmniboxFieldTrial::InZeroSuggestMostVisitedFieldTrial()) { 128 !OmniboxFieldTrial::InZeroSuggestMostVisitedFieldTrial()) {
127 // Update suggest_url to include the current_page_url. 129 // Update suggest_url to include the current_page_url.
128 search_term_args.current_page_url = current_query_; 130 search_term_args.current_page_url = current_query_;
129 suggest_url = GURL(default_provider->suggestions_url_ref(). 131 suggest_url = GURL(default_provider->suggestions_url_ref().
130 ReplaceSearchTerms( 132 ReplaceSearchTerms(
131 search_term_args, 133 search_term_args,
132 template_url_service_->search_terms_data())); 134 template_url_service_->search_terms_data()));
133 } else if (!ShouldShowNonContextualZeroSuggest(suggest_url, 135 } else if (!ShouldShowNonContextualZeroSuggest(suggest_url,
134 input.current_url())) { 136 input.current_url())) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 184 }
183 185
184 void ZeroSuggestProvider::ResetSession() { 186 void ZeroSuggestProvider::ResetSession() {
185 // The user has started editing in the omnibox, so leave 187 // The user has started editing in the omnibox, so leave
186 // |field_trial_triggered_in_session_| unchanged and set 188 // |field_trial_triggered_in_session_| unchanged and set
187 // |field_trial_triggered_| to false since zero suggest is inactive now. 189 // |field_trial_triggered_| to false since zero suggest is inactive now.
188 field_trial_triggered_ = false; 190 field_trial_triggered_ = false;
189 } 191 }
190 192
191 ZeroSuggestProvider::ZeroSuggestProvider( 193 ZeroSuggestProvider::ZeroSuggestProvider(
192 AutocompleteProviderListener* listener, 194 AutocompleteProviderClient* client,
193 TemplateURLService* template_url_service, 195
194 Profile* profile) 196 AutocompleteProviderListener* listener,
195 : BaseSearchProvider(template_url_service, 197 TemplateURLService* template_url_service,
196 scoped_ptr<AutocompleteProviderClient>( 198 Profile* profile)
197 new ChromeAutocompleteProviderClient(profile)), 199 : BaseSearchProvider(AutocompleteProvider::TYPE_ZERO_SUGGEST,
198 AutocompleteProvider::TYPE_ZERO_SUGGEST), 200 client,
201 template_url_service),
199 listener_(listener), 202 listener_(listener),
200 profile_(profile), 203 profile_(profile),
201 results_from_cache_(false), 204 results_from_cache_(false),
202 waiting_for_most_visited_urls_request_(false), 205 waiting_for_most_visited_urls_request_(false),
203 weak_ptr_factory_(this) { 206 weak_ptr_factory_(this) {
204 } 207 }
205 208
206 ZeroSuggestProvider::~ZeroSuggestProvider() { 209 ZeroSuggestProvider::~ZeroSuggestProvider() {
207 } 210 }
208 211
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 return results_.verbatim_relevance >= 0 ? 440 return results_.verbatim_relevance >= 0 ?
438 results_.verbatim_relevance : kDefaultVerbatimZeroSuggestRelevance; 441 results_.verbatim_relevance : kDefaultVerbatimZeroSuggestRelevance;
439 } 442 }
440 443
441 bool ZeroSuggestProvider::ShouldShowNonContextualZeroSuggest( 444 bool ZeroSuggestProvider::ShouldShowNonContextualZeroSuggest(
442 const GURL& suggest_url, 445 const GURL& suggest_url,
443 const GURL& current_page_url) const { 446 const GURL& current_page_url) const {
444 if (!ZeroSuggestEnabled(suggest_url, 447 if (!ZeroSuggestEnabled(suggest_url,
445 template_url_service_->GetDefaultSearchProvider(), 448 template_url_service_->GetDefaultSearchProvider(),
446 current_page_classification_, 449 current_page_classification_,
447 template_url_service_->search_terms_data(), 450 template_url_service_->search_terms_data(), client_))
448 client_.get()))
449 return false; 451 return false;
450 452
451 // If we cannot send URLs, then only the MostVisited and Personalized 453 // If we cannot send URLs, then only the MostVisited and Personalized
452 // variations can be shown. 454 // variations can be shown.
453 if (!OmniboxFieldTrial::InZeroSuggestMostVisitedFieldTrial() && 455 if (!OmniboxFieldTrial::InZeroSuggestMostVisitedFieldTrial() &&
454 !OmniboxFieldTrial::InZeroSuggestPersonalizedFieldTrial()) 456 !OmniboxFieldTrial::InZeroSuggestPersonalizedFieldTrial())
455 return false; 457 return false;
456 458
457 // Only show zero suggest for HTTP[S] pages. 459 // Only show zero suggest for HTTP[S] pages.
458 // TODO(mariakhomenko): We may be able to expand this set to include pages 460 // TODO(mariakhomenko): We may be able to expand this set to include pages
(...skipping 21 matching lines...) Expand all
480 if (!json_data.empty()) { 482 if (!json_data.empty()) {
481 scoped_ptr<base::Value> data( 483 scoped_ptr<base::Value> data(
482 SearchSuggestionParser::DeserializeJsonData(json_data)); 484 SearchSuggestionParser::DeserializeJsonData(json_data));
483 if (data && ParseSuggestResults( 485 if (data && ParseSuggestResults(
484 *data, kDefaultZeroSuggestRelevance, false, &results_)) { 486 *data, kDefaultZeroSuggestRelevance, false, &results_)) {
485 ConvertResultsToAutocompleteMatches(); 487 ConvertResultsToAutocompleteMatches();
486 results_from_cache_ = !matches_.empty(); 488 results_from_cache_ = !matches_.empty();
487 } 489 }
488 } 490 }
489 } 491 }
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/zero_suggest_provider.h ('k') | chrome/browser/autocomplete/zero_suggest_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698