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

Unified Diff: components/ntp_snippets/ntp_snippets_fetcher.h

Issue 2162533002: Adding a request counter to the snippets fetcher. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@traffic-monitor
Patch Set: Rebase + rename to throttler 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.h
diff --git a/components/ntp_snippets/ntp_snippets_fetcher.h b/components/ntp_snippets/ntp_snippets_fetcher.h
index 8391286a3190e5d1fb9a6d4c4f028349d1392c54..fa40175001604bb47427ebb83b37b626daf87800 100644
--- a/components/ntp_snippets/ntp_snippets_fetcher.h
+++ b/components/ntp_snippets/ntp_snippets_fetcher.h
@@ -8,6 +8,7 @@
#include <memory>
#include <set>
#include <string>
+#include <utility>
#include <vector>
#include "base/callback.h"
@@ -16,10 +17,12 @@
#include "base/time/tick_clock.h"
#include "base/time/time.h"
#include "components/ntp_snippets/ntp_snippet.h"
+#include "components/ntp_snippets/request_throttler.h"
#include "google_apis/gaia/oauth2_token_service.h"
#include "net/url_request/url_fetcher_delegate.h"
#include "net/url_request/url_request_context_getter.h"
+class PrefService;
class SigninManagerBase;
namespace base {
@@ -76,6 +79,7 @@ class NTPSnippetsFetcher : public OAuth2TokenService::Consumer,
SigninManagerBase* signin_manager,
OAuth2TokenService* oauth2_token_service,
scoped_refptr<net::URLRequestContextGetter> url_request_context_getter,
+ PrefService* pref_service,
const ParseJSONCallback& parse_json_callback,
bool is_stable_channel);
~NTPSnippetsFetcher() override;
@@ -90,9 +94,13 @@ class NTPSnippetsFetcher : public OAuth2TokenService::Consumer,
// If an ongoing fetch exists, it will be cancelled and a new one started,
// without triggering an additional callback (i.e. not noticeable by
// subscriber of SetCallback()).
+ //
+ // Fetches snippets only if the daily quota not exceeded, unless |force| is
Marc Treib 2016/07/22 13:52:52 force_request (or rename the actual param below)
Bernhard Bauer 2016/07/22 13:59:14 Nit: The name of the parameter is |force_request|;
jkrcal 2016/07/25 10:05:38 Done.
+ // set to true. Use force only for user-initiated fetches.
void FetchSnippetsFromHosts(const std::set<std::string>& hosts,
const std::string& language_code,
- int count);
+ int count,
+ bool force_request);
// Debug string representing the status/result of the last fetch attempt.
const std::string& last_status() const { return last_status_; }
@@ -217,6 +225,9 @@ class NTPSnippetsFetcher : public OAuth2TokenService::Consumer,
// Allow for an injectable tick clock for testing.
std::unique_ptr<base::TickClock> tick_clock_;
+ // Request throttler for limiting requests.
+ RequestThrottler request_throttler_;
+
base::WeakPtrFactory<NTPSnippetsFetcher> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(NTPSnippetsFetcher);

Powered by Google App Engine
This is Rietveld 408576698