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

Unified Diff: chrome/browser/search/suggestions/suggestions_service.cc

Issue 341483007: [Suggestions] Ability to override the timeout parameter via Variations (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/search/suggestions/suggestions_service.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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(
« no previous file with comments | « chrome/browser/search/suggestions/suggestions_service.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698