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

Unified Diff: components/ntp_snippets/remote/ntp_snippets_fetcher.h

Issue 2395123002: Connecting UserClassifier to NtpSnippetsFetcher (Closed)
Patch Set: Unit-test fix Created 4 years, 2 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/remote/ntp_snippets_fetcher.h
diff --git a/components/ntp_snippets/remote/ntp_snippets_fetcher.h b/components/ntp_snippets/remote/ntp_snippets_fetcher.h
index d100ddde0a550adee6e34d755a3cea29f1044e44..caf0748d6f7f82fef6cee9226df2cbb6d451b132 100644
--- a/components/ntp_snippets/remote/ntp_snippets_fetcher.h
+++ b/components/ntp_snippets/remote/ntp_snippets_fetcher.h
@@ -33,6 +33,8 @@ class Value;
namespace ntp_snippets {
+class UserClassifier;
+
// Fetches snippet data for the NTP from the server.
class NTPSnippetsFetcher : public OAuth2TokenService::Consumer,
public OAuth2TokenService::Observer,
@@ -95,7 +97,8 @@ class NTPSnippetsFetcher : public OAuth2TokenService::Consumer,
CategoryFactory* category_factory,
translate::LanguageModel* language_model,
const ParseJSONCallback& parse_json_callback,
- const std::string& api_key);
+ const std::string& api_key,
+ const UserClassifier* user_classifier);
~NTPSnippetsFetcher() override;
// Set a callback that is called when a new set of snippets are downloaded,
@@ -151,6 +154,7 @@ class NTPSnippetsFetcher : public OAuth2TokenService::Consumer,
FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest, BuildRequestAuthenticated);
FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest, BuildRequestUnauthenticated);
FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest, BuildRequestExcludedIds);
+ FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest, BuildRequestNoUserClass);
FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest,
BuildRequestWithTwoLanguages);
FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest,
@@ -172,6 +176,7 @@ class NTPSnippetsFetcher : public OAuth2TokenService::Consumer,
std::set<std::string> excluded_ids;
int count_to_fetch;
bool interactive_request;
+ std::string user_class;
translate::LanguageModel::LanguageInfo ui_language;
translate::LanguageModel::LanguageInfo other_top_language;
@@ -211,6 +216,8 @@ class NTPSnippetsFetcher : public OAuth2TokenService::Consumer,
FetchResult result,
const std::string& extra_message);
+ bool DemandQuotaForRequest(bool interactive_request);
+
// Authorization for signed-in users.
SigninManagerBase* signin_manager_;
OAuth2TokenService* token_service_;
@@ -264,8 +271,13 @@ 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_;
+ // Classifier that tells us how active the user is. Not owned.
+ const UserClassifier* user_classifier_;
+
+ // Request throttlers for limiting requests for different classes of users.
+ RequestThrottler request_throttler_rare_ntp_user_;
+ RequestThrottler request_throttler_active_ntp_user_;
+ RequestThrottler request_throttler_active_suggestions_consumer_;
// When a token request gets canceled, we want to retry once.
bool oauth_token_retried_;

Powered by Google App Engine
This is Rietveld 408576698