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

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

Issue 2665743002: [Remote suggestions] Clean up variation params in the fetcher. (Closed)
Patch Set: Add a comment Created 3 years, 10 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 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/json_request.h" 5 #include "components/ntp_snippets/remote/json_request.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 std::string json_string; 239 std::string json_string;
240 url_fetcher_->GetResponseAsString(&json_string); 240 url_fetcher_->GetResponseAsString(&json_string);
241 LOG(WARNING) << "Received invalid JSON (" << error << "): " << json_string; 241 LOG(WARNING) << "Received invalid JSON (" << error << "): " << json_string;
242 std::move(request_completed_callback_) 242 std::move(request_completed_callback_)
243 .Run(/*result=*/nullptr, FetchResult::JSON_PARSE_ERROR, 243 .Run(/*result=*/nullptr, FetchResult::JSON_PARSE_ERROR,
244 /*error_details=*/base::StringPrintf(" (error %s)", error.c_str())); 244 /*error_details=*/base::StringPrintf(" (error %s)", error.c_str()));
245 } 245 }
246 246
247 JsonRequest::Builder::Builder() 247 JsonRequest::Builder::Builder()
248 : fetch_api_(CHROME_READER_API), 248 : fetch_api_(CHROME_READER_API),
249 personalization_(Personalization::kBoth),
250 language_model_(nullptr) {} 249 language_model_(nullptr) {}
251 JsonRequest::Builder::Builder(JsonRequest::Builder&&) = default; 250 JsonRequest::Builder::Builder(JsonRequest::Builder&&) = default;
252 JsonRequest::Builder::~Builder() = default; 251 JsonRequest::Builder::~Builder() = default;
253 252
254 std::unique_ptr<JsonRequest> JsonRequest::Builder::Build() const { 253 std::unique_ptr<JsonRequest> JsonRequest::Builder::Build() const {
255 DCHECK(!url_.is_empty()); 254 DCHECK(!url_.is_empty());
256 DCHECK(url_request_context_getter_); 255 DCHECK(url_request_context_getter_);
257 DCHECK(tick_clock_); 256 DCHECK(tick_clock_);
258 auto request = base::MakeUnique<JsonRequest>( 257 auto request = base::MakeUnique<JsonRequest>(
259 params_.exclusive_category, tick_clock_, parse_json_callback_); 258 params_.exclusive_category, tick_clock_, parse_json_callback_);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 params_ = params; 292 params_ = params;
294 return *this; 293 return *this;
295 } 294 }
296 295
297 JsonRequest::Builder& JsonRequest::Builder::SetParseJsonCallback( 296 JsonRequest::Builder& JsonRequest::Builder::SetParseJsonCallback(
298 ParseJSONCallback callback) { 297 ParseJSONCallback callback) {
299 parse_json_callback_ = callback; 298 parse_json_callback_ = callback;
300 return *this; 299 return *this;
301 } 300 }
302 301
303 JsonRequest::Builder& JsonRequest::Builder::SetPersonalization(
304 Personalization personalization) {
305 personalization_ = personalization;
306 return *this;
307 }
308
309 JsonRequest::Builder& JsonRequest::Builder::SetTickClock( 302 JsonRequest::Builder& JsonRequest::Builder::SetTickClock(
310 base::TickClock* tick_clock) { 303 base::TickClock* tick_clock) {
311 tick_clock_ = tick_clock; 304 tick_clock_ = tick_clock;
312 return *this; 305 return *this;
313 } 306 }
314 307
315 JsonRequest::Builder& JsonRequest::Builder::SetUrl(const GURL& url) { 308 JsonRequest::Builder& JsonRequest::Builder::SetUrl(const GURL& url) {
316 url_ = url; 309 url_ = url;
317 return *this; 310 return *this;
318 } 311 }
(...skipping 27 matching lines...) Expand all
346 false, // uma_enabled 339 false, // uma_enabled
347 is_signed_in, &headers); 340 is_signed_in, &headers);
348 return headers.ToString(); 341 return headers.ToString();
349 } 342 }
350 343
351 std::string JsonRequest::Builder::BuildBody() const { 344 std::string JsonRequest::Builder::BuildBody() const {
352 auto request = base::MakeUnique<base::DictionaryValue>(); 345 auto request = base::MakeUnique<base::DictionaryValue>();
353 std::string user_locale = PosixLocaleFromBCP47Language(params_.language_code); 346 std::string user_locale = PosixLocaleFromBCP47Language(params_.language_code);
354 switch (fetch_api_) { 347 switch (fetch_api_) {
355 case CHROME_READER_API: { 348 case CHROME_READER_API: {
356 auto content_params = base::MakeUnique<base::DictionaryValue>();
357 content_params->SetBoolean("only_return_personalized_results",
358 ReturnOnlyPersonalizedResults());
359
360 auto content_restricts = base::MakeUnique<base::ListValue>(); 349 auto content_restricts = base::MakeUnique<base::ListValue>();
361 for (const auto* metadata : {"TITLE", "SNIPPET", "THUMBNAIL"}) { 350 for (const auto* metadata : {"TITLE", "SNIPPET", "THUMBNAIL"}) {
362 auto entry = base::MakeUnique<base::DictionaryValue>(); 351 auto entry = base::MakeUnique<base::DictionaryValue>();
363 entry->SetString("type", "METADATA"); 352 entry->SetString("type", "METADATA");
364 entry->SetString("value", metadata); 353 entry->SetString("value", metadata);
365 content_restricts->Append(std::move(entry)); 354 content_restricts->Append(std::move(entry));
366 } 355 }
367 356
368 auto local_scoring_params = base::MakeUnique<base::DictionaryValue>(); 357 auto local_scoring_params = base::MakeUnique<base::DictionaryValue>();
369 local_scoring_params->Set("content_params", std::move(content_params));
370 local_scoring_params->Set("content_restricts", 358 local_scoring_params->Set("content_restricts",
371 std::move(content_restricts)); 359 std::move(content_restricts));
372 360
373 auto global_scoring_params = base::MakeUnique<base::DictionaryValue>(); 361 auto global_scoring_params = base::MakeUnique<base::DictionaryValue>();
374 global_scoring_params->SetInteger("num_to_return", 362 global_scoring_params->SetInteger("num_to_return",
375 params_.count_to_fetch); 363 params_.count_to_fetch);
376 global_scoring_params->SetInteger("sort_type", 1); 364 global_scoring_params->SetInteger("sort_type", 1);
377 365
378 auto advanced = base::MakeUnique<base::DictionaryValue>(); 366 auto advanced = base::MakeUnique<base::DictionaryValue>();
379 advanced->Set("local_scoring_params", std::move(local_scoring_params)); 367 advanced->Set("local_scoring_params", std::move(local_scoring_params));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 410
423 auto language_list = base::MakeUnique<base::ListValue>(); 411 auto language_list = base::MakeUnique<base::ListValue>();
424 if (ui_language.frequency > 0) { 412 if (ui_language.frequency > 0) {
425 AppendLanguageInfoToList(language_list.get(), ui_language); 413 AppendLanguageInfoToList(language_list.get(), ui_language);
426 } 414 }
427 if (other_top_language.frequency > 0) { 415 if (other_top_language.frequency > 0) {
428 AppendLanguageInfoToList(language_list.get(), other_top_language); 416 AppendLanguageInfoToList(language_list.get(), other_top_language);
429 } 417 }
430 request->Set("topLanguages", std::move(language_list)); 418 request->Set("topLanguages", std::move(language_list));
431 419
432 // TODO(sfiera): Support only_return_personalized_results.
433 // TODO(sfiera): Support count_to_fetch. 420 // TODO(sfiera): Support count_to_fetch.
434 break; 421 break;
435 } 422 }
436 } 423 }
437 424
438 std::string request_json; 425 std::string request_json;
439 bool success = base::JSONWriter::WriteWithOptions( 426 bool success = base::JSONWriter::WriteWithOptions(
440 *request, base::JSONWriter::OPTIONS_PRETTY_PRINT, &request_json); 427 *request, base::JSONWriter::OPTIONS_PRETTY_PRINT, &request_json);
441 DCHECK(success); 428 DCHECK(success);
442 return request_json; 429 return request_json;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 "NewTabPage.Languages.UILanguageRatioInTwoTopLanguages", 483 "NewTabPage.Languages.UILanguageRatioInTwoTopLanguages",
497 ratio_ui_in_both_languages * 100); 484 ratio_ui_in_both_languages * 100);
498 break; 485 break;
499 } 486 }
500 } 487 }
501 } 488 }
502 489
503 } // namespace internal 490 } // namespace internal
504 491
505 } // namespace ntp_snippets 492 } // namespace ntp_snippets
OLDNEW
« no previous file with comments | « components/ntp_snippets/remote/json_request.h ('k') | components/ntp_snippets/remote/json_request_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698