| Index: chrome/browser/extensions/extension_prefs.cc
|
| diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc
|
| index 176888080a6e9ea943a7af87f9e9cd241939848e..19e01dba7b8b63d237b2fd84d81476afcc6ccb58 100644
|
| --- a/chrome/browser/extensions/extension_prefs.cc
|
| +++ b/chrome/browser/extensions/extension_prefs.cc
|
| @@ -936,6 +936,24 @@ void ExtensionPrefs::AddGrantedPermissions(
|
| extension_id, kPrefGrantedPermissions, new_perms.get());
|
| }
|
|
|
| +void ExtensionPrefs::RemoveGrantedPermissions(
|
| + const std::string& extension_id,
|
| + const PermissionSet* permissions) {
|
| + CHECK(Extension::IdIsValid(extension_id));
|
| +
|
| + scoped_refptr<PermissionSet> granted_permissions(
|
| + GetGrantedPermissions(extension_id));
|
| +
|
| + // The new granted permissions are the difference of the already granted
|
| + // permissions and the newly ungranted permissions.
|
| + scoped_refptr<PermissionSet> new_perms(
|
| + PermissionSet::CreateDifference(
|
| + granted_permissions.get(), permissions));
|
| +
|
| + SetExtensionPrefPermissionSet(
|
| + extension_id, kPrefGrantedPermissions, new_perms.get());
|
| +}
|
| +
|
| PermissionSet* ExtensionPrefs::GetActivePermissions(
|
| const std::string& extension_id) {
|
| CHECK(Extension::IdIsValid(extension_id));
|
|
|