Index: chrome/common/extensions/permissions/permission_set.cc |
diff --git a/chrome/common/extensions/permissions/permission_set.cc b/chrome/common/extensions/permissions/permission_set.cc |
index 84609c51a7796e1a9ded5d9d21fa89cf3dbc6203..81f5ce4196a0692ebf668e9cb4e33d2ad3b7bc41 100644 |
--- a/chrome/common/extensions/permissions/permission_set.cc |
+++ b/chrome/common/extensions/permissions/permission_set.cc |
@@ -197,6 +197,23 @@ PermissionSet* PermissionSet::CreateUnion( |
return new PermissionSet(apis, explicit_hosts, scriptable_hosts); |
} |
+// static |
+PermissionSet* PermissionSet::ExcludeNotInManifestPermissions( |
+ const PermissionSet* set) { |
+ if (!set) |
+ return new PermissionSet(); |
+ |
+ APIPermissionSet apis; |
+ for (APIPermissionSet::const_iterator i = set->apis().begin(); |
+ i != set->apis().end(); ++i) { |
+ if (!i->ManifestEntryForbidden()) |
+ apis.insert(i->Clone()); |
+ } |
+ |
+ return new PermissionSet( |
+ apis, set->explicit_hosts(), set->scriptable_hosts()); |
+} |
+ |
bool PermissionSet::operator==( |
const PermissionSet& rhs) const { |
return apis_ == rhs.apis_ && |