Chromium Code Reviews| Index: chrome/browser/extensions/extension_preference_api.cc |
| diff --git a/chrome/browser/extensions/extension_preference_api.cc b/chrome/browser/extensions/extension_preference_api.cc |
| index b297905bbeaba9a27852db8a3c682ae70c994ac9..1cbac95104c202d85ff4f6d0952ad84201c387f4 100644 |
| --- a/chrome/browser/extensions/extension_preference_api.cc |
| +++ b/chrome/browser/extensions/extension_preference_api.cc |
| @@ -58,15 +58,15 @@ const char kPermissionErrorMessage[] = |
| "Be sure to declare in your manifest what permissions you need."; |
| PrefMappingEntry kPrefMapping[] = { |
| - { "blockThirdPartyCookies", |
| + { "thirdPartyCookiesAllowed", |
| prefs::kBlockThirdPartyCookies, |
| Extension::kContentSettingsPermission |
| }, |
| - { "enableReferrers", |
| + { "referrersEnabled", |
| prefs::kEnableReferrers, |
| Extension::kContentSettingsPermission |
| }, |
| - { "enableHyperlinkAuditing", |
| + { "hyperlinkAuditingEnabled", |
| prefs::kEnableHyperlinkAuditing, |
| Extension::kContentSettingsPermission |
| }, |
| @@ -78,9 +78,6 @@ PrefMappingEntry kPrefMapping[] = { |
| class IdentityPrefTransformer : public PrefTransformerInterface { |
| public: |
| - IdentityPrefTransformer() { } |
| - virtual ~IdentityPrefTransformer() { } |
| - |
| virtual Value* ExtensionToBrowserPref(const Value* extension_pref, |
| std::string* error, |
| bool* bad_message) { |
| @@ -92,6 +89,27 @@ class IdentityPrefTransformer : public PrefTransformerInterface { |
| } |
| }; |
| +class InvertBooleanTransformer : public PrefTransformerInterface { |
| + public: |
| + virtual Value* ExtensionToBrowserPref(const Value* extension_pref, |
| + std::string* error, |
| + bool* bad_message) { |
| + return InvertBooleanValue(extension_pref); |
| + } |
| + |
| + virtual Value* BrowserToExtensionPref(const Value* browser_pref) { |
| + return InvertBooleanValue(browser_pref); |
| + } |
| + |
| + private: |
| + static Value* InvertBooleanValue(const Value* value) { |
|
jochen (gone - plz use gerrit)
2011/06/01 08:46:43
why static and private member? either should be en
Bernhard Bauer
2011/06/01 16:48:48
Why not? :-) It's static because it doesn't use ob
|
| + bool bool_value = false; |
| + bool result = value->GetAsBoolean(&bool_value); |
| + DCHECK(result); |
| + return Value::CreateBooleanValue(!bool_value); |
| + } |
| +}; |
| + |
| // Returns a string constant (defined in the API) indicating the level of |
| // control this extension has over the specified preference. |
| const char* GetLevelOfControl( |
| @@ -190,6 +208,8 @@ class PrefMapping { |
| DCHECK_EQ(arraysize(kPrefMapping), mapping_.size()); |
| DCHECK_EQ(arraysize(kPrefMapping), event_mapping_.size()); |
| RegisterPrefTransformer(prefs::kProxy, new ProxyPrefTransformer()); |
| + RegisterPrefTransformer(prefs::kBlockThirdPartyCookies, |
| + new InvertBooleanTransformer()); |
| } |
| ~PrefMapping() { |