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

Unified Diff: chrome/browser/autocomplete/zero_suggest_provider.cc

Issue 671593002: Do not delay most visited results. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Casting fix Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/autocomplete/zero_suggest_provider.cc
diff --git a/chrome/browser/autocomplete/zero_suggest_provider.cc b/chrome/browser/autocomplete/zero_suggest_provider.cc
index 44b5dc3ee6e6dec44d7154a36f4e301b00e64f67..1ae74ea80edaed2cb846d50578b8dbd8079427ac 100644
--- a/chrome/browser/autocomplete/zero_suggest_provider.cc
+++ b/chrome/browser/autocomplete/zero_suggest_provider.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/autocomplete/history_url_provider.h"
#include "chrome/browser/history/top_sites.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/common/pref_names.h"
#include "components/history/core/browser/history_types.h"
#include "components/metrics/proto/omnibox_input_type.pb.h"
@@ -116,19 +117,21 @@ void ZeroSuggestProvider::Start(const AutocompleteInput& input,
if (!suggest_url.is_valid())
return;
- // No need to send the current page URL in personalized suggest field trial.
+ // No need to send the current page URL in personalized suggest or
+ // most visited field trials.
if (CanSendURL(input.current_url(), suggest_url, default_provider,
current_page_classification_,
template_url_service_->search_terms_data(), client_.get()) &&
- !OmniboxFieldTrial::InZeroSuggestPersonalizedFieldTrial()) {
+ !OmniboxFieldTrial::InZeroSuggestPersonalizedFieldTrial() &&
+ !OmniboxFieldTrial::InZeroSuggestMostVisitedFieldTrial()) {
// Update suggest_url to include the current_page_url.
search_term_args.current_page_url = current_query_;
suggest_url = GURL(default_provider->suggestions_url_ref().
ReplaceSearchTerms(
search_term_args,
template_url_service_->search_terms_data()));
- } else if (!CanShowZeroSuggestWithoutSendingURL(suggest_url,
- input.current_url())) {
+ } else if (!ShouldShowNonContextualZeroSuggest(suggest_url,
+ input.current_url())) {
return;
}
@@ -144,6 +147,7 @@ void ZeroSuggestProvider::Stop(bool clear_cached_results) {
if (fetcher_)
LogOmniboxZeroSuggestRequest(ZERO_SUGGEST_REQUEST_INVALIDATED);
fetcher_.reset();
+ waiting_for_most_visited_urls_request_ = false;
done_ = true;
if (clear_cached_results) {
@@ -191,6 +195,7 @@ ZeroSuggestProvider::ZeroSuggestProvider(
listener_(listener),
profile_(profile),
results_from_cache_(false),
+ waiting_for_most_visited_urls_request_(false),
weak_ptr_factory_(this) {
}
@@ -309,35 +314,42 @@ AutocompleteMatch ZeroSuggestProvider::NavigationToMatch(
}
void ZeroSuggestProvider::Run(const GURL& suggest_url) {
- const int kFetcherID = 1;
- fetcher_.reset(
- net::URLFetcher::Create(kFetcherID,
- suggest_url,
- net::URLFetcher::GET, this));
- fetcher_->SetRequestContext(profile_->GetRequestContext());
- fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES);
- // Add Chrome experiment state to the request headers.
- net::HttpRequestHeaders headers;
- variations::VariationsHttpHeaderProvider::GetInstance()->AppendHeaders(
- fetcher_->GetOriginalURL(), profile_->IsOffTheRecord(), false, &headers);
- fetcher_->SetExtraRequestHeaders(headers.ToString());
- fetcher_->Start();
-
if (OmniboxFieldTrial::InZeroSuggestMostVisitedFieldTrial()) {
most_visited_urls_.clear();
history::TopSites* ts = profile_->GetTopSites();
if (ts) {
+ waiting_for_most_visited_urls_request_ = true;
ts->GetMostVisitedURLs(
base::Bind(&ZeroSuggestProvider::OnMostVisitedUrlsAvailable,
weak_ptr_factory_.GetWeakPtr()), false);
}
+ } else {
+ const int kFetcherID = 1;
+ fetcher_.reset(
+ net::URLFetcher::Create(kFetcherID,
+ suggest_url,
+ net::URLFetcher::GET, this));
+ fetcher_->SetRequestContext(profile_->GetRequestContext());
+ fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES);
+ // Add Chrome experiment state to the request headers.
+ net::HttpRequestHeaders headers;
+ variations::VariationsHttpHeaderProvider::GetInstance()->AppendHeaders(
+ fetcher_->GetOriginalURL(), profile_->IsOffTheRecord(), false,
+ &headers);
+ fetcher_->SetExtraRequestHeaders(headers.ToString());
+ fetcher_->Start();
+ LogOmniboxZeroSuggestRequest(ZERO_SUGGEST_REQUEST_SENT);
}
- LogOmniboxZeroSuggestRequest(ZERO_SUGGEST_REQUEST_SENT);
}
void ZeroSuggestProvider::OnMostVisitedUrlsAvailable(
const history::MostVisitedURLList& urls) {
+ if (!waiting_for_most_visited_urls_request_) return;
most_visited_urls_ = urls;
+ waiting_for_most_visited_urls_request_ = false;
+ done_ = true;
+ ConvertResultsToAutocompleteMatches();
+ listener_->OnProviderUpdate(true);
}
void ZeroSuggestProvider::ConvertResultsToAutocompleteMatches() {
@@ -424,7 +436,7 @@ int ZeroSuggestProvider::GetVerbatimRelevance() const {
results_.verbatim_relevance : kDefaultVerbatimZeroSuggestRelevance;
}
-bool ZeroSuggestProvider::CanShowZeroSuggestWithoutSendingURL(
+bool ZeroSuggestProvider::ShouldShowNonContextualZeroSuggest(
const GURL& suggest_url,
const GURL& current_page_url) const {
if (!ZeroSuggestEnabled(suggest_url,
@@ -449,6 +461,11 @@ bool ZeroSuggestProvider::CanShowZeroSuggestWithoutSendingURL(
(current_page_url.scheme() != url::kHttpsScheme)))
return false;
+ if (OmniboxFieldTrial::InZeroSuggestMostVisitedWithoutSerpFieldTrial() &&
+ template_url_service_->
+ IsSearchResultsPageFromDefaultSearchProvider(current_page_url))
+ return false;
+
return true;
}
« 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