Index: components/ntp_snippets/remote/request_throttler.cc |
diff --git a/components/ntp_snippets/remote/request_throttler.cc b/components/ntp_snippets/remote/request_throttler.cc |
index efe56366ed9df441a1a3e90a81c0c142fc8cd204..39227d37c41402c7ded13ec76286b32a8195fdce 100644 |
--- a/components/ntp_snippets/remote/request_throttler.cc |
+++ b/components/ntp_snippets/remote/request_throttler.cc |
@@ -45,8 +45,8 @@ struct RequestThrottler::RequestTypeInfo { |
const char* count_pref; |
const char* interactive_count_pref; |
const char* day_pref; |
- const int default_quota; |
- const int default_interactive_quota; |
+ const base::FeatureParam<int> quota; |
+ const base::FeatureParam<int> interactive_quota; |
}; |
// When adding a new type here, extend also the "RequestThrottlerTypes" |
@@ -54,47 +54,52 @@ struct RequestThrottler::RequestTypeInfo { |
const RequestThrottler::RequestTypeInfo RequestThrottler::kRequestTypeInfo[] = { |
// The following three types share the same prefs. They differ in quota |
// values (and UMA histograms). |
- // RequestCounter::RequestType::CONTENT_SUGGESTION_FETCHER_RARE_NTP_USER, |
- {"SuggestionFetcherRareNTPUser", prefs::kSnippetFetcherRequestCount, |
+ // RequestCounter::RequestType:: |
+ // CONTENT_SUGGESTION_FETCHER_RARE_NTP_USER, |
+ {"SuggestionFetcherRareNTPUser", |
+ prefs::kSnippetFetcherRequestCount, |
prefs::kSnippetFetcherInteractiveRequestCount, |
- prefs::kSnippetFetcherRequestsDay, 5, kUnlimitedQuota}, |
- // RequestCounter::RequestType::CONTENT_SUGGESTION_FETCHER_ACTIVE_NTP_USER, |
- {"SuggestionFetcherActiveNTPUser", prefs::kSnippetFetcherRequestCount, |
+ prefs::kSnippetFetcherRequestsDay, |
+ {&kArticleSuggestionsFeature, "quota_SuggestionFetcherRareNTPUser", 5}, |
+ {&kArticleSuggestionsFeature, |
+ "interactive_quota_SuggestionFetcherRareNTPUser", kUnlimitedQuota}}, |
+ // RequestCounter::RequestType:: |
+ // CONTENT_SUGGESTION_FETCHER_ACTIVE_NTP_USER, |
+ {"SuggestionFetcherActiveNTPUser", |
+ prefs::kSnippetFetcherRequestCount, |
prefs::kSnippetFetcherInteractiveRequestCount, |
- prefs::kSnippetFetcherRequestsDay, 20, kUnlimitedQuota}, |
- // RequestCounter::RequestType::CONTENT_SUGGESTION_FETCHER_ACTIVE_SUGGESTIONS_CONSUMER, |
+ prefs::kSnippetFetcherRequestsDay, |
+ {&kArticleSuggestionsFeature, "quota_SuggestionFetcherActiveNTPUser", 20}, |
+ {&kArticleSuggestionsFeature, |
+ "interactive_quota_SuggestionFetcherActiveNTPUser", kUnlimitedQuota}}, |
+ // RequestCounter::RequestType:: |
+ // CONTENT_SUGGESTION_FETCHER_ACTIVE_SUGGESTIONS_CONSUMER, |
{"SuggestionFetcherActiveSuggestionsConsumer", |
prefs::kSnippetFetcherRequestCount, |
prefs::kSnippetFetcherInteractiveRequestCount, |
- prefs::kSnippetFetcherRequestsDay, 20, kUnlimitedQuota}, |
+ prefs::kSnippetFetcherRequestsDay, |
+ {&kArticleSuggestionsFeature, |
+ "quota_SuggestionFetcherActiveSuggestionsConsumer", 20}, |
+ {&kArticleSuggestionsFeature, |
+ "interactive_quota_SuggestionFetcherActiveSuggestionsConsumer", |
+ kUnlimitedQuota}}, |
// RequestCounter::RequestType::CONTENT_SUGGESTION_THUMBNAIL, |
- {"SuggestionThumbnailFetcher", prefs::kSnippetThumbnailsRequestCount, |
+ {"SuggestionThumbnailFetcher", |
+ prefs::kSnippetThumbnailsRequestCount, |
prefs::kSnippetThumbnailsInteractiveRequestCount, |
- prefs::kSnippetThumbnailsRequestsDay, kUnlimitedQuota, kUnlimitedQuota}}; |
+ prefs::kSnippetThumbnailsRequestsDay, |
+ {&kArticleSuggestionsFeature, "quota_SuggestionThumbnailFetcher", |
+ kUnlimitedQuota}, |
+ {&kArticleSuggestionsFeature, |
+ "interactive_quota_SuggestionThumbnailFetcher", kUnlimitedQuota}}}; |
RequestThrottler::RequestThrottler(PrefService* pref_service, RequestType type) |
: pref_service_(pref_service), |
type_info_(kRequestTypeInfo[static_cast<int>(type)]) { |
DCHECK(pref_service); |
- std::string quota = variations::GetVariationParamValueByFeature( |
- ntp_snippets::kArticleSuggestionsFeature, |
- base::StringPrintf("quota_%s", GetRequestTypeName())); |
- if (!base::StringToInt(quota, "a_)) { |
- LOG_IF(WARNING, !quota.empty()) |
- << "Invalid variation parameter for quota for " << GetRequestTypeName(); |
- quota_ = type_info_.default_quota; |
- } |
- |
- std::string interactive_quota = variations::GetVariationParamValueByFeature( |
- ntp_snippets::kArticleSuggestionsFeature, |
- base::StringPrintf("interactive_quota_%s", GetRequestTypeName())); |
- if (!base::StringToInt(interactive_quota, &interactive_quota_)) { |
- LOG_IF(WARNING, !interactive_quota.empty()) |
- << "Invalid variation parameter for interactive quota for " |
- << GetRequestTypeName(); |
- interactive_quota_ = type_info_.default_interactive_quota; |
- } |
+ quota_ = type_info_.quota.Get(); |
+ interactive_quota_ = type_info_.interactive_quota.Get(); |
// Since the histogram names are dynamic, we cannot use the standard macros |
// and we need to lookup the histograms, instead. |