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

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

Issue 2395123002: Connecting UserClassifier to NtpSnippetsFetcher (Closed)
Patch Set: A small 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.cc
diff --git a/components/ntp_snippets/remote/ntp_snippets_fetcher.cc b/components/ntp_snippets/remote/ntp_snippets_fetcher.cc
index b447572fe8b65433991268f54ec99c0a0593be8e..38785e7cd18efcbd9f9d3de5f22d9e0c8ad06e5d 100644
--- a/components/ntp_snippets/remote/ntp_snippets_fetcher.cc
+++ b/components/ntp_snippets/remote/ntp_snippets_fetcher.cc
@@ -24,6 +24,7 @@
#include "components/ntp_snippets/category_factory.h"
#include "components/ntp_snippets/ntp_snippets_constants.h"
#include "components/ntp_snippets/switches.h"
+#include "components/ntp_snippets/user_classifier.h"
#include "components/signin/core/browser/profile_oauth2_token_service.h"
#include "components/signin/core/browser/signin_manager.h"
#include "components/signin/core/browser/signin_manager_base.h"
@@ -173,6 +174,24 @@ std::string PosixLocaleFromBCP47Language(const std::string& language_code) {
return locale;
}
+RequestThrottler::RequestType GetRequestTypeForUserClass(
+ UserClassifier::UserClass user_class) {
+ switch (user_class) {
+ case UserClassifier::UserClass::RARE_NTP_USER:
+ return RequestThrottler::RequestType::
+ CONTENT_SUGGESTION_FETCHER_RARE_NTP_USER;
+ case UserClassifier::UserClass::ACTIVE_NTP_USER:
+ return RequestThrottler::RequestType::
+ CONTENT_SUGGESTION_FETCHER_ACTIVE_NTP_USER;
+ case UserClassifier::UserClass::ACTIVE_SUGGESTIONS_CONSUMER:
+ return RequestThrottler::RequestType::
+ CONTENT_SUGGESTION_FETCHER_ACTIVE_SUGGESTIONS_CONSUMER;
+ }
+ NOTREACHED();
+ return RequestThrottler::RequestType::
+ CONTENT_SUGGESTION_FETCHER_ACTIVE_NTP_USER;
+}
+
} // namespace
NTPSnippetsFetcher::FetchedCategory::FetchedCategory(Category c)
@@ -191,7 +210,8 @@ NTPSnippetsFetcher::NTPSnippetsFetcher(
PrefService* pref_service,
CategoryFactory* category_factory,
const ParseJSONCallback& parse_json_callback,
- const std::string& api_key)
+ const std::string& api_key,
+ const UserClassifier* user_classifier)
: OAuth2TokenService::Consumer("ntp_snippets"),
signin_manager_(signin_manager),
token_service_(token_service),
@@ -207,9 +227,10 @@ NTPSnippetsFetcher::NTPSnippetsFetcher(
api_key_(api_key),
interactive_request_(false),
tick_clock_(new base::DefaultTickClock()),
+ user_classifier_(user_classifier),
request_throttler_(
pref_service,
- RequestThrottler::RequestType::CONTENT_SUGGESTION_FETCHER),
+ GetRequestTypeForUserClass(user_classifier_->GetUserClass())),
oauth_token_retried_(false),
weak_ptr_factory_(this) {
// Parse the variation parameters and set the defaults if missing.
@@ -256,6 +277,8 @@ void NTPSnippetsFetcher::FetchSnippetsFromHosts(
const std::set<std::string>& excluded_ids,
int count,
bool interactive_request) {
+ request_throttler_.ChangeRequestType(
+ GetRequestTypeForUserClass(user_classifier_->GetUserClass()));
if (!request_throttler_.DemandQuotaForRequest(interactive_request)) {
FetchFinished(OptionalSnippets(),
interactive_request
@@ -306,7 +329,8 @@ NTPSnippetsFetcher::RequestParams::RequestParams()
user_locale(),
host_restricts(),
count_to_fetch(),
- interactive_request() {}
+ interactive_request(),
+ user_class() {}
NTPSnippetsFetcher::RequestParams::~RequestParams() = default;
@@ -381,6 +405,7 @@ std::string NTPSnippetsFetcher::RequestParams::BuildRequest() {
break;
}
request->Set("excludedSuggestionIds", std::move(excluded));
+ request->SetString("user_activeness_class", user_class);
// TODO(sfiera): support authentication and personalization
// TODO(sfiera): support count_to_fetch
@@ -453,6 +478,7 @@ void NTPSnippetsFetcher::FetchSnippetsNonAuthenticated() {
params.count_to_fetch = count_to_fetch_;
params.interactive_request = interactive_request_;
params.user_locale = locale_;
+ params.user_class = user_classifier_->GetUserClassNameForProto();
FetchSnippetsImpl(url, std::string(), params.BuildRequest());
}
@@ -470,6 +496,7 @@ void NTPSnippetsFetcher::FetchSnippetsAuthenticated(
params.excluded_ids = excluded_ids_;
params.count_to_fetch = count_to_fetch_;
params.interactive_request = interactive_request_;
+ params.user_class = user_classifier_->GetUserClassNameForProto();
// TODO(jkrcal, treib): Add unit-tests for authenticated fetches.
FetchSnippetsImpl(fetch_url_,
base::StringPrintf(kAuthorizationRequestHeaderFormat,

Powered by Google App Engine
This is Rietveld 408576698