OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/preference/preference_api.h" | 5 #include "chrome/browser/extensions/api/preference/preference_api.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <utility> | 10 #include <utility> |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 | 335 |
336 // Mapping from extension pref keys to browser pref keys and permissions. | 336 // Mapping from extension pref keys to browser pref keys and permissions. |
337 PrefMap mapping_; | 337 PrefMap mapping_; |
338 | 338 |
339 // Mapping from browser pref keys to extension event names and permissions. | 339 // Mapping from browser pref keys to extension event names and permissions. |
340 PrefMap event_mapping_; | 340 PrefMap event_mapping_; |
341 | 341 |
342 // Mapping from browser pref keys to transformers. | 342 // Mapping from browser pref keys to transformers. |
343 std::map<std::string, PrefTransformerInterface*> transformers_; | 343 std::map<std::string, PrefTransformerInterface*> transformers_; |
344 | 344 |
345 scoped_ptr<PrefTransformerInterface> identity_transformer_; | 345 std::unique_ptr<PrefTransformerInterface> identity_transformer_; |
346 | 346 |
347 DISALLOW_COPY_AND_ASSIGN(PrefMapping); | 347 DISALLOW_COPY_AND_ASSIGN(PrefMapping); |
348 }; | 348 }; |
349 | 349 |
350 } // namespace | 350 } // namespace |
351 | 351 |
352 PreferenceEventRouter::PreferenceEventRouter(Profile* profile) | 352 PreferenceEventRouter::PreferenceEventRouter(Profile* profile) |
353 : profile_(profile) { | 353 : profile_(profile) { |
354 registrar_.Init(profile_->GetPrefs()); | 354 registrar_.Init(profile_->GetPrefs()); |
355 incognito_registrar_.Init(profile_->GetOffTheRecordPrefs()); | 355 incognito_registrar_.Init(profile_->GetOffTheRecordPrefs()); |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 if (!ValidateBrowserPref( | 631 if (!ValidateBrowserPref( |
632 pref_key, PreferenceFunction::PERMISSION_TYPE_READ, &browser_pref)) { | 632 pref_key, PreferenceFunction::PERMISSION_TYPE_READ, &browser_pref)) { |
633 return false; | 633 return false; |
634 } | 634 } |
635 PrefService* prefs = incognito ? GetProfile()->GetOffTheRecordPrefs() | 635 PrefService* prefs = incognito ? GetProfile()->GetOffTheRecordPrefs() |
636 : GetProfile()->GetPrefs(); | 636 : GetProfile()->GetPrefs(); |
637 const PrefService::Preference* pref = | 637 const PrefService::Preference* pref = |
638 prefs->FindPreference(browser_pref.c_str()); | 638 prefs->FindPreference(browser_pref.c_str()); |
639 CHECK(pref); | 639 CHECK(pref); |
640 | 640 |
641 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue); | 641 std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue); |
642 | 642 |
643 // Retrieve level of control. | 643 // Retrieve level of control. |
644 std::string level_of_control = helpers::GetLevelOfControl( | 644 std::string level_of_control = helpers::GetLevelOfControl( |
645 GetProfile(), extension_id(), browser_pref, incognito); | 645 GetProfile(), extension_id(), browser_pref, incognito); |
646 result->SetString(keys::kLevelOfControl, level_of_control); | 646 result->SetString(keys::kLevelOfControl, level_of_control); |
647 | 647 |
648 // Retrieve pref value. | 648 // Retrieve pref value. |
649 PrefTransformerInterface* transformer = | 649 PrefTransformerInterface* transformer = |
650 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); | 650 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); |
651 base::Value* transformed_value = | 651 base::Value* transformed_value = |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
723 ExtensionPrefs* prefs = ExtensionPrefs::Get(GetProfile()); | 723 ExtensionPrefs* prefs = ExtensionPrefs::Get(GetProfile()); |
724 const PrefService::Preference* pref = | 724 const PrefService::Preference* pref = |
725 prefs->pref_service()->FindPreference(browser_pref.c_str()); | 725 prefs->pref_service()->FindPreference(browser_pref.c_str()); |
726 CHECK(pref); | 726 CHECK(pref); |
727 | 727 |
728 // Validate new value. | 728 // Validate new value. |
729 PrefTransformerInterface* transformer = | 729 PrefTransformerInterface* transformer = |
730 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); | 730 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); |
731 std::string error; | 731 std::string error; |
732 bool bad_message = false; | 732 bool bad_message = false; |
733 scoped_ptr<base::Value> browser_pref_value( | 733 std::unique_ptr<base::Value> browser_pref_value( |
734 transformer->ExtensionToBrowserPref(value, &error, &bad_message)); | 734 transformer->ExtensionToBrowserPref(value, &error, &bad_message)); |
735 if (!browser_pref_value) { | 735 if (!browser_pref_value) { |
736 error_ = error; | 736 error_ = error; |
737 bad_message_ = bad_message; | 737 bad_message_ = bad_message; |
738 return false; | 738 return false; |
739 } | 739 } |
740 EXTENSION_FUNCTION_VALIDATE(browser_pref_value->GetType() == pref->GetType()); | 740 EXTENSION_FUNCTION_VALIDATE(browser_pref_value->GetType() == pref->GetType()); |
741 | 741 |
742 // Validate also that the stored value can be converted back by the | 742 // Validate also that the stored value can be converted back by the |
743 // transformer. | 743 // transformer. |
744 scoped_ptr<base::Value> extensionPrefValue( | 744 std::unique_ptr<base::Value> extensionPrefValue( |
745 transformer->BrowserToExtensionPref(browser_pref_value.get())); | 745 transformer->BrowserToExtensionPref(browser_pref_value.get())); |
746 if (!extensionPrefValue) { | 746 if (!extensionPrefValue) { |
747 error_ = ErrorUtils::FormatErrorMessage(kConversionErrorMessage, | 747 error_ = ErrorUtils::FormatErrorMessage(kConversionErrorMessage, |
748 pref->name()); | 748 pref->name()); |
749 bad_message_ = true; | 749 bad_message_ = true; |
750 return false; | 750 return false; |
751 } | 751 } |
752 | 752 |
753 PreferenceAPI::Get(GetProfile())->SetExtensionControlledPref( | 753 PreferenceAPI::Get(GetProfile())->SetExtensionControlledPref( |
754 extension_id(), browser_pref, scope, browser_pref_value.release()); | 754 extension_id(), browser_pref, scope, browser_pref_value.release()); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
793 pref_key, PreferenceFunction::PERMISSION_TYPE_WRITE, &browser_pref)) { | 793 pref_key, PreferenceFunction::PERMISSION_TYPE_WRITE, &browser_pref)) { |
794 return false; | 794 return false; |
795 } | 795 } |
796 | 796 |
797 PreferenceAPI::Get(GetProfile()) | 797 PreferenceAPI::Get(GetProfile()) |
798 ->RemoveExtensionControlledPref(extension_id(), browser_pref, scope); | 798 ->RemoveExtensionControlledPref(extension_id(), browser_pref, scope); |
799 return true; | 799 return true; |
800 } | 800 } |
801 | 801 |
802 } // namespace extensions | 802 } // namespace extensions |
OLD | NEW |