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 <memory> | 10 #include <memory> |
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
730 | 730 |
731 // Validate new value. | 731 // Validate new value. |
732 PrefTransformerInterface* transformer = | 732 PrefTransformerInterface* transformer = |
733 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); | 733 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); |
734 std::string error; | 734 std::string error; |
735 bool bad_message = false; | 735 bool bad_message = false; |
736 std::unique_ptr<base::Value> browser_pref_value( | 736 std::unique_ptr<base::Value> browser_pref_value( |
737 transformer->ExtensionToBrowserPref(value, &error, &bad_message)); | 737 transformer->ExtensionToBrowserPref(value, &error, &bad_message)); |
738 if (!browser_pref_value) { | 738 if (!browser_pref_value) { |
739 error_ = error; | 739 error_ = error; |
740 bad_message_ = bad_message; | 740 set_bad_message(bad_message); |
741 return false; | 741 return false; |
742 } | 742 } |
743 EXTENSION_FUNCTION_VALIDATE(browser_pref_value->GetType() == pref->GetType()); | 743 EXTENSION_FUNCTION_VALIDATE(browser_pref_value->GetType() == pref->GetType()); |
744 | 744 |
745 // Validate also that the stored value can be converted back by the | 745 // Validate also that the stored value can be converted back by the |
746 // transformer. | 746 // transformer. |
747 std::unique_ptr<base::Value> extensionPrefValue( | 747 std::unique_ptr<base::Value> extensionPrefValue( |
748 transformer->BrowserToExtensionPref(browser_pref_value.get())); | 748 transformer->BrowserToExtensionPref(browser_pref_value.get())); |
749 if (!extensionPrefValue) { | 749 if (!extensionPrefValue) { |
750 error_ = ErrorUtils::FormatErrorMessage(kConversionErrorMessage, | 750 error_ = ErrorUtils::FormatErrorMessage(kConversionErrorMessage, |
751 pref->name()); | 751 pref->name()); |
752 bad_message_ = true; | 752 set_bad_message(true); |
753 return false; | 753 return false; |
754 } | 754 } |
755 | 755 |
756 PreferenceAPI::Get(GetProfile())->SetExtensionControlledPref( | 756 PreferenceAPI::Get(GetProfile())->SetExtensionControlledPref( |
757 extension_id(), browser_pref, scope, browser_pref_value.release()); | 757 extension_id(), browser_pref, scope, browser_pref_value.release()); |
758 return true; | 758 return true; |
759 } | 759 } |
760 | 760 |
761 ClearPreferenceFunction::~ClearPreferenceFunction() { } | 761 ClearPreferenceFunction::~ClearPreferenceFunction() { } |
762 | 762 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
796 pref_key, PreferenceFunction::PERMISSION_TYPE_WRITE, &browser_pref)) { | 796 pref_key, PreferenceFunction::PERMISSION_TYPE_WRITE, &browser_pref)) { |
797 return false; | 797 return false; |
798 } | 798 } |
799 | 799 |
800 PreferenceAPI::Get(GetProfile()) | 800 PreferenceAPI::Get(GetProfile()) |
801 ->RemoveExtensionControlledPref(extension_id(), browser_pref, scope); | 801 ->RemoveExtensionControlledPref(extension_id(), browser_pref, scope); |
802 return true; | 802 return true; |
803 } | 803 } |
804 | 804 |
805 } // namespace extensions | 805 } // namespace extensions |
OLD | NEW |