Chromium Code Reviews| Index: chrome/common/extensions/features/permission_feature.cc |
| diff --git a/chrome/common/extensions/features/permission_feature.cc b/chrome/common/extensions/features/permission_feature.cc |
| index b6085d22b122464faea00e1cb1715286d29ee01e..572fc5bf2695129de09e0f4e9c6e91301a78ab81 100644 |
| --- a/chrome/common/extensions/features/permission_feature.cc |
| +++ b/chrome/common/extensions/features/permission_feature.cc |
| @@ -4,6 +4,8 @@ |
| #include "chrome/common/extensions/features/permission_feature.h" |
| +#include "chrome/common/extensions/permissions/permission_set.h" |
| + |
| namespace extensions { |
| PermissionFeature::PermissionFeature() { |
| @@ -15,15 +17,19 @@ PermissionFeature::~PermissionFeature() { |
| Feature::Availability PermissionFeature::IsAvailableToContext( |
| const Extension* extension, |
| Feature::Context context, |
| + const GURL& url, |
| Feature::Platform platform) const { |
| Availability availability = SimpleFeature::IsAvailableToContext(extension, |
| context, |
| + url, |
| platform); |
| if (!availability.is_available()) |
| return availability; |
| - if (!extension->HasAPIPermission(name())) |
| + if (extension && !extension->HasAPIPermission(name()) && |
| + !extension->optional_permission_set()->HasAnyAccessToAPI(name())) { |
|
not at google - send to devlin
2013/03/22 23:04:30
could you explain this in a comment?
|
| return CreateAvailability(NOT_PRESENT, extension->GetType()); |
| + } |
| return CreateAvailability(IS_AVAILABLE); |
| } |