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

Side by Side Diff: chrome/browser/extensions/api/settings_private/prefs_util.cc

Issue 2539363004: Make base::Value::TYPE a scoped enum. (Closed)
Patch Set: Rebase Created 4 years 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "chrome/browser/extensions/api/settings_private/prefs_util.h" 5 #include "chrome/browser/extensions/api/settings_private/prefs_util.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/extensions/chrome_extension_function.h" 9 #include "chrome/browser/extensions/chrome_extension_function.h"
10 #include "chrome/browser/extensions/settings_api_helpers.h" 10 #include "chrome/browser/extensions/settings_api_helpers.h"
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 (*s_whitelist)[::prefs::kMediaRouterEnableCloudServices] = 351 (*s_whitelist)[::prefs::kMediaRouterEnableCloudServices] =
352 settings_private::PrefType::PREF_TYPE_BOOLEAN; 352 settings_private::PrefType::PREF_TYPE_BOOLEAN;
353 #endif // defined(GOOGLE_CHROME_BUILD) 353 #endif // defined(GOOGLE_CHROME_BUILD)
354 354
355 return *s_whitelist; 355 return *s_whitelist;
356 } 356 }
357 357
358 settings_private::PrefType PrefsUtil::GetType(const std::string& name, 358 settings_private::PrefType PrefsUtil::GetType(const std::string& name,
359 base::Value::Type type) { 359 base::Value::Type type) {
360 switch (type) { 360 switch (type) {
361 case base::Value::Type::TYPE_BOOLEAN: 361 case base::Value::Type::BOOLEAN:
362 return settings_private::PrefType::PREF_TYPE_BOOLEAN; 362 return settings_private::PrefType::PREF_TYPE_BOOLEAN;
363 case base::Value::Type::TYPE_INTEGER: 363 case base::Value::Type::INTEGER:
364 case base::Value::Type::TYPE_DOUBLE: 364 case base::Value::Type::DOUBLE:
365 return settings_private::PrefType::PREF_TYPE_NUMBER; 365 return settings_private::PrefType::PREF_TYPE_NUMBER;
366 case base::Value::Type::TYPE_STRING: 366 case base::Value::Type::STRING:
367 return IsPrefTypeURL(name) ? settings_private::PrefType::PREF_TYPE_URL 367 return IsPrefTypeURL(name) ? settings_private::PrefType::PREF_TYPE_URL
368 : settings_private::PrefType::PREF_TYPE_STRING; 368 : settings_private::PrefType::PREF_TYPE_STRING;
369 case base::Value::Type::TYPE_LIST: 369 case base::Value::Type::LIST:
370 return settings_private::PrefType::PREF_TYPE_LIST; 370 return settings_private::PrefType::PREF_TYPE_LIST;
371 case base::Value::Type::TYPE_DICTIONARY: 371 case base::Value::Type::DICTIONARY:
372 return settings_private::PrefType::PREF_TYPE_DICTIONARY; 372 return settings_private::PrefType::PREF_TYPE_DICTIONARY;
373 default: 373 default:
374 return settings_private::PrefType::PREF_TYPE_NONE; 374 return settings_private::PrefType::PREF_TYPE_NONE;
375 } 375 }
376 } 376 }
377 377
378 std::unique_ptr<settings_private::PrefObject> PrefsUtil::GetCrosSettingsPref( 378 std::unique_ptr<settings_private::PrefObject> PrefsUtil::GetCrosSettingsPref(
379 const std::string& name) { 379 const std::string& name) {
380 std::unique_ptr<settings_private::PrefObject> pref_object( 380 std::unique_ptr<settings_private::PrefObject> pref_object(
381 new settings_private::PrefObject()); 381 new settings_private::PrefObject());
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 if (!IsPrefUserModifiable(pref_name)) 496 if (!IsPrefUserModifiable(pref_name))
497 return PREF_NOT_MODIFIABLE; 497 return PREF_NOT_MODIFIABLE;
498 498
499 const PrefService::Preference* pref = pref_service->FindPreference(pref_name); 499 const PrefService::Preference* pref = pref_service->FindPreference(pref_name);
500 if (!pref) 500 if (!pref)
501 return PREF_NOT_FOUND; 501 return PREF_NOT_FOUND;
502 502
503 DCHECK_EQ(pref->GetType(), value->GetType()); 503 DCHECK_EQ(pref->GetType(), value->GetType());
504 504
505 switch (pref->GetType()) { 505 switch (pref->GetType()) {
506 case base::Value::TYPE_BOOLEAN: 506 case base::Value::Type::BOOLEAN:
507 case base::Value::TYPE_DOUBLE: 507 case base::Value::Type::DOUBLE:
508 case base::Value::TYPE_LIST: 508 case base::Value::Type::LIST:
509 case base::Value::TYPE_DICTIONARY: 509 case base::Value::Type::DICTIONARY:
510 pref_service->Set(pref_name, *value); 510 pref_service->Set(pref_name, *value);
511 break; 511 break;
512 case base::Value::TYPE_INTEGER: { 512 case base::Value::Type::INTEGER: {
513 // In JS all numbers are doubles. 513 // In JS all numbers are doubles.
514 double double_value; 514 double double_value;
515 if (!value->GetAsDouble(&double_value)) 515 if (!value->GetAsDouble(&double_value))
516 return PREF_TYPE_MISMATCH; 516 return PREF_TYPE_MISMATCH;
517 517
518 pref_service->SetInteger(pref_name, static_cast<int>(double_value)); 518 pref_service->SetInteger(pref_name, static_cast<int>(double_value));
519 break; 519 break;
520 } 520 }
521 case base::Value::TYPE_STRING: { 521 case base::Value::Type::STRING: {
522 std::string string_value; 522 std::string string_value;
523 if (!value->GetAsString(&string_value)) 523 if (!value->GetAsString(&string_value))
524 return PREF_TYPE_MISMATCH; 524 return PREF_TYPE_MISMATCH;
525 525
526 if (IsPrefTypeURL(pref_name)) { 526 if (IsPrefTypeURL(pref_name)) {
527 GURL fixed = url_formatter::FixupURL(string_value, std::string()); 527 GURL fixed = url_formatter::FixupURL(string_value, std::string());
528 if (fixed.is_valid()) 528 if (fixed.is_valid())
529 string_value = fixed.spec(); 529 string_value = fixed.spec();
530 else 530 else
531 string_value = std::string(); 531 string_value = std::string();
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
725 if (pref_object.key == ::prefs::kDefaultSearchProviderEnabled) 725 if (pref_object.key == ::prefs::kDefaultSearchProviderEnabled)
726 return GetExtensionOverridingSearchEngine(profile_); 726 return GetExtensionOverridingSearchEngine(profile_);
727 727
728 if (pref_object.key == proxy_config::prefs::kProxy) 728 if (pref_object.key == proxy_config::prefs::kProxy)
729 return GetExtensionOverridingProxy(profile_); 729 return GetExtensionOverridingProxy(profile_);
730 730
731 return nullptr; 731 return nullptr;
732 } 732 }
733 733
734 } // namespace extensions 734 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698