Index: chrome/browser/extensions/api/permissions/permissions_api.cc |
diff --git a/chrome/browser/extensions/api/permissions/permissions_api.cc b/chrome/browser/extensions/api/permissions/permissions_api.cc |
index 9ffa02e446cc9185c127e8f5c31c42b73077e65b..c395b9d1de9f52106bbefa36b562fd89bc744e2c 100644 |
--- a/chrome/browser/extensions/api/permissions/permissions_api.cc |
+++ b/chrome/browser/extensions/api/permissions/permissions_api.cc |
@@ -169,9 +169,16 @@ bool RequestPermissionsFunction::RunImpl() { |
} |
} |
+ // Filter out permissions that do not need to be listed in the optional |
+ // section of the manifest. |
+ scoped_refptr<extensions::PermissionSet> |
+ manifest_required_requested_permissions = |
+ PermissionSet::ExcludeNotInManifestPermissions( |
+ requested_permissions_.get()); |
+ |
// The requested permissions must be defined as optional in the manifest. |
if (!GetExtension()->optional_permission_set()->Contains( |
- *requested_permissions_)) { |
+ *manifest_required_requested_permissions)) { |
error_ = kNotInOptionalPermissionsError; |
results_ = Request::Results::Create(false); |
return false; |