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

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

Issue 436833002: Stop sharing BaseSearchProvider::OnURLFetchComplete between 2 providers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 709fa4c745ac9ba9c3af21c072cd34a680876de8..b48cc0aad14e1ff718e126e045f8cd0b7dbe491a 100644
--- a/chrome/browser/autocomplete/zero_suggest_provider.cc
+++ b/chrome/browser/autocomplete/zero_suggest_provider.cc
@@ -166,8 +166,9 @@ ZeroSuggestProvider::ZeroSuggestProvider(
AutocompleteProviderListener* listener,
TemplateURLService* template_url_service,
Profile* profile)
- : BaseSearchProvider(listener, template_url_service, profile,
+ : BaseSearchProvider(template_url_service, profile,
AutocompleteProvider::TYPE_ZERO_SUGGEST),
+ listener_(listener),
results_from_cache_(false),
weak_ptr_factory_(this) {
}
@@ -212,12 +213,6 @@ const AutocompleteInput ZeroSuggestProvider::GetInput(bool is_keyword) const {
true, ChromeAutocompleteSchemeClassifier(profile_));
}
-SearchSuggestionParser::Results* ZeroSuggestProvider::GetResultsToFill(
- bool is_keyword) {
- DCHECK(!is_keyword);
- return &results_;
-}
-
bool ZeroSuggestProvider::ShouldAppendExtraParams(
const SearchSuggestionParser::SuggestResult& result) const {
// We always use the default provider for search, so append the params.
@@ -225,9 +220,8 @@ bool ZeroSuggestProvider::ShouldAppendExtraParams(
}
void ZeroSuggestProvider::StopSuggest() {
- if (suggest_results_pending_ > 0)
+ if (fetcher_)
LogOmniboxZeroSuggestRequest(ZERO_SUGGEST_REQUEST_INVALIDATED);
- suggest_results_pending_ = 0;
fetcher_.reset();
}
@@ -241,10 +235,6 @@ void ZeroSuggestProvider::ClearAllResults() {
current_query_.clear();
}
-int ZeroSuggestProvider::GetDefaultResultRelevance() const {
- return kDefaultZeroSuggestRelevance;
-}
-
void ZeroSuggestProvider::RecordDeletionResult(bool success) {
if (success) {
content::RecordAction(
@@ -255,22 +245,6 @@ void ZeroSuggestProvider::RecordDeletionResult(bool success) {
}
}
-void ZeroSuggestProvider::LogFetchComplete(bool success, bool is_keyword) {
- LogOmniboxZeroSuggestRequest(ZERO_SUGGEST_REPLY_RECEIVED);
-}
-
-bool ZeroSuggestProvider::IsKeywordFetcher(
- const net::URLFetcher* fetcher) const {
- // ZeroSuggestProvider does not have a keyword provider.
- DCHECK_EQ(fetcher, fetcher_.get());
- return false;
-}
-
-void ZeroSuggestProvider::UpdateMatches() {
- done_ = true;
- ConvertResultsToAutocompleteMatches();
-}
-
void ZeroSuggestProvider::AddSuggestResultsToMap(
const SearchSuggestionParser::SuggestResults& results,
MatchMap* map) {
@@ -306,7 +280,6 @@ AutocompleteMatch ZeroSuggestProvider::NavigationToMatch(
}
void ZeroSuggestProvider::Run(const GURL& suggest_url) {
- suggest_results_pending_ = 0;
const int kFetcherID = 1;
fetcher_.reset(
net::URLFetcher::Create(kFetcherID,
@@ -330,10 +303,33 @@ void ZeroSuggestProvider::Run(const GURL& suggest_url) {
weak_ptr_factory_.GetWeakPtr()), false);
}
}
- suggest_results_pending_ = 1;
LogOmniboxZeroSuggestRequest(ZERO_SUGGEST_REQUEST_SENT);
}
+void ZeroSuggestProvider::OnURLFetchComplete(const net::URLFetcher* source) {
+ DCHECK(!done_);
+ DCHECK_EQ(fetcher_.get(), source);
+
+ LogOmniboxZeroSuggestRequest(ZERO_SUGGEST_REPLY_RECEIVED);
+
+ bool results_updated = false;
+ if (source->GetStatus().is_success() && source->GetResponseCode() == 200) {
+ std::string json_data = SearchSuggestionParser::ExtractJsonData(source);
Peter Kasting 2014/08/08 17:33:24 Nit: Would it make sense to have just these condit
hashimoto 2014/08/11 05:15:04 I guess it doesn't benefit us much because ZeroSug
+ scoped_ptr<base::Value> data(
+ SearchSuggestionParser::DeserializeJsonData(json_data));
+ if (data) {
+ if (StoreSuggestionResponse(json_data, *data))
+ return;
+ results_updated = ParseSuggestResults(
+ *data, kDefaultZeroSuggestRelevance, false, &results_);
+ }
+ }
+ fetcher_.reset();
+ done_ = true;
+ ConvertResultsToAutocompleteMatches();
+ listener_->OnProviderUpdate(results_updated);
+}
+
void ZeroSuggestProvider::OnMostVisitedUrlsAvailable(
const history::MostVisitedURLList& urls) {
most_visited_urls_ = urls;
@@ -459,7 +455,8 @@ void ZeroSuggestProvider::MaybeUseCachedSuggestions() {
if (!json_data.empty()) {
scoped_ptr<base::Value> data(
SearchSuggestionParser::DeserializeJsonData(json_data));
- if (data && ParseSuggestResults(*data.get(), false, &results_)) {
+ if (data && ParseSuggestResults(
+ *data, kDefaultZeroSuggestRelevance, false, &results_)) {
ConvertResultsToAutocompleteMatches();
results_from_cache_ = !matches_.empty();
}

Powered by Google App Engine
This is Rietveld 408576698