Chromium Code Reviews| Index: chrome/browser/search/suggestions/suggestions_service.cc |
| diff --git a/chrome/browser/search/suggestions/suggestions_service.cc b/chrome/browser/search/suggestions/suggestions_service.cc |
| index d4e47452c8498f4857c595f9f96d5118654bbe6f..a77865b62317d4e5c26c3ae74eeb440fd1898205 100644 |
| --- a/chrome/browser/search/suggestions/suggestions_service.cc |
| +++ b/chrome/browser/search/suggestions/suggestions_service.cc |
| @@ -8,6 +8,7 @@ |
| #include "base/metrics/field_trial.h" |
| #include "base/metrics/histogram.h" |
| #include "base/metrics/sparse_histogram.h" |
| +#include "base/strings/string_number_conversions.h" |
| #include "base/strings/string_util.h" |
| #include "base/time/time.h" |
| #include "chrome/browser/browser_process.h" |
| @@ -49,7 +50,8 @@ void LogResponseState(SuggestionsResponseState state) { |
| RESPONSE_STATE_SIZE); |
| } |
| -// Obtains the experiment parameter under the supplied |key|. |
| +// Obtains the experiment parameter under the supplied |key|, or empty string |
| +// if the parameter does not exist. |
| std::string GetExperimentParam(const std::string& key) { |
| return chrome_variations::GetVariationParamValue(kSuggestionsFieldTrialName, |
| key); |
| @@ -67,10 +69,7 @@ void DispatchRequestsAndClear( |
| std::vector<SuggestionsService::ResponseCallback>().swap(*requestors); |
| } |
| -// Timeout before serving requestors after a fetch suggestions request has been |
| -// issued. |
| -// TODO(manzagop): make this a Variations parameter to enable tweaking. |
| -const unsigned int kRequestTimeoutMs = 200; |
| +const int kDefaultRequestTimeoutMs = 200; |
| } // namespace |
| @@ -81,20 +80,26 @@ const char kSuggestionsFieldTrialSuggestionsSuffixParam[] = |
| const char kSuggestionsFieldTrialBlacklistSuffixParam[] = "blacklist_suffix"; |
| const char kSuggestionsFieldTrialStateParam[] = "state"; |
| const char kSuggestionsFieldTrialStateEnabled[] = "enabled"; |
| +const char kSuggestionsFieldTrialTimeoutMs[] = "timeout_ms"; |
| SuggestionsService::SuggestionsService( |
| Profile* profile, scoped_ptr<SuggestionsStore> suggestions_store) |
| : suggestions_store_(suggestions_store.Pass()), |
| thumbnail_manager_(new ThumbnailManager(profile)), |
| profile_(profile), |
| - weak_ptr_factory_(this) { |
| - // Obtain the URL to use to fetch suggestions data from the Variations param. |
| + weak_ptr_factory_(this), |
| + request_timeout_ms_(kDefaultRequestTimeoutMs) { |
| + // Obtain various parameters from Variations. |
| suggestions_url_ = |
| GURL(GetExperimentParam(kSuggestionsFieldTrialURLParam) + |
| GetExperimentParam(kSuggestionsFieldTrialSuggestionsSuffixParam)); |
| blacklist_url_prefix_ = |
| GetExperimentParam(kSuggestionsFieldTrialURLParam) + |
| GetExperimentParam(kSuggestionsFieldTrialBlacklistSuffixParam); |
| + std::string timeout = GetExperimentParam(kSuggestionsFieldTrialTimeoutMs); |
| + if (!timeout.empty()) { |
| + base::StringToInt(timeout, &request_timeout_ms_); |
|
manzagop (departed)
2014/06/17 18:16:45
If returns false, fallback to the default value.
Mathieu
2014/06/17 19:49:44
Done.
|
| + } |
| } |
| SuggestionsService::~SuggestionsService() {} |
| @@ -117,7 +122,7 @@ void SuggestionsService::FetchSuggestionsData( |
| &SuggestionsService::OnRequestTimeout, weak_ptr_factory_.GetWeakPtr()))); |
| BrowserThread::PostDelayedTask( |
| BrowserThread::UI, FROM_HERE, pending_timeout_closure_->callback(), |
| - base::TimeDelta::FromMilliseconds(kRequestTimeoutMs)); |
| + base::TimeDelta::FromMilliseconds(request_timeout_ms_)); |
| } |
| void SuggestionsService::FetchSuggestionsDataNoTimeout( |