Index: chrome/browser/autocomplete/search_provider.cc |
diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc |
index 8bd2c9f2a0b88abb6363c7e3f40a9cf0511330f2..5c6f08ccfe9f5caa9835a1f0e7543739a12c3dab 100644 |
--- a/chrome/browser/autocomplete/search_provider.cc |
+++ b/chrome/browser/autocomplete/search_provider.cc |
@@ -293,12 +293,14 @@ void SearchProvider::Run() { |
const TemplateURL* default_url = providers_.GetDefaultProviderURL(); |
if (default_url && !default_url->suggestions_url().empty()) { |
suggest_results_pending_++; |
+ LogOmniboxSuggestRequest(REQUEST_SENT); |
default_fetcher_.reset(CreateSuggestFetcher(kDefaultProviderURLFetcherID, |
default_url->suggestions_url_ref(), input_.text())); |
} |
const TemplateURL* keyword_url = providers_.GetKeywordProviderURL(); |
if (keyword_url && !keyword_url->suggestions_url().empty()) { |
suggest_results_pending_++; |
+ LogOmniboxSuggestRequest(REQUEST_SENT); |
keyword_fetcher_.reset(CreateSuggestFetcher(kKeywordProviderURLFetcherID, |
keyword_url->suggestions_url_ref(), keyword_input_text_)); |
} |
@@ -332,6 +334,7 @@ void SearchProvider::AddProviderInfo(ProvidersInfo* provider_info) const { |
void SearchProvider::OnURLFetchComplete(const net::URLFetcher* source) { |
DCHECK(!done_); |
suggest_results_pending_--; |
+ LogOmniboxSuggestRequest(REPLY_RECEIVED); |
DCHECK_GE(suggest_results_pending_, 0); // Should never go negative. |
const net::HttpResponseHeaders* const response_headers = |
source->GetResponseHeaders(); |
@@ -549,6 +552,10 @@ bool SearchProvider::IsQuerySuitableForSuggest() const { |
} |
void SearchProvider::StopSuggest() { |
+ // Increment the appropriate field in the histogram by the number of |
+ // pending requests that were invalidated. |
+ for (int i = 0; i < suggest_results_pending_; i++) |
+ LogOmniboxSuggestRequest(REQUEST_INVALIDATED); |
suggest_results_pending_ = 0; |
timer_.Stop(); |
// Stop any in-progress URL fetches. |
@@ -1219,3 +1226,10 @@ void SearchProvider::UpdateDone() { |
done_ = ((suggest_results_pending_ == 0) && |
(instant_finalized_ || !InstantController::IsEnabled(profile_))); |
} |
+ |
+// static |
+void SearchProvider::LogOmniboxSuggestRequest( |
+ const SuggestRequestsHistogramValue request_value) { |
+ UMA_HISTOGRAM_ENUMERATION("Omnibox.SuggestRequests", request_value, |
+ MAX_SUGGEST_REQUEST_HISTOGRAM_VALUE); |
Ilya Sherman
2012/08/15 23:17:37
Optional nit: I think it would be slightly cleaner
Mark P
2012/08/15 23:28:30
Done.
|
+} |