OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/search_engines/util.h" | 5 #include "components/search_engines/util.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
11 #include <map> | 11 #include <map> |
12 #include <set> | 12 #include <set> |
13 #include <string> | 13 #include <string> |
14 #include <vector> | 14 #include <vector> |
15 | 15 |
16 #include "base/logging.h" | 16 #include "base/logging.h" |
17 #include "base/memory/ptr_util.h" | 17 #include "base/memory/ptr_util.h" |
18 #include "base/strings/string_number_conversions.h" | |
18 #include "base/time/time.h" | 19 #include "base/time/time.h" |
19 #include "components/prefs/pref_service.h" | 20 #include "components/prefs/pref_service.h" |
20 #include "components/search_engines/template_url.h" | 21 #include "components/search_engines/template_url.h" |
21 #include "components/search_engines/template_url_prepopulate_data.h" | 22 #include "components/search_engines/template_url_prepopulate_data.h" |
22 #include "components/search_engines/template_url_service.h" | 23 #include "components/search_engines/template_url_service.h" |
23 | 24 |
24 base::string16 GetDefaultSearchEngineName(TemplateURLService* service) { | 25 base::string16 GetDefaultSearchEngineName(TemplateURLService* service) { |
25 DCHECK(service); | 26 DCHECK(service); |
26 const TemplateURL* const default_provider = | 27 const TemplateURL* const default_provider = |
27 service->GetDefaultSearchProvider(); | 28 service->GetDefaultSearchProvider(); |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
369 } | 370 } |
370 | 371 |
371 TemplateURLService::OwnedTemplateURLVector::iterator FindTemplateURL( | 372 TemplateURLService::OwnedTemplateURLVector::iterator FindTemplateURL( |
372 TemplateURLService::OwnedTemplateURLVector* urls, | 373 TemplateURLService::OwnedTemplateURLVector* urls, |
373 const TemplateURL* url) { | 374 const TemplateURL* url) { |
374 return std::find_if(urls->begin(), urls->end(), | 375 return std::find_if(urls->begin(), urls->end(), |
375 [url](const std::unique_ptr<TemplateURL>& ptr) { | 376 [url](const std::unique_ptr<TemplateURL>& ptr) { |
376 return ptr.get() == url; | 377 return ptr.get() == url; |
377 }); | 378 }); |
378 } | 379 } |
380 | |
381 std::unique_ptr<TemplateURLData> TemplateUrlDataFromDictionary( | |
382 const base::DictionaryValue& dict) { | |
383 std::unique_ptr<TemplateURLData> result(base::MakeUnique<TemplateURLData>()); | |
384 | |
385 std::string search_url; | |
386 base::string16 keyword; | |
387 dict.GetString(DefaultSearchManager::kURL, &search_url); | |
388 dict.GetString(DefaultSearchManager::kKeyword, &keyword); | |
389 | |
390 result->SetKeyword(keyword); | |
391 result->SetURL(search_url); | |
392 | |
393 std::string id; | |
394 dict.GetString(DefaultSearchManager::kID, &id); | |
395 base::StringToInt64(id, &result->id); | |
396 base::string16 short_name; | |
397 dict.GetString(DefaultSearchManager::kShortName, &short_name); | |
398 result->SetShortName(short_name); | |
399 dict.GetInteger(DefaultSearchManager::kPrepopulateID, | |
400 &result->prepopulate_id); | |
401 dict.GetString(DefaultSearchManager::kSyncGUID, | |
402 &result->sync_guid); | |
403 dict.GetString(DefaultSearchManager::kSuggestionsURL, | |
404 &result->suggestions_url); | |
405 dict.GetString(DefaultSearchManager::kInstantURL, | |
406 &result->instant_url); | |
407 dict.GetString(DefaultSearchManager::kImageURL, &result->image_url); | |
408 dict.GetString(DefaultSearchManager::kNewTabURL, &result->new_tab_url); | |
409 | |
410 std::string favicon_url; | |
411 std::string originating_url; | |
412 dict.GetString(DefaultSearchManager::kFaviconURL, &favicon_url); | |
413 dict.GetString(DefaultSearchManager::kOriginatingURL, &originating_url); | |
414 result->favicon_url = GURL(favicon_url); | |
415 result->originating_url = GURL(originating_url); | |
416 | |
417 dict.GetString(DefaultSearchManager::kSearchURLPostParams, | |
418 &result->search_url_post_params); | |
419 dict.GetString(DefaultSearchManager::kSuggestionsURLPostParams, | |
420 &result->suggestions_url_post_params); | |
vasilii
2016/11/09 14:29:56
align parameters.
| |
421 dict.GetString(DefaultSearchManager::kInstantURLPostParams, | |
422 &result->instant_url_post_params); | |
423 dict.GetString(DefaultSearchManager::kImageURLPostParams, | |
424 &result->image_url_post_params); | |
425 dict.GetBoolean(DefaultSearchManager::kSafeForAutoReplace, | |
426 &result->safe_for_autoreplace); | |
427 | |
428 std::string date_created_str; | |
429 std::string last_modified_str; | |
430 dict.GetString(DefaultSearchManager::kDateCreated, &date_created_str); | |
431 dict.GetString(DefaultSearchManager::kLastModified, &last_modified_str); | |
432 | |
433 int64_t date_created = 0; | |
434 if (base::StringToInt64(date_created_str, &date_created)) { | |
435 result->date_created = base::Time::FromInternalValue(date_created); | |
436 } | |
437 | |
438 int64_t last_modified = 0; | |
439 if (base::StringToInt64(date_created_str, &last_modified)) { | |
440 result->last_modified = base::Time::FromInternalValue(last_modified); | |
441 } | |
442 | |
443 dict.GetInteger(DefaultSearchManager::kUsageCount, &result->usage_count); | |
444 | |
445 const base::ListValue* alternate_urls = NULL; | |
446 if (dict.GetList(DefaultSearchManager::kAlternateURLs, &alternate_urls)) { | |
447 for (const auto& it : *alternate_urls) { | |
448 std::string alternate_url; | |
449 if (it->GetAsString(&alternate_url)) | |
450 result->alternate_urls.push_back(alternate_url); | |
vasilii
2016/11/09 14:29:56
std::move(alternate_url)
| |
451 } | |
452 } | |
453 | |
454 const base::ListValue* encodings = NULL; | |
455 if (dict.GetList(DefaultSearchManager::kInputEncodings, &encodings)) { | |
456 for (const auto& it : *encodings) { | |
457 std::string encoding; | |
458 if (it->GetAsString(&encoding)) | |
459 result->input_encodings.push_back(encoding); | |
vasilii
2016/11/09 14:29:56
std::move(encoding)
| |
460 } | |
461 } | |
462 | |
463 dict.GetString(DefaultSearchManager::kSearchTermsReplacementKey, | |
464 &result->search_terms_replacement_key); | |
465 dict.GetBoolean(DefaultSearchManager::kCreatedByPolicy, | |
466 &result->created_by_policy); | |
467 | |
468 result->show_in_default_list = true; | |
vasilii
2016/11/09 14:29:56
Why true here?
| |
469 return result; | |
470 } | |
471 | |
472 std::unique_ptr<base::DictionaryValue> TemplateUrlDataToDictionary( | |
473 const TemplateURLData& data) { | |
474 std::unique_ptr<base::DictionaryValue> url_dict( | |
475 base::MakeUnique<base::DictionaryValue>()); | |
476 | |
477 url_dict->SetString(DefaultSearchManager::kID, base::Int64ToString(data.id)); | |
478 url_dict->SetString(DefaultSearchManager::kShortName, data.short_name()); | |
479 url_dict->SetString(DefaultSearchManager::kKeyword, data.keyword()); | |
480 url_dict->SetInteger(DefaultSearchManager::kPrepopulateID, | |
481 data.prepopulate_id); | |
482 url_dict->SetString(DefaultSearchManager::kSyncGUID, data.sync_guid); | |
483 | |
484 url_dict->SetString(DefaultSearchManager::kURL, data.url()); | |
485 url_dict->SetString(DefaultSearchManager::kSuggestionsURL, | |
486 data.suggestions_url); | |
487 url_dict->SetString(DefaultSearchManager::kInstantURL, data.instant_url); | |
488 url_dict->SetString(DefaultSearchManager::kImageURL, data.image_url); | |
489 url_dict->SetString(DefaultSearchManager::kNewTabURL, data.new_tab_url); | |
490 url_dict->SetString(DefaultSearchManager::kFaviconURL, | |
491 data.favicon_url.spec()); | |
492 url_dict->SetString(DefaultSearchManager::kOriginatingURL, | |
493 data.originating_url.spec()); | |
494 | |
495 url_dict->SetString(DefaultSearchManager::kSearchURLPostParams, | |
496 data.search_url_post_params); | |
497 url_dict->SetString(DefaultSearchManager::kSuggestionsURLPostParams, | |
498 data.suggestions_url_post_params); | |
499 url_dict->SetString(DefaultSearchManager::kInstantURLPostParams, | |
500 data.instant_url_post_params); | |
501 url_dict->SetString(DefaultSearchManager::kImageURLPostParams, | |
502 data.image_url_post_params); | |
503 | |
504 url_dict->SetBoolean(DefaultSearchManager::kSafeForAutoReplace, | |
505 data.safe_for_autoreplace); | |
506 | |
507 url_dict->SetString(DefaultSearchManager::kDateCreated, | |
508 base::Int64ToString(data.date_created.ToInternalValue())); | |
509 url_dict->SetString(DefaultSearchManager::kLastModified, | |
510 base::Int64ToString(data.last_modified.ToInternalValue())); | |
511 url_dict->SetInteger(DefaultSearchManager::kUsageCount, data.usage_count); | |
512 | |
513 std::unique_ptr<base::ListValue> alternate_urls(new base::ListValue); | |
514 for (std::vector<std::string>::const_iterator it = | |
515 data.alternate_urls.begin(); | |
516 it != data.alternate_urls.end(); ++it) { | |
vasilii
2016/11/09 14:29:56
for (const auto& ...) seems shorter. Same below.
| |
517 alternate_urls->AppendString(*it); | |
518 } | |
519 url_dict->Set(DefaultSearchManager::kAlternateURLs, alternate_urls.release()); | |
vasilii
2016/11/09 14:29:56
It's a deprecated method. Use std::move(alternate_
| |
520 | |
521 std::unique_ptr<base::ListValue> encodings(new base::ListValue); | |
522 for (std::vector<std::string>::const_iterator it = | |
523 data.input_encodings.begin(); | |
524 it != data.input_encodings.end(); ++it) { | |
525 encodings->AppendString(*it); | |
526 } | |
527 url_dict->Set(DefaultSearchManager::kInputEncodings, encodings.release()); | |
528 | |
529 url_dict->SetString(DefaultSearchManager::kSearchTermsReplacementKey, | |
530 data.search_terms_replacement_key); | |
531 | |
532 url_dict->SetBoolean(DefaultSearchManager::kCreatedByPolicy, | |
533 data.created_by_policy); | |
534 return url_dict; | |
535 } | |
OLD | NEW |