| Index: extensions/browser/extension_prefs.cc
|
| diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc
|
| index efe3ba419ecf4e82d62b4b8ff5ac80204abbf91b..b83d22316295956b8de9e2a7adb54840a3f9e611 100644
|
| --- a/extensions/browser/extension_prefs.cc
|
| +++ b/extensions/browser/extension_prefs.cc
|
| @@ -142,6 +142,7 @@ const char kPrefUserDraggedApp[] = "user_dragged_app_ntp";
|
| // permissions because they may differ from those defined in the manifest.
|
| const char kPrefActivePermissions[] = "active_permissions";
|
| const char kPrefGrantedPermissions[] = "granted_permissions";
|
| +const char kPrefPersistedPermissions[] = "persisted_permissions";
|
|
|
| // The preference names for PermissionSet values.
|
| const char kPrefAPIs[] = "api";
|
| @@ -1133,6 +1134,28 @@ void ExtensionPrefs::SetActivePermissions(
|
| extension_id, kPrefActivePermissions, permissions);
|
| }
|
|
|
| +PermissionSet* ExtensionPrefs::GetPersistedPermissions(
|
| + const std::string& extension_id) {
|
| + CHECK(Extension::IdIsValid(extension_id));
|
| + return ReadPrefAsPermissionSet(extension_id, kPrefPersistedPermissions);
|
| +}
|
| +
|
| +void ExtensionPrefs::AddPersistedPermission(const std::string& extension_id,
|
| + const PermissionSet* permissions) {
|
| + scoped_refptr<PermissionSet> old_permissions(
|
| + GetPersistedPermissions(extension_id));
|
| + SetExtensionPrefPermissionSet(
|
| + extension_id,
|
| + kPrefPersistedPermissions,
|
| + PermissionSet::CreateUnion(old_permissions.get(), permissions));
|
| +}
|
| +
|
| +void ExtensionPrefs::ClearPersistedPermissions(
|
| + const std::string& extension_id) {
|
| + SetExtensionPrefPermissionSet(
|
| + extension_id, kPrefPersistedPermissions, new PermissionSet());
|
| +}
|
| +
|
| void ExtensionPrefs::SetExtensionRunning(const std::string& extension_id,
|
| bool is_running) {
|
| base::Value* value = new base::FundamentalValue(is_running);
|
|
|