| Index: extensions/common/permissions/permissions_data.cc
|
| diff --git a/extensions/common/permissions/permissions_data.cc b/extensions/common/permissions/permissions_data.cc
|
| index ea66b6ccd66ddc8bd55093c40a699dda27e805db..53c188092392cc9ecda15a923b383494552e7815 100644
|
| --- a/extensions/common/permissions/permissions_data.cc
|
| +++ b/extensions/common/permissions/permissions_data.cc
|
| @@ -13,6 +13,7 @@
|
| #include "extensions/common/manifest.h"
|
| #include "extensions/common/manifest_constants.h"
|
| #include "extensions/common/manifest_handlers/permissions_parser.h"
|
| +#include "extensions/common/permissions/api_permission.h"
|
| #include "extensions/common/permissions/permission_message_provider.h"
|
| #include "extensions/common/switches.h"
|
| #include "extensions/common/url_pattern_set.h"
|
| @@ -89,9 +90,13 @@ bool PermissionsData::IsRestrictedUrl(const GURL& document_url,
|
| if (!URLPattern::IsValidSchemeForExtensions(document_url.scheme()) &&
|
| document_url.spec() != url::kAboutBlankURL) {
|
| if (error) {
|
| - *error = ErrorUtils::FormatErrorMessage(
|
| - manifest_errors::kCannotAccessPage,
|
| - document_url.spec());
|
| + if (extension->permissions_data()->active_permissions().HasAPIPermission(
|
| + APIPermission::kTab)) {
|
| + *error = ErrorUtils::FormatErrorMessage(
|
| + manifest_errors::kCannotAccessPageWithUrl, document_url.spec());
|
| + } else {
|
| + *error = manifest_errors::kCannotAccessPage;
|
| + }
|
| }
|
| return true;
|
| }
|
| @@ -349,9 +354,15 @@ PermissionsData::AccessType PermissionsData::CanRunOnPage(
|
| return ACCESS_WITHHELD;
|
|
|
| if (error) {
|
| - *error = ErrorUtils::FormatErrorMessage(manifest_errors::kCannotAccessPage,
|
| - document_url.spec());
|
| + if (extension->permissions_data()->active_permissions().HasAPIPermission(
|
| + APIPermission::kTab)) {
|
| + *error = ErrorUtils::FormatErrorMessage(
|
| + manifest_errors::kCannotAccessPageWithUrl, document_url.spec());
|
| + } else {
|
| + *error = manifest_errors::kCannotAccessPage;
|
| + }
|
| }
|
| +
|
| return ACCESS_DENIED;
|
| }
|
|
|
|
|