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 ae65a58ec40a63222adcd15141b560a92dcc3da3..bfc4f50a6c30c9fcd46bfb67b2912836a8fb647c 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) { |
+ 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() { |