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

Unified Diff: components/ntp_snippets/ntp_snippets_fetcher.cc

Issue 2162533002: Adding a request counter to the snippets fetcher. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@traffic-monitor
Patch Set: Marc's and Bernhard's comments Created 4 years, 5 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: components/ntp_snippets/ntp_snippets_fetcher.cc
diff --git a/components/ntp_snippets/ntp_snippets_fetcher.cc b/components/ntp_snippets/ntp_snippets_fetcher.cc
index 5869644f963492b331dfbcc2dc5eb70accf87db8..29d95325c0d7147a2ea4b7926a10c60081cc7d8f 100644
--- a/components/ntp_snippets/ntp_snippets_fetcher.cc
+++ b/components/ntp_snippets/ntp_snippets_fetcher.cc
@@ -76,6 +76,8 @@ const char kPersonalizationBothString[] = "both"; // the default value
const char kHostRestrictionOnString[] = "on"; // the default value
const char kHostRestrictionOffString[] = "off";
+const int kContentFetchesQuotaPerDay = 30;
jkrcal 2016/07/25 10:08:26 I still wonder what is the right limit. I think 30
Marc Treib 2016/07/25 10:11:55 IMO regular users shouldn't hit the throttling lim
jkrcal 2016/07/25 10:26:59 Ok, changed to 50. Does fetching every 30 mins mak
Marc Treib 2016/07/25 11:07:46 Probably not, but that's a separate discussion :)
jkrcal 2016/07/26 08:30:11 Acknowledged.
+
std::string FetchResultToString(NTPSnippetsFetcher::FetchResult result) {
switch (result) {
case NTPSnippetsFetcher::FetchResult::SUCCESS:
@@ -158,6 +160,7 @@ NTPSnippetsFetcher::NTPSnippetsFetcher(
SigninManagerBase* signin_manager,
OAuth2TokenService* token_service,
scoped_refptr<URLRequestContextGetter> url_request_context_getter,
+ PrefService* pref_service,
const ParseJSONCallback& parse_json_callback,
bool is_stable_channel)
: OAuth2TokenService::Consumer("ntp_snippets"),
@@ -172,6 +175,10 @@ NTPSnippetsFetcher::NTPSnippetsFetcher(
: CHROME_READER_API),
is_stable_channel_(is_stable_channel),
tick_clock_(new base::DefaultTickClock()),
+ request_throttler_(
+ pref_service,
+ RequestThrottler::RequestType::CONTENT_SUGGESTION_FETCHER,
+ kContentFetchesQuotaPerDay),
weak_ptr_factory_(this) {
// Parse the variation parameters and set the defaults if missing.
std::string personalization = variations::GetVariationParamValue(
@@ -214,7 +221,11 @@ void NTPSnippetsFetcher::SetCallback(
void NTPSnippetsFetcher::FetchSnippetsFromHosts(
const std::set<std::string>& hosts,
const std::string& language_code,
- int count) {
+ int count,
+ bool force_request) {
+ if (!request_throttler_.DemandQuotaForRequest(force_request))
+ return;
+
hosts_ = hosts;
fetch_start_time_ = tick_clock_->NowTicks();
« no previous file with comments | « components/ntp_snippets/ntp_snippets_fetcher.h ('k') | components/ntp_snippets/ntp_snippets_fetcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698