| OLD | NEW |
| 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/ntp_snippets_fetcher.h" | 5 #include "components/ntp_snippets/ntp_snippets_fetcher.h" |
| 6 | 6 |
| 7 #include <stdlib.h> | 7 #include <stdlib.h> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 << "Error in translating language code to a locale string: " << error; | 151 << "Error in translating language code to a locale string: " << error; |
| 152 return locale; | 152 return locale; |
| 153 } | 153 } |
| 154 | 154 |
| 155 } // namespace | 155 } // namespace |
| 156 | 156 |
| 157 NTPSnippetsFetcher::NTPSnippetsFetcher( | 157 NTPSnippetsFetcher::NTPSnippetsFetcher( |
| 158 SigninManagerBase* signin_manager, | 158 SigninManagerBase* signin_manager, |
| 159 OAuth2TokenService* token_service, | 159 OAuth2TokenService* token_service, |
| 160 scoped_refptr<URLRequestContextGetter> url_request_context_getter, | 160 scoped_refptr<URLRequestContextGetter> url_request_context_getter, |
| 161 PrefService* pref_service, |
| 161 const ParseJSONCallback& parse_json_callback, | 162 const ParseJSONCallback& parse_json_callback, |
| 162 bool is_stable_channel) | 163 bool is_stable_channel) |
| 163 : OAuth2TokenService::Consumer("ntp_snippets"), | 164 : OAuth2TokenService::Consumer("ntp_snippets"), |
| 164 signin_manager_(signin_manager), | 165 signin_manager_(signin_manager), |
| 165 token_service_(token_service), | 166 token_service_(token_service), |
| 166 waiting_for_refresh_token_(false), | 167 waiting_for_refresh_token_(false), |
| 167 url_request_context_getter_(url_request_context_getter), | 168 url_request_context_getter_(url_request_context_getter), |
| 168 parse_json_callback_(parse_json_callback), | 169 parse_json_callback_(parse_json_callback), |
| 169 fetch_url_(GetFetchEndpoint()), | 170 fetch_url_(GetFetchEndpoint()), |
| 170 fetch_api_(UsesChromeContentSuggestionsAPI(fetch_url_) | 171 fetch_api_(UsesChromeContentSuggestionsAPI(fetch_url_) |
| 171 ? CHROME_CONTENT_SUGGESTIONS_API | 172 ? CHROME_CONTENT_SUGGESTIONS_API |
| 172 : CHROME_READER_API), | 173 : CHROME_READER_API), |
| 173 is_stable_channel_(is_stable_channel), | 174 is_stable_channel_(is_stable_channel), |
| 174 tick_clock_(new base::DefaultTickClock()), | 175 tick_clock_(new base::DefaultTickClock()), |
| 176 request_throttler_( |
| 177 pref_service, |
| 178 RequestThrottler::RequestType::CONTENT_SUGGESTION_FETCHER), |
| 175 weak_ptr_factory_(this) { | 179 weak_ptr_factory_(this) { |
| 176 // Parse the variation parameters and set the defaults if missing. | 180 // Parse the variation parameters and set the defaults if missing. |
| 177 std::string personalization = variations::GetVariationParamValue( | 181 std::string personalization = variations::GetVariationParamValue( |
| 178 ntp_snippets::kStudyName, kPersonalizationName); | 182 ntp_snippets::kStudyName, kPersonalizationName); |
| 179 if (personalization == kPersonalizationNonPersonalString) { | 183 if (personalization == kPersonalizationNonPersonalString) { |
| 180 personalization_ = Personalization::kNonPersonal; | 184 personalization_ = Personalization::kNonPersonal; |
| 181 } else if (personalization == kPersonalizationPersonalString) { | 185 } else if (personalization == kPersonalizationPersonalString) { |
| 182 personalization_ = Personalization::kPersonal; | 186 personalization_ = Personalization::kPersonal; |
| 183 } else { | 187 } else { |
| 184 personalization_ = Personalization::kBoth; | 188 personalization_ = Personalization::kBoth; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 207 } | 211 } |
| 208 | 212 |
| 209 void NTPSnippetsFetcher::SetCallback( | 213 void NTPSnippetsFetcher::SetCallback( |
| 210 const SnippetsAvailableCallback& callback) { | 214 const SnippetsAvailableCallback& callback) { |
| 211 snippets_available_callback_ = callback; | 215 snippets_available_callback_ = callback; |
| 212 } | 216 } |
| 213 | 217 |
| 214 void NTPSnippetsFetcher::FetchSnippetsFromHosts( | 218 void NTPSnippetsFetcher::FetchSnippetsFromHosts( |
| 215 const std::set<std::string>& hosts, | 219 const std::set<std::string>& hosts, |
| 216 const std::string& language_code, | 220 const std::string& language_code, |
| 217 int count) { | 221 int count, |
| 222 bool force_request) { |
| 223 if (!request_throttler_.DemandQuotaForRequest(force_request)) |
| 224 return; |
| 225 |
| 218 hosts_ = hosts; | 226 hosts_ = hosts; |
| 219 fetch_start_time_ = tick_clock_->NowTicks(); | 227 fetch_start_time_ = tick_clock_->NowTicks(); |
| 220 | 228 |
| 221 if (UsesHostRestrictions() && hosts_.empty()) { | 229 if (UsesHostRestrictions() && hosts_.empty()) { |
| 222 FetchFinished(OptionalSnippets(), FetchResult::EMPTY_HOSTS, | 230 FetchFinished(OptionalSnippets(), FetchResult::EMPTY_HOSTS, |
| 223 /*extra_message=*/std::string()); | 231 /*extra_message=*/std::string()); |
| 224 return; | 232 return; |
| 225 } | 233 } |
| 226 | 234 |
| 227 locale_ = PosixLocaleFromBCP47Language(language_code); | 235 locale_ = PosixLocaleFromBCP47Language(language_code); |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 tick_clock_->NowTicks() - fetch_start_time_); | 532 tick_clock_->NowTicks() - fetch_start_time_); |
| 525 UMA_HISTOGRAM_ENUMERATION("NewTabPage.Snippets.FetchResult", | 533 UMA_HISTOGRAM_ENUMERATION("NewTabPage.Snippets.FetchResult", |
| 526 static_cast<int>(result), | 534 static_cast<int>(result), |
| 527 static_cast<int>(FetchResult::RESULT_MAX)); | 535 static_cast<int>(FetchResult::RESULT_MAX)); |
| 528 | 536 |
| 529 if (!snippets_available_callback_.is_null()) | 537 if (!snippets_available_callback_.is_null()) |
| 530 snippets_available_callback_.Run(std::move(snippets)); | 538 snippets_available_callback_.Run(std::move(snippets)); |
| 531 } | 539 } |
| 532 | 540 |
| 533 } // namespace ntp_snippets | 541 } // namespace ntp_snippets |
| OLD | NEW |