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

Side by Side Diff: chrome/browser/extensions/api/preference/preference_api.cc

Issue 2360073002: [Extensions] Isolate ExtensionFunction results_ and error_ (Closed)
Patch Set: lazyboy's Created 4 years, 2 months 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 (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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698