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 <cstdlib> |
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" |
11 #include "base/files/file_util.h" | 11 #include "base/files/file_util.h" |
12 #include "base/json/json_writer.h" | 12 #include "base/json/json_writer.h" |
13 #include "base/memory/ptr_util.h" | 13 #include "base/memory/ptr_util.h" |
14 #include "base/metrics/histogram_macros.h" | 14 #include "base/metrics/histogram_macros.h" |
15 #include "base/metrics/sparse_histogram.h" | 15 #include "base/metrics/sparse_histogram.h" |
16 #include "base/path_service.h" | 16 #include "base/path_service.h" |
17 #include "base/strings/string_number_conversions.h" | 17 #include "base/strings/string_number_conversions.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 return true; | 118 return true; |
119 } | 119 } |
120 | 120 |
121 std::string GetFetchEndpoint() { | 121 std::string GetFetchEndpoint() { |
122 std::string endpoint = variations::GetVariationParamValue( | 122 std::string endpoint = variations::GetVariationParamValue( |
123 ntp_snippets::kStudyName, kContentSuggestionsBackend); | 123 ntp_snippets::kStudyName, kContentSuggestionsBackend); |
124 return endpoint.empty() ? kChromeReaderServer : endpoint; | 124 return endpoint.empty() ? kChromeReaderServer : endpoint; |
125 } | 125 } |
126 | 126 |
127 bool UsesChromeContentSuggestionsAPI(const GURL& endpoint) { | 127 bool UsesChromeContentSuggestionsAPI(const GURL& endpoint) { |
128 if (endpoint == GURL(kChromeReaderServer)) { | 128 if (endpoint == GURL(kChromeReaderServer)) |
129 return false; | 129 return false; |
130 } else if (endpoint != GURL(kContentSuggestionsServer) && | 130 |
131 endpoint != GURL(kContentSuggestionsDevServer) && | 131 if (endpoint != GURL(kContentSuggestionsServer) && |
132 endpoint != GURL(kContentSuggestionsAlphaServer)) { | 132 endpoint != GURL(kContentSuggestionsDevServer) && |
| 133 endpoint != GURL(kContentSuggestionsAlphaServer)) { |
133 LOG(WARNING) << "Unknown value for " << kContentSuggestionsBackend << ": " | 134 LOG(WARNING) << "Unknown value for " << kContentSuggestionsBackend << ": " |
134 << "assuming chromecontentsuggestions-style API"; | 135 << "assuming chromecontentsuggestions-style API"; |
135 } | 136 } |
136 return true; | 137 return true; |
137 } | 138 } |
138 | 139 |
139 // Creates snippets from dictionary values in |list| and adds them to | 140 // Creates snippets from dictionary values in |list| and adds them to |
140 // |snippets|. Returns true on success, false if anything went wrong. | 141 // |snippets|. Returns true on success, false if anything went wrong. |
141 bool AddSnippetsFromListValue(bool content_suggestions_api, | 142 bool AddSnippetsFromListValue(bool content_suggestions_api, |
142 const base::ListValue& list, | 143 const base::ListValue& list, |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 OAuth2TokenService* token_service, | 189 OAuth2TokenService* token_service, |
189 scoped_refptr<URLRequestContextGetter> url_request_context_getter, | 190 scoped_refptr<URLRequestContextGetter> url_request_context_getter, |
190 PrefService* pref_service, | 191 PrefService* pref_service, |
191 CategoryFactory* category_factory, | 192 CategoryFactory* category_factory, |
192 const ParseJSONCallback& parse_json_callback, | 193 const ParseJSONCallback& parse_json_callback, |
193 const std::string& api_key) | 194 const std::string& api_key) |
194 : OAuth2TokenService::Consumer("ntp_snippets"), | 195 : OAuth2TokenService::Consumer("ntp_snippets"), |
195 signin_manager_(signin_manager), | 196 signin_manager_(signin_manager), |
196 token_service_(token_service), | 197 token_service_(token_service), |
197 waiting_for_refresh_token_(false), | 198 waiting_for_refresh_token_(false), |
198 url_request_context_getter_(url_request_context_getter), | 199 url_request_context_getter_(std::move(url_request_context_getter)), |
199 category_factory_(category_factory), | 200 category_factory_(category_factory), |
200 parse_json_callback_(parse_json_callback), | 201 parse_json_callback_(parse_json_callback), |
| 202 count_to_fetch_(0), |
201 fetch_url_(GetFetchEndpoint()), | 203 fetch_url_(GetFetchEndpoint()), |
202 fetch_api_(UsesChromeContentSuggestionsAPI(fetch_url_) | 204 fetch_api_(UsesChromeContentSuggestionsAPI(fetch_url_) |
203 ? CHROME_CONTENT_SUGGESTIONS_API | 205 ? CHROME_CONTENT_SUGGESTIONS_API |
204 : CHROME_READER_API), | 206 : CHROME_READER_API), |
205 api_key_(api_key), | 207 api_key_(api_key), |
206 interactive_request_(false), | 208 interactive_request_(false), |
207 tick_clock_(new base::DefaultTickClock()), | 209 tick_clock_(new base::DefaultTickClock()), |
208 request_throttler_( | 210 request_throttler_( |
209 pref_service, | 211 pref_service, |
210 RequestThrottler::RequestType::CONTENT_SUGGESTION_FETCHER), | 212 RequestThrottler::RequestType::CONTENT_SUGGESTION_FETCHER), |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
662 UMA_HISTOGRAM_ENUMERATION("NewTabPage.Snippets.FetchResult", | 664 UMA_HISTOGRAM_ENUMERATION("NewTabPage.Snippets.FetchResult", |
663 static_cast<int>(result), | 665 static_cast<int>(result), |
664 static_cast<int>(FetchResult::RESULT_MAX)); | 666 static_cast<int>(FetchResult::RESULT_MAX)); |
665 | 667 |
666 DVLOG(1) << "Fetch finished: " << last_status_; | 668 DVLOG(1) << "Fetch finished: " << last_status_; |
667 if (!snippets_available_callback_.is_null()) | 669 if (!snippets_available_callback_.is_null()) |
668 snippets_available_callback_.Run(std::move(snippets)); | 670 snippets_available_callback_.Run(std::move(snippets)); |
669 } | 671 } |
670 | 672 |
671 } // namespace ntp_snippets | 673 } // namespace ntp_snippets |
OLD | NEW |