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

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: 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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 std::string json_string; 246 std::string json_string;
247 url_fetcher_->GetResponseAsString(&json_string); 247 url_fetcher_->GetResponseAsString(&json_string);
248 LOG(WARNING) << "Received invalid JSON (" << error << "): " << json_string; 248 LOG(WARNING) << "Received invalid JSON (" << error << "): " << json_string;
249 std::move(request_completed_callback_) 249 std::move(request_completed_callback_)
250 .Run(/*result=*/nullptr, FetchResult::JSON_PARSE_ERROR, 250 .Run(/*result=*/nullptr, FetchResult::JSON_PARSE_ERROR,
251 /*error_details=*/base::StringPrintf(" (error %s)", error.c_str())); 251 /*error_details=*/base::StringPrintf(" (error %s)", error.c_str()));
252 } 252 }
253 253
254 JsonRequest::Builder::Builder() 254 JsonRequest::Builder::Builder()
255 : fetch_api_(CHROME_READER_API), 255 : fetch_api_(CHROME_READER_API),
256 personalization_(Personalization::kBoth),
257 language_model_(nullptr) {} 256 language_model_(nullptr) {}
258 JsonRequest::Builder::Builder(JsonRequest::Builder&&) = default; 257 JsonRequest::Builder::Builder(JsonRequest::Builder&&) = default;
259 JsonRequest::Builder::~Builder() = default; 258 JsonRequest::Builder::~Builder() = default;
260 259
261 std::unique_ptr<JsonRequest> JsonRequest::Builder::Build() const { 260 std::unique_ptr<JsonRequest> JsonRequest::Builder::Build() const {
262 DCHECK(!url_.is_empty()); 261 DCHECK(!url_.is_empty());
263 DCHECK(url_request_context_getter_); 262 DCHECK(url_request_context_getter_);
264 DCHECK(tick_clock_); 263 DCHECK(tick_clock_);
265 auto request = base::MakeUnique<JsonRequest>( 264 auto request = base::MakeUnique<JsonRequest>(
266 params_.exclusive_category, tick_clock_, parse_json_callback_); 265 params_.exclusive_category, tick_clock_, parse_json_callback_);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 params_ = params; 299 params_ = params;
301 return *this; 300 return *this;
302 } 301 }
303 302
304 JsonRequest::Builder& JsonRequest::Builder::SetParseJsonCallback( 303 JsonRequest::Builder& JsonRequest::Builder::SetParseJsonCallback(
305 ParseJSONCallback callback) { 304 ParseJSONCallback callback) {
306 parse_json_callback_ = callback; 305 parse_json_callback_ = callback;
307 return *this; 306 return *this;
308 } 307 }
309 308
310 JsonRequest::Builder& JsonRequest::Builder::SetPersonalization(
311 Personalization personalization) {
312 personalization_ = personalization;
313 return *this;
314 }
315
316 JsonRequest::Builder& JsonRequest::Builder::SetTickClock( 309 JsonRequest::Builder& JsonRequest::Builder::SetTickClock(
317 base::TickClock* tick_clock) { 310 base::TickClock* tick_clock) {
318 tick_clock_ = tick_clock; 311 tick_clock_ = tick_clock;
319 return *this; 312 return *this;
320 } 313 }
321 314
322 JsonRequest::Builder& JsonRequest::Builder::SetUrl(const GURL& url) { 315 JsonRequest::Builder& JsonRequest::Builder::SetUrl(const GURL& url) {
323 url_ = url; 316 url_ = url;
324 return *this; 317 return *this;
325 } 318 }
(...skipping 27 matching lines...) Expand all
353 false, // uma_enabled 346 false, // uma_enabled
354 is_signed_in, &headers); 347 is_signed_in, &headers);
355 return headers.ToString(); 348 return headers.ToString();
356 } 349 }
357 350
358 std::string JsonRequest::Builder::BuildBody() const { 351 std::string JsonRequest::Builder::BuildBody() const {
359 auto request = base::MakeUnique<base::DictionaryValue>(); 352 auto request = base::MakeUnique<base::DictionaryValue>();
360 std::string user_locale = PosixLocaleFromBCP47Language(params_.language_code); 353 std::string user_locale = PosixLocaleFromBCP47Language(params_.language_code);
361 switch (fetch_api_) { 354 switch (fetch_api_) {
362 case CHROME_READER_API: { 355 case CHROME_READER_API: {
363 auto content_params = base::MakeUnique<base::DictionaryValue>();
364 content_params->SetBoolean("only_return_personalized_results",
365 ReturnOnlyPersonalizedResults());
366
367 auto content_restricts = base::MakeUnique<base::ListValue>(); 356 auto content_restricts = base::MakeUnique<base::ListValue>();
368 for (const auto* metadata : {"TITLE", "SNIPPET", "THUMBNAIL"}) { 357 for (const auto* metadata : {"TITLE", "SNIPPET", "THUMBNAIL"}) {
369 auto entry = base::MakeUnique<base::DictionaryValue>(); 358 auto entry = base::MakeUnique<base::DictionaryValue>();
370 entry->SetString("type", "METADATA"); 359 entry->SetString("type", "METADATA");
371 entry->SetString("value", metadata); 360 entry->SetString("value", metadata);
372 content_restricts->Append(std::move(entry)); 361 content_restricts->Append(std::move(entry));
373 } 362 }
374 363
375 auto local_scoring_params = base::MakeUnique<base::DictionaryValue>(); 364 auto local_scoring_params = base::MakeUnique<base::DictionaryValue>();
376 local_scoring_params->Set("content_params", std::move(content_params));
377 local_scoring_params->Set("content_restricts", 365 local_scoring_params->Set("content_restricts",
378 std::move(content_restricts)); 366 std::move(content_restricts));
379 367
380 auto global_scoring_params = base::MakeUnique<base::DictionaryValue>(); 368 auto global_scoring_params = base::MakeUnique<base::DictionaryValue>();
381 global_scoring_params->SetInteger("num_to_return", 369 global_scoring_params->SetInteger("num_to_return",
382 params_.count_to_fetch); 370 params_.count_to_fetch);
383 global_scoring_params->SetInteger("sort_type", 1); 371 global_scoring_params->SetInteger("sort_type", 1);
384 372
385 auto advanced = base::MakeUnique<base::DictionaryValue>(); 373 auto advanced = base::MakeUnique<base::DictionaryValue>();
386 advanced->Set("local_scoring_params", std::move(local_scoring_params)); 374 advanced->Set("local_scoring_params", std::move(local_scoring_params));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 417
430 auto language_list = base::MakeUnique<base::ListValue>(); 418 auto language_list = base::MakeUnique<base::ListValue>();
431 if (ui_language.frequency > 0) { 419 if (ui_language.frequency > 0) {
432 AppendLanguageInfoToList(language_list.get(), ui_language); 420 AppendLanguageInfoToList(language_list.get(), ui_language);
433 } 421 }
434 if (other_top_language.frequency > 0) { 422 if (other_top_language.frequency > 0) {
435 AppendLanguageInfoToList(language_list.get(), other_top_language); 423 AppendLanguageInfoToList(language_list.get(), other_top_language);
436 } 424 }
437 request->Set("topLanguages", std::move(language_list)); 425 request->Set("topLanguages", std::move(language_list));
438 426
439 // TODO(sfiera): Support only_return_personalized_results.
440 // TODO(sfiera): Support count_to_fetch. 427 // TODO(sfiera): Support count_to_fetch.
441 break; 428 break;
442 } 429 }
443 } 430 }
444 431
445 std::string request_json; 432 std::string request_json;
446 bool success = base::JSONWriter::WriteWithOptions( 433 bool success = base::JSONWriter::WriteWithOptions(
447 *request, base::JSONWriter::OPTIONS_PRETTY_PRINT, &request_json); 434 *request, base::JSONWriter::OPTIONS_PRETTY_PRINT, &request_json);
448 DCHECK(success); 435 DCHECK(success);
449 return request_json; 436 return request_json;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 "NewTabPage.Languages.UILanguageRatioInTwoTopLanguages", 490 "NewTabPage.Languages.UILanguageRatioInTwoTopLanguages",
504 ratio_ui_in_both_languages * 100); 491 ratio_ui_in_both_languages * 100);
505 break; 492 break;
506 } 493 }
507 } 494 }
508 } 495 }
509 496
510 } // namespace internal 497 } // namespace internal
511 498
512 } // namespace ntp_snippets 499 } // namespace ntp_snippets
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698