| 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 |