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

Side by Side Diff: components/ntp_snippets/remote/ntp_snippets_fetcher.cc

Issue 2568033005: [NTP::SectionOrder] Replace CategoryFactory with a category ranker. (Closed)
Patch Set: rebase. Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/ntp_snippets/remote/ntp_snippets_fetcher.h" 5 #include "components/ntp_snippets/remote/ntp_snippets_fetcher.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstdlib> 8 #include <cstdlib>
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
13 #include "base/files/file_util.h" 13 #include "base/files/file_util.h"
14 #include "base/json/json_writer.h" 14 #include "base/json/json_writer.h"
15 #include "base/memory/ptr_util.h" 15 #include "base/memory/ptr_util.h"
16 #include "base/metrics/histogram_macros.h" 16 #include "base/metrics/histogram_macros.h"
17 #include "base/metrics/sparse_histogram.h" 17 #include "base/metrics/sparse_histogram.h"
18 #include "base/path_service.h" 18 #include "base/path_service.h"
19 #include "base/strings/string_number_conversions.h" 19 #include "base/strings/string_number_conversions.h"
20 #include "base/strings/string_util.h" 20 #include "base/strings/string_util.h"
21 #include "base/strings/stringprintf.h" 21 #include "base/strings/stringprintf.h"
22 #include "base/strings/utf_string_conversions.h" 22 #include "base/strings/utf_string_conversions.h"
23 #include "base/time/default_tick_clock.h" 23 #include "base/time/default_tick_clock.h"
24 #include "base/time/time.h" 24 #include "base/time/time.h"
25 #include "base/values.h" 25 #include "base/values.h"
26 #include "components/data_use_measurement/core/data_use_user_data.h" 26 #include "components/data_use_measurement/core/data_use_user_data.h"
27 #include "components/ntp_snippets/category_factory.h" 27 #include "components/ntp_snippets/category.h"
28 #include "components/ntp_snippets/features.h" 28 #include "components/ntp_snippets/features.h"
29 #include "components/ntp_snippets/ntp_snippets_constants.h" 29 #include "components/ntp_snippets/ntp_snippets_constants.h"
30 #include "components/ntp_snippets/user_classifier.h" 30 #include "components/ntp_snippets/user_classifier.h"
31 #include "components/signin/core/browser/profile_oauth2_token_service.h" 31 #include "components/signin/core/browser/profile_oauth2_token_service.h"
32 #include "components/signin/core/browser/signin_manager.h" 32 #include "components/signin/core/browser/signin_manager.h"
33 #include "components/signin/core/browser/signin_manager_base.h" 33 #include "components/signin/core/browser/signin_manager_base.h"
34 #include "components/variations/net/variations_http_headers.h" 34 #include "components/variations/net/variations_http_headers.h"
35 #include "components/variations/variations_associated_data.h" 35 #include "components/variations/variations_associated_data.h"
36 #include "grit/components_strings.h" 36 #include "grit/components_strings.h"
37 #include "net/base/load_flags.h" 37 #include "net/base/load_flags.h"
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 416
417 NTPSnippetsFetcher::Params::Params() = default; 417 NTPSnippetsFetcher::Params::Params() = default;
418 NTPSnippetsFetcher::Params::Params(const Params&) = default; 418 NTPSnippetsFetcher::Params::Params(const Params&) = default;
419 NTPSnippetsFetcher::Params::~Params() = default; 419 NTPSnippetsFetcher::Params::~Params() = default;
420 420
421 NTPSnippetsFetcher::NTPSnippetsFetcher( 421 NTPSnippetsFetcher::NTPSnippetsFetcher(
422 SigninManagerBase* signin_manager, 422 SigninManagerBase* signin_manager,
423 OAuth2TokenService* token_service, 423 OAuth2TokenService* token_service,
424 scoped_refptr<URLRequestContextGetter> url_request_context_getter, 424 scoped_refptr<URLRequestContextGetter> url_request_context_getter,
425 PrefService* pref_service, 425 PrefService* pref_service,
426 CategoryFactory* category_factory,
427 LanguageModel* language_model, 426 LanguageModel* language_model,
428 const ParseJSONCallback& parse_json_callback, 427 const ParseJSONCallback& parse_json_callback,
429 const std::string& api_key, 428 const std::string& api_key,
430 const UserClassifier* user_classifier) 429 const UserClassifier* user_classifier)
431 : OAuth2TokenService::Consumer("ntp_snippets"), 430 : OAuth2TokenService::Consumer("ntp_snippets"),
432 signin_manager_(signin_manager), 431 signin_manager_(signin_manager),
433 token_service_(token_service), 432 token_service_(token_service),
434 url_request_context_getter_(std::move(url_request_context_getter)), 433 url_request_context_getter_(std::move(url_request_context_getter)),
435 category_factory_(category_factory),
436 language_model_(language_model), 434 language_model_(language_model),
437 parse_json_callback_(parse_json_callback), 435 parse_json_callback_(parse_json_callback),
438 fetch_url_(GetFetchEndpoint()), 436 fetch_url_(GetFetchEndpoint()),
439 fetch_api_(UsesChromeContentSuggestionsAPI(fetch_url_) 437 fetch_api_(UsesChromeContentSuggestionsAPI(fetch_url_)
440 ? FetchAPI::CHROME_CONTENT_SUGGESTIONS_API 438 ? FetchAPI::CHROME_CONTENT_SUGGESTIONS_API
441 : FetchAPI::CHROME_READER_API), 439 : FetchAPI::CHROME_READER_API),
442 api_key_(api_key), 440 api_key_(api_key),
443 tick_clock_(new base::DefaultTickClock()), 441 tick_clock_(new base::DefaultTickClock()),
444 user_classifier_(user_classifier), 442 user_classifier_(user_classifier),
445 request_throttler_rare_ntp_user_( 443 request_throttler_rare_ntp_user_(
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 FetchedCategoriesVector* categories) { 1038 FetchedCategoriesVector* categories) {
1041 const base::DictionaryValue* top_dict = nullptr; 1039 const base::DictionaryValue* top_dict = nullptr;
1042 if (!parsed.GetAsDictionary(&top_dict)) { 1040 if (!parsed.GetAsDictionary(&top_dict)) {
1043 return false; 1041 return false;
1044 } 1042 }
1045 1043
1046 switch (fetch_api_) { 1044 switch (fetch_api_) {
1047 case FetchAPI::CHROME_READER_API: { 1045 case FetchAPI::CHROME_READER_API: {
1048 const int kUnusedRemoteCategoryId = -1; 1046 const int kUnusedRemoteCategoryId = -1;
1049 categories->push_back(FetchedCategory( 1047 categories->push_back(FetchedCategory(
1050 category_factory_->FromKnownCategory(KnownCategories::ARTICLES), 1048 Category::FromKnownCategory(KnownCategories::ARTICLES),
1051 BuildArticleCategoryInfo(base::nullopt))); 1049 BuildArticleCategoryInfo(base::nullopt)));
1052 1050
1053 const base::ListValue* recos = nullptr; 1051 const base::ListValue* recos = nullptr;
1054 return top_dict->GetList("recos", &recos) && 1052 return top_dict->GetList("recos", &recos) &&
1055 AddSnippetsFromListValue(/*content_suggestions_api=*/false, 1053 AddSnippetsFromListValue(/*content_suggestions_api=*/false,
1056 kUnusedRemoteCategoryId, *recos, 1054 kUnusedRemoteCategoryId, *recos,
1057 &categories->back().snippets); 1055 &categories->back().snippets);
1058 } 1056 }
1059 1057
1060 case FetchAPI::CHROME_CONTENT_SUGGESTIONS_API: { 1058 case FetchAPI::CHROME_CONTENT_SUGGESTIONS_API: {
(...skipping 17 matching lines...) Expand all
1078 const base::ListValue* suggestions = nullptr; 1076 const base::ListValue* suggestions = nullptr;
1079 // Absence of a list of suggestions is treated as an empty list, which 1077 // Absence of a list of suggestions is treated as an empty list, which
1080 // is permissible. 1078 // is permissible.
1081 if (category_value->GetList("suggestions", &suggestions)) { 1079 if (category_value->GetList("suggestions", &suggestions)) {
1082 if (!AddSnippetsFromListValue( 1080 if (!AddSnippetsFromListValue(
1083 /*content_suggestions_api=*/true, remote_category_id, 1081 /*content_suggestions_api=*/true, remote_category_id,
1084 *suggestions, &snippets)) { 1082 *suggestions, &snippets)) {
1085 return false; 1083 return false;
1086 } 1084 }
1087 } 1085 }
1088 Category category = 1086 Category category = Category::FromRemoteCategory(remote_category_id);
1089 category_factory_->FromRemoteCategory(remote_category_id);
1090 if (category.IsKnownCategory(KnownCategories::ARTICLES)) { 1087 if (category.IsKnownCategory(KnownCategories::ARTICLES)) {
1091 categories->push_back(FetchedCategory( 1088 categories->push_back(FetchedCategory(
1092 category, 1089 category,
1093 BuildArticleCategoryInfo(base::UTF8ToUTF16(utf8_title)))); 1090 BuildArticleCategoryInfo(base::UTF8ToUTF16(utf8_title))));
1094 } else { 1091 } else {
1095 // TODO(tschumann): Right now, the backend does not yet populate this 1092 // TODO(tschumann): Right now, the backend does not yet populate this
1096 // field. Make it mandatory once the backends provide it. 1093 // field. Make it mandatory once the backends provide it.
1097 bool allow_fetching_more_results = false; 1094 bool allow_fetching_more_results = false;
1098 category_value->GetBoolean("allowFetchingMoreResults", 1095 category_value->GetBoolean("allowFetchingMoreResults",
1099 &allow_fetching_more_results); 1096 &allow_fetching_more_results);
(...skipping 25 matching lines...) Expand all
1125 NOTREACHED(); 1122 NOTREACHED();
1126 return false; 1123 return false;
1127 } 1124 }
1128 1125
1129 bool NTPSnippetsFetcher::NeedsAuthentication() const { 1126 bool NTPSnippetsFetcher::NeedsAuthentication() const {
1130 return (personalization_ == Personalization::kPersonal || 1127 return (personalization_ == Personalization::kPersonal ||
1131 personalization_ == Personalization::kBoth); 1128 personalization_ == Personalization::kBoth);
1132 } 1129 }
1133 1130
1134 } // namespace ntp_snippets 1131 } // namespace ntp_snippets
OLDNEW
« no previous file with comments | « components/ntp_snippets/remote/ntp_snippets_fetcher.h ('k') | components/ntp_snippets/remote/ntp_snippets_fetcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698