summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorrdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-06 05:04:36 +0000
committerrdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-06 05:04:36 +0000
commita6910e7458ad8ce393b97696307230ceb12a6b77 (patch)
tree24afa5b7b8a8c41a24755007e747a67b084d744f /extensions
parentbebb1a87602202e572d4a817d5aa047d32a70cf0 (diff)
downloadchromium_src-a6910e7458ad8ce393b97696307230ceb12a6b77.zip
chromium_src-a6910e7458ad8ce393b97696307230ceb12a6b77.tar.gz
chromium_src-a6910e7458ad8ce393b97696307230ceb12a6b77.tar.bz2
Remove PermissionsData::ForExtension() completely
There's no reason to have this. It was originally because PermissionsData didn't really belong on Extension (and was to be taken off), but now that PermissionsData is refactored to only include active permissions, it belongs on the extension object. TBR=ben@chromium.org (c/b/ui - simple refactor, no functional changes) TBR=thestig@chromium.org (c/b/media_galleries - simple refactor, no functional changes) BUG=379356 Review URL: https://codereview.chromium.org/315573003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275332 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'extensions')
-rw-r--r--extensions/browser/api/socket/socket_api.cc28
-rw-r--r--extensions/browser/api/usb/usb_api.cc12
-rw-r--r--extensions/common/extension.cc6
-rw-r--r--extensions/common/extension_messages.cc5
-rw-r--r--extensions/common/features/permission_feature.cc3
-rw-r--r--extensions/common/permissions/permissions_data.cc8
-rw-r--r--extensions/common/permissions/permissions_data.h3
-rw-r--r--extensions/common/permissions/permissions_data_unittest.cc143
-rw-r--r--extensions/renderer/dispatcher.cc4
-rw-r--r--extensions/renderer/script_injection.cc22
-rw-r--r--extensions/renderer/user_script_scheduler.cc16
11 files changed, 101 insertions, 149 deletions
diff --git a/extensions/browser/api/socket/socket_api.cc b/extensions/browser/api/socket/socket_api.cc
index 62d7718..3225827 100644
--- a/extensions/browser/api/socket/socket_api.cc
+++ b/extensions/browser/api/socket/socket_api.cc
@@ -210,8 +210,8 @@ void SocketConnectFunction::AsyncWorkStart() {
}
SocketPermission::CheckParam param(operation_type, hostname_, port_);
- if (!PermissionsData::ForExtension(GetExtension())
- ->CheckAPIPermissionWithParam(APIPermission::kSocket, &param)) {
+ if (!GetExtension()->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kSocket, &param)) {
error_ = kPermissionError;
SetResult(new base::FundamentalValue(-1));
AsyncWorkCompleted();
@@ -275,8 +275,8 @@ void SocketBindFunction::Work() {
if (socket->GetSocketType() == Socket::TYPE_UDP) {
SocketPermission::CheckParam param(
SocketPermissionRequest::UDP_BIND, address_, port_);
- if (!PermissionsData::ForExtension(GetExtension())
- ->CheckAPIPermissionWithParam(APIPermission::kSocket, &param)) {
+ if (!GetExtension()->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kSocket, &param)) {
error_ = kPermissionError;
SetResult(new base::FundamentalValue(result));
return;
@@ -308,8 +308,8 @@ void SocketListenFunction::Work() {
if (socket) {
SocketPermission::CheckParam param(
SocketPermissionRequest::TCP_LISTEN, params_->address, params_->port);
- if (!PermissionsData::ForExtension(GetExtension())
- ->CheckAPIPermissionWithParam(APIPermission::kSocket, &param)) {
+ if (!GetExtension()->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kSocket, &param)) {
error_ = kPermissionError;
SetResult(new base::FundamentalValue(result));
return;
@@ -510,8 +510,8 @@ void SocketSendToFunction::AsyncWorkStart() {
if (socket_->GetSocketType() == Socket::TYPE_UDP) {
SocketPermission::CheckParam param(
SocketPermissionRequest::UDP_SEND_TO, hostname_, port_);
- if (!PermissionsData::ForExtension(GetExtension())
- ->CheckAPIPermissionWithParam(APIPermission::kSocket, &param)) {
+ if (!GetExtension()->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kSocket, &param)) {
error_ = kPermissionError;
SetResult(new base::FundamentalValue(-1));
AsyncWorkCompleted();
@@ -724,8 +724,8 @@ void SocketJoinGroupFunction::Work() {
kWildcardAddress,
kWildcardPort);
- if (!PermissionsData::ForExtension(GetExtension())
- ->CheckAPIPermissionWithParam(APIPermission::kSocket, &param)) {
+ if (!GetExtension()->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kSocket, &param)) {
error_ = kPermissionError;
SetResult(new base::FundamentalValue(result));
return;
@@ -768,8 +768,8 @@ void SocketLeaveGroupFunction::Work() {
SocketPermissionRequest::UDP_MULTICAST_MEMBERSHIP,
kWildcardAddress,
kWildcardPort);
- if (!PermissionsData::ForExtension(GetExtension())
- ->CheckAPIPermissionWithParam(APIPermission::kSocket, &param)) {
+ if (!GetExtension()->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kSocket, &param)) {
error_ = kPermissionError;
SetResult(new base::FundamentalValue(result));
return;
@@ -875,8 +875,8 @@ void SocketGetJoinedGroupsFunction::Work() {
SocketPermissionRequest::UDP_MULTICAST_MEMBERSHIP,
kWildcardAddress,
kWildcardPort);
- if (!PermissionsData::ForExtension(GetExtension())
- ->CheckAPIPermissionWithParam(APIPermission::kSocket, &param)) {
+ if (!GetExtension()->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kSocket, &param)) {
error_ = kPermissionError;
SetResult(new base::FundamentalValue(result));
return;
diff --git a/extensions/browser/api/usb/usb_api.cc b/extensions/browser/api/usb/usb_api.cc
index 8bf2779..b888a2b 100644
--- a/extensions/browser/api/usb/usb_api.cc
+++ b/extensions/browser/api/usb/usb_api.cc
@@ -422,8 +422,8 @@ scoped_refptr<UsbDevice> UsbAsyncApiFunction::GetDeviceOrOrCompleteWithError(
const uint16_t product_id = input_device.product_id;
UsbDevicePermission::CheckParam param(
vendor_id, product_id, UsbDevicePermissionData::UNSPECIFIED_INTERFACE);
- if (!PermissionsData::ForExtension(GetExtension())
- ->CheckAPIPermissionWithParam(APIPermission::kUsbDevice, &param)) {
+ if (!GetExtension()->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kUsbDevice, &param)) {
LOG(WARNING) << "Insufficient permissions to access device.";
CompleteWithError(kErrorPermissionDenied);
return NULL;
@@ -553,8 +553,8 @@ void UsbFindDevicesFunction::AsyncWorkStart() {
? *parameters_->options.interface_id.get()
: UsbDevicePermissionData::ANY_INTERFACE;
UsbDevicePermission::CheckParam param(vendor_id, product_id, interface_id);
- if (!PermissionsData::ForExtension(GetExtension())
- ->CheckAPIPermissionWithParam(APIPermission::kUsbDevice, &param)) {
+ if (!GetExtension()->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kUsbDevice, &param)) {
LOG(WARNING) << "Insufficient permissions to access device.";
CompleteWithError(kErrorPermissionDenied);
return;
@@ -629,8 +629,8 @@ void UsbGetDevicesFunction::AsyncWorkStart() {
const uint16_t product_id = parameters_->options.product_id;
UsbDevicePermission::CheckParam param(
vendor_id, product_id, UsbDevicePermissionData::UNSPECIFIED_INTERFACE);
- if (!PermissionsData::ForExtension(GetExtension())
- ->CheckAPIPermissionWithParam(APIPermission::kUsbDevice, &param)) {
+ if (!GetExtension()->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kUsbDevice, &param)) {
LOG(WARNING) << "Insufficient permissions to access device.";
CompleteWithError(kErrorPermissionDenied);
return;
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
index 91e6f2e..9179d46 100644
--- a/extensions/common/extension.cc
+++ b/extensions/common/extension.cc
@@ -288,15 +288,15 @@ GURL Extension::GetBaseURLFromExtensionId(const std::string& extension_id) {
}
bool Extension::HasAPIPermission(APIPermission::ID permission) const {
- return PermissionsData::ForExtension(this)->HasAPIPermission(permission);
+ return permissions_data_->HasAPIPermission(permission);
}
bool Extension::HasAPIPermission(const std::string& permission_name) const {
- return PermissionsData::ForExtension(this)->HasAPIPermission(permission_name);
+ return permissions_data_->HasAPIPermission(permission_name);
}
scoped_refptr<const PermissionSet> Extension::GetActivePermissions() const {
- return PermissionsData::ForExtension(this)->active_permissions();
+ return permissions_data_->active_permissions();
}
bool Extension::ShowConfigureContextMenus() const {
diff --git a/extensions/common/extension_messages.cc b/extensions/common/extension_messages.cc
index afba3af..ae1c180 100644
--- a/extensions/common/extension_messages.cc
+++ b/extensions/common/extension_messages.cc
@@ -47,9 +47,8 @@ scoped_refptr<Extension> ExtensionMsg_Loaded_Params::ConvertToExtension(
scoped_refptr<Extension> extension =
Extension::Create(path, location, *manifest, creation_flags, error);
if (extension.get()) {
- extensions::PermissionsData::ForExtension(extension)
- ->SetActivePermissions(new PermissionSet(
- apis, manifest_permissions, explicit_hosts, scriptable_hosts));
+ extension->permissions_data()->SetActivePermissions(new PermissionSet(
+ apis, manifest_permissions, explicit_hosts, scriptable_hosts));
}
return extension;
}
diff --git a/extensions/common/features/permission_feature.cc b/extensions/common/features/permission_feature.cc
index 7be136d..82f676bf 100644
--- a/extensions/common/features/permission_feature.cc
+++ b/extensions/common/features/permission_feature.cc
@@ -27,8 +27,7 @@ Feature::Availability PermissionFeature::IsAvailableToContext(
if (!availability.is_available())
return availability;
- if (extension &&
- !PermissionsData::ForExtension(extension)->HasAPIPermission(name()))
+ if (extension && !extension->permissions_data()->HasAPIPermission(name()))
return CreateAvailability(NOT_PRESENT, extension->GetType());
return CreateAvailability(IS_AVAILABLE);
diff --git a/extensions/common/permissions/permissions_data.cc b/extensions/common/permissions/permissions_data.cc
index 12dfaa6..a624826 100644
--- a/extensions/common/permissions/permissions_data.cc
+++ b/extensions/common/permissions/permissions_data.cc
@@ -53,14 +53,6 @@ void PermissionsData::SetPolicyDelegate(PolicyDelegate* delegate) {
}
// static
-const PermissionsData* PermissionsData::ForExtension(
- const Extension* extension) {
- // TODO(rdevlin.cronin): Figure out what we're doing with this (i.e. whether
- // or not we want to expose PermissionsData on the extension).
- return extension->permissions_data();
-}
-
-// static
bool PermissionsData::CanSilentlyIncreasePermissions(
const Extension* extension) {
return extension->location() != Manifest::INTERNAL;
diff --git a/extensions/common/permissions/permissions_data.h b/extensions/common/permissions/permissions_data.h
index 57c6880..8b55c85 100644
--- a/extensions/common/permissions/permissions_data.h
+++ b/extensions/common/permissions/permissions_data.h
@@ -57,9 +57,6 @@ class PermissionsData {
PermissionsData(const Extension* extension);
virtual ~PermissionsData();
- // Return the PermissionsData associated with the given |extension|.
- static const PermissionsData* ForExtension(const Extension* extension);
-
// Returns true if the |extension| can silently increase its permission level.
// Users must approve permissions for unpacked and packed extensions in the
// following situations:
diff --git a/extensions/common/permissions/permissions_data_unittest.cc b/extensions/common/permissions/permissions_data_unittest.cc
index ff5ca86..f7fad22 100644
--- a/extensions/common/permissions/permissions_data_unittest.cc
+++ b/extensions/common/permissions/permissions_data_unittest.cc
@@ -46,8 +46,8 @@ bool CheckSocketPermission(
const char* host,
int port) {
SocketPermission::CheckParam param(type, host, port);
- return PermissionsData::ForExtension(extension)
- ->CheckAPIPermissionWithParam(APIPermission::kSocket, &param);
+ return extension->permissions_data()->CheckAPIPermissionWithParam(
+ APIPermission::kSocket, &param);
}
// Creates and returns an extension with the given |id|, |host_permissions|, and
@@ -81,10 +81,10 @@ bool RequiresActionForScriptExecution(const std::string& extension_id,
GetExtensionWithHostPermission(extension_id,
host_permissions,
location);
- return PermissionsData::ForExtension(extension)
- ->RequiresActionForScriptExecution(extension,
- -1, // Ignore tab id for these.
- GURL::EmptyGURL());
+ return extension->permissions_data()->RequiresActionForScriptExecution(
+ extension,
+ -1, // Ignore tab id for these.
+ GURL::EmptyGURL());
}
} // namespace
@@ -95,52 +95,42 @@ TEST(ExtensionPermissionsTest, EffectiveHostPermissions) {
extension = LoadManifest("effective_host_permissions", "empty.json");
EXPECT_EQ(0u,
- PermissionsData::ForExtension(extension)
+ extension->permissions_data()
->GetEffectiveHostPermissions()
.patterns()
.size());
EXPECT_FALSE(hosts.MatchesURL(GURL("http://www.google.com")));
- EXPECT_FALSE(
- PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
+ EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
extension = LoadManifest("effective_host_permissions", "one_host.json");
- hosts =
- PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
+ hosts = extension->permissions_data()->GetEffectiveHostPermissions();
EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com")));
EXPECT_FALSE(hosts.MatchesURL(GURL("https://www.google.com")));
- EXPECT_FALSE(
- PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
+ EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
extension = LoadManifest("effective_host_permissions",
"one_host_wildcard.json");
- hosts =
- PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
+ hosts = extension->permissions_data()->GetEffectiveHostPermissions();
EXPECT_TRUE(hosts.MatchesURL(GURL("http://google.com")));
EXPECT_TRUE(hosts.MatchesURL(GURL("http://foo.google.com")));
- EXPECT_FALSE(
- PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
+ EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
extension = LoadManifest("effective_host_permissions", "two_hosts.json");
- hosts =
- PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
+ hosts = extension->permissions_data()->GetEffectiveHostPermissions();
EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com")));
EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.reddit.com")));
- EXPECT_FALSE(
- PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
+ EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
extension = LoadManifest("effective_host_permissions",
"https_not_considered.json");
- hosts =
- PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
+ hosts = extension->permissions_data()->GetEffectiveHostPermissions();
EXPECT_TRUE(hosts.MatchesURL(GURL("http://google.com")));
EXPECT_TRUE(hosts.MatchesURL(GURL("https://google.com")));
- EXPECT_FALSE(
- PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
+ EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
extension = LoadManifest("effective_host_permissions",
"two_content_scripts.json");
- hosts =
- PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
+ hosts = extension->permissions_data()->GetEffectiveHostPermissions();
EXPECT_TRUE(hosts.MatchesURL(GURL("http://google.com")));
EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.reddit.com")));
EXPECT_TRUE(extension->GetActivePermissions()->HasEffectiveAccessToURL(
@@ -148,34 +138,27 @@ TEST(ExtensionPermissionsTest, EffectiveHostPermissions) {
EXPECT_TRUE(hosts.MatchesURL(GURL("http://news.ycombinator.com")));
EXPECT_TRUE(extension->GetActivePermissions()->HasEffectiveAccessToURL(
GURL("http://news.ycombinator.com")));
- EXPECT_FALSE(
- PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
+ EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
extension = LoadManifest("effective_host_permissions", "all_hosts.json");
- hosts =
- PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
+ hosts = extension->permissions_data()->GetEffectiveHostPermissions();
EXPECT_TRUE(hosts.MatchesURL(GURL("http://test/")));
EXPECT_FALSE(hosts.MatchesURL(GURL("https://test/")));
EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com")));
- EXPECT_TRUE(
- PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
+ EXPECT_TRUE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
extension = LoadManifest("effective_host_permissions", "all_hosts2.json");
- hosts =
- PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
+ hosts = extension->permissions_data()->GetEffectiveHostPermissions();
EXPECT_TRUE(hosts.MatchesURL(GURL("http://test/")));
EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com")));
- EXPECT_TRUE(
- PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
+ EXPECT_TRUE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
extension = LoadManifest("effective_host_permissions", "all_hosts3.json");
- hosts =
- PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
+ hosts = extension->permissions_data()->GetEffectiveHostPermissions();
EXPECT_FALSE(hosts.MatchesURL(GURL("http://test/")));
EXPECT_TRUE(hosts.MatchesURL(GURL("https://test/")));
EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com")));
- EXPECT_TRUE(
- PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
+ EXPECT_TRUE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
}
TEST(ExtensionPermissionsTest, SocketPermissions) {
@@ -250,18 +233,17 @@ TEST(ExtensionPermissionsTest, RequiresActionForScriptExecution) {
ManifestPermissionSet(),
allowed_hosts,
URLPatternSet()));
- PermissionsData::ForExtension(extension)
- ->UpdateTabSpecificPermissions(0, tab_permissions);
- EXPECT_FALSE(PermissionsData::ForExtension(extension)
- ->RequiresActionForScriptExecution(
- extension, 0, GURL("https://www.google.com/")));
+ extension->permissions_data()->UpdateTabSpecificPermissions(0,
+ tab_permissions);
+ EXPECT_FALSE(extension->permissions_data()->RequiresActionForScriptExecution(
+ extension, 0, GURL("https://www.google.com/")));
}
TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyAPIPermissions) {
scoped_refptr<Extension> extension;
extension = LoadManifest("permissions", "many-apis.json");
std::vector<base::string16> warnings =
- PermissionsData::ForExtension(extension)->GetPermissionMessageStrings();
+ extension->permissions_data()->GetPermissionMessageStrings();
// Warning for "tabs" is suppressed by "history" permission.
ASSERT_EQ(5u, warnings.size());
EXPECT_EQ("Read and modify your data on api.flickr.com",
@@ -277,10 +259,9 @@ TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHostsPermissions) {
scoped_refptr<Extension> extension;
extension = LoadManifest("permissions", "more-than-3-hosts.json");
std::vector<base::string16> warnings =
- PermissionsData::ForExtension(extension)->GetPermissionMessageStrings();
+ extension->permissions_data()->GetPermissionMessageStrings();
std::vector<base::string16> warnings_details =
- PermissionsData::ForExtension(extension)
- ->GetPermissionMessageDetailsStrings();
+ extension->permissions_data()->GetPermissionMessageDetailsStrings();
ASSERT_EQ(1u, warnings.size());
ASSERT_EQ(1u, warnings_details.size());
EXPECT_EQ("Read and modify your data on 5 websites",
@@ -296,7 +277,7 @@ TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) {
Manifest::COMPONENT,
Extension::NO_FLAGS);
std::vector<base::string16> warnings =
- PermissionsData::ForExtension(extension)->GetPermissionMessageStrings();
+ extension->permissions_data()->GetPermissionMessageStrings();
ASSERT_EQ(1u, warnings.size());
EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0]));
}
@@ -305,7 +286,7 @@ TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) {
scoped_refptr<Extension> extension;
extension = LoadManifest("permissions", "many-hosts.json");
std::vector<base::string16> warnings =
- PermissionsData::ForExtension(extension)->GetPermissionMessageStrings();
+ extension->permissions_data()->GetPermissionMessageStrings();
ASSERT_EQ(1u, warnings.size());
EXPECT_EQ(
"Read and modify your data on encrypted.google.com and www.google.com",
@@ -316,7 +297,7 @@ TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) {
scoped_refptr<Extension> extension;
extension = LoadManifest("permissions", "plugins.json");
std::vector<base::string16> warnings =
- PermissionsData::ForExtension(extension)->GetPermissionMessageStrings();
+ extension->permissions_data()->GetPermissionMessageStrings();
// We don't parse the plugins key on Chrome OS, so it should not ask for any
// permissions.
#if defined(OS_CHROMEOS)
@@ -364,13 +345,13 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test {
bool AllowedScript(const Extension* extension, const GURL& url,
const GURL& top_url, int tab_id) {
- return PermissionsData::ForExtension(extension)->CanExecuteScriptOnPage(
+ return extension->permissions_data()->CanExecuteScriptOnPage(
extension, url, top_url, tab_id, NULL, -1, NULL);
}
bool BlockedScript(const Extension* extension, const GURL& url,
const GURL& top_url) {
- return !PermissionsData::ForExtension(extension)->CanExecuteScriptOnPage(
+ return !extension->permissions_data()->CanExecuteScriptOnPage(
extension, url, top_url, -1, NULL, -1, NULL);
}
@@ -379,10 +360,9 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test {
}
bool Allowed(const Extension* extension, const GURL& url, int tab_id) {
- return (PermissionsData::ForExtension(extension)->CanExecuteScriptOnPage(
+ return (extension->permissions_data()->CanExecuteScriptOnPage(
extension, url, url, tab_id, NULL, -1, NULL) &&
- PermissionsData::ForExtension(extension)
- ->CanCaptureVisiblePage(tab_id, NULL));
+ extension->permissions_data()->CanCaptureVisiblePage(tab_id, NULL));
}
bool CaptureOnly(const Extension* extension, const GURL& url) {
@@ -390,10 +370,9 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test {
}
bool CaptureOnly(const Extension* extension, const GURL& url, int tab_id) {
- return !PermissionsData::ForExtension(extension)->CanExecuteScriptOnPage(
+ return !extension->permissions_data()->CanExecuteScriptOnPage(
extension, url, url, tab_id, NULL, -1, NULL) &&
- PermissionsData::ForExtension(extension)
- ->CanCaptureVisiblePage(tab_id, NULL);
+ extension->permissions_data()->CanCaptureVisiblePage(tab_id, NULL);
}
bool ScriptOnly(const Extension* extension, const GURL& url,
@@ -404,8 +383,7 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test {
bool ScriptOnly(const Extension* extension, const GURL& url,
const GURL& top_url, int tab_id) {
return AllowedScript(extension, url, top_url, tab_id) &&
- !PermissionsData::ForExtension(extension)
- ->CanCaptureVisiblePage(tab_id, NULL);
+ !extension->permissions_data()->CanCaptureVisiblePage(tab_id, NULL);
}
bool Blocked(const Extension* extension, const GURL& url) {
@@ -413,10 +391,10 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test {
}
bool Blocked(const Extension* extension, const GURL& url, int tab_id) {
- return !(PermissionsData::ForExtension(extension)->CanExecuteScriptOnPage(
+ return !(extension->permissions_data()->CanExecuteScriptOnPage(
extension, url, url, tab_id, NULL, -1, NULL) ||
- PermissionsData::ForExtension(extension)
- ->CanCaptureVisiblePage(tab_id, NULL));
+ extension->permissions_data()->CanCaptureVisiblePage(tab_id,
+ NULL));
}
bool ScriptAllowedExclusivelyOnTab(
@@ -477,12 +455,9 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) {
EXPECT_TRUE(BlockedScript(extension.get(), http_url, extension_url));
EXPECT_TRUE(BlockedScript(extension.get(), https_url, extension_url));
- EXPECT_FALSE(PermissionsData::ForExtension(extension)
- ->HasHostPermission(settings_url));
- EXPECT_FALSE(
- PermissionsData::ForExtension(extension)->HasHostPermission(about_url));
- EXPECT_TRUE(
- PermissionsData::ForExtension(extension)->HasHostPermission(favicon_url));
+ EXPECT_FALSE(extension->permissions_data()->HasHostPermission(settings_url));
+ EXPECT_FALSE(extension->permissions_data()->HasHostPermission(about_url));
+ EXPECT_TRUE(extension->permissions_data()->HasHostPermission(favicon_url));
// Test * for scheme, which implies just the http/https schemes.
extension = LoadManifestStrict("script_and_capture",
@@ -520,8 +495,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) {
EXPECT_TRUE(Blocked(extension.get(), settings_url));
EXPECT_TRUE(Blocked(extension.get(), favicon_url));
EXPECT_TRUE(Blocked(extension.get(), about_url));
- EXPECT_TRUE(
- PermissionsData::ForExtension(extension)->HasHostPermission(favicon_url));
+ EXPECT_TRUE(extension->permissions_data()->HasHostPermission(favicon_url));
// Having http://favicon should not give you chrome://favicon
extension = LoadManifestStrict("script_and_capture",
@@ -537,8 +511,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) {
EXPECT_TRUE(Allowed(extension.get(), settings_url));
EXPECT_TRUE(Allowed(extension.get(), about_url));
EXPECT_TRUE(Allowed(extension.get(), favicon_url));
- EXPECT_TRUE(
- PermissionsData::ForExtension(extension)->HasHostPermission(favicon_url));
+ EXPECT_TRUE(extension->permissions_data()->HasHostPermission(favicon_url));
// Component extensions should only get access to what they ask for.
extension = LoadManifest("script_and_capture",
@@ -551,8 +524,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) {
EXPECT_TRUE(Blocked(extension.get(), favicon_url));
EXPECT_TRUE(Blocked(extension.get(), about_url));
EXPECT_TRUE(Blocked(extension.get(), extension_url));
- EXPECT_FALSE(PermissionsData::ForExtension(extension)
- ->HasHostPermission(settings_url));
+ EXPECT_FALSE(extension->permissions_data()->HasHostPermission(settings_url));
}
TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) {
@@ -581,8 +553,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) {
EXPECT_TRUE(BlockedScript(extension.get(), http_url, extension_url));
EXPECT_TRUE(BlockedScript(extension.get(), https_url, extension_url));
- const PermissionsData* permissions_data =
- PermissionsData::ForExtension(extension);
+ const PermissionsData* permissions_data = extension->permissions_data();
EXPECT_FALSE(permissions_data->HasHostPermission(settings_url));
EXPECT_FALSE(permissions_data->HasHostPermission(about_url));
EXPECT_TRUE(permissions_data->HasHostPermission(favicon_url));
@@ -621,8 +592,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) {
EXPECT_TRUE(Blocked(extension.get(), settings_url));
EXPECT_TRUE(ScriptOnly(extension.get(), favicon_url, favicon_url));
EXPECT_TRUE(Blocked(extension.get(), about_url));
- EXPECT_TRUE(
- PermissionsData::ForExtension(extension)->HasHostPermission(favicon_url));
+ EXPECT_TRUE(extension->permissions_data()->HasHostPermission(favicon_url));
// Having http://favicon should not give you chrome://favicon
extension = LoadManifestStrict("script_and_capture",
@@ -638,8 +608,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) {
EXPECT_TRUE(Allowed(extension.get(), settings_url));
EXPECT_TRUE(Allowed(extension.get(), about_url));
EXPECT_TRUE(Allowed(extension.get(), favicon_url));
- EXPECT_TRUE(
- PermissionsData::ForExtension(extension)->HasHostPermission(favicon_url));
+ EXPECT_TRUE(extension->permissions_data()->HasHostPermission(favicon_url));
// Component extensions should only get access to what they ask for.
extension = LoadManifest("script_and_capture",
@@ -652,16 +621,14 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) {
EXPECT_TRUE(Blocked(extension.get(), favicon_url));
EXPECT_TRUE(Blocked(extension.get(), about_url));
EXPECT_TRUE(Blocked(extension.get(), extension_url));
- EXPECT_FALSE(PermissionsData::ForExtension(extension)
- ->HasHostPermission(settings_url));
+ EXPECT_FALSE(extension->permissions_data()->HasHostPermission(settings_url));
}
TEST_F(ExtensionScriptAndCaptureVisibleTest, TabSpecific) {
scoped_refptr<Extension> extension =
LoadManifestStrict("script_and_capture", "tab_specific.json");
- const PermissionsData* permissions_data =
- PermissionsData::ForExtension(extension);
+ const PermissionsData* permissions_data = extension->permissions_data();
EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(0));
EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(1));
EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(2));
diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc
index 96de05b..cfa6afd6 100644
--- a/extensions/renderer/dispatcher.cc
+++ b/extensions/renderer/dispatcher.cc
@@ -750,7 +750,7 @@ void Dispatcher::OnUpdatePermissions(
break;
}
- PermissionsData::ForExtension(extension)->SetActivePermissions(new_active);
+ extension->permissions_data()->SetActivePermissions(new_active);
UpdateOriginPermissions(reason, extension, explicit_hosts);
UpdateBindings(extension->id());
}
@@ -803,7 +803,7 @@ void Dispatcher::InitOriginPermissions(const Extension* extension,
UpdateOriginPermissions(
UpdatedExtensionPermissionsInfo::ADDED,
extension,
- PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions());
+ extension->permissions_data()->GetEffectiveHostPermissions());
}
void Dispatcher::UpdateOriginPermissions(
diff --git a/extensions/renderer/script_injection.cc b/extensions/renderer/script_injection.cc
index 5299bd4..c7eb9a4 100644
--- a/extensions/renderer/script_injection.cc
+++ b/extensions/renderer/script_injection.cc
@@ -154,10 +154,8 @@ void ScriptInjection::InjectIfAllowed(blink::WebFrame* frame,
// valid tab id (if we don't have a tab id, we have no UI surface to ask for
// user consent).
if (tab_id != -1 &&
- PermissionsData::ForExtension(extension)
- ->RequiresActionForScriptExecution(extension,
- tab_id,
- frame->top()->document().url())) {
+ extension->permissions_data()->RequiresActionForScriptExecution(
+ extension, tab_id, frame->top()->document().url())) {
int64 request_id = kInvalidRequestId;
int page_id = top_render_view->GetPageId();
@@ -256,14 +254,14 @@ bool ScriptInjection::WantsToRun(blink::WebFrame* frame,
GURL effective_document_url = ScriptContext::GetEffectiveDocumentURL(
frame, document_url, script_->match_about_blank());
- if (!PermissionsData::ForExtension(extension)
- ->CanExecuteScriptOnPage(extension,
- effective_document_url,
- frame->top()->document().url(),
- kNoTabId,
- script_.get(),
- kNoProcessId,
- NULL /* ignore error */)) {
+ if (!extension->permissions_data()->CanExecuteScriptOnPage(
+ extension,
+ effective_document_url,
+ frame->top()->document().url(),
+ kNoTabId,
+ script_.get(),
+ kNoProcessId,
+ NULL /* ignore error */)) {
return false;
}
diff --git a/extensions/renderer/user_script_scheduler.cc b/extensions/renderer/user_script_scheduler.cc
index 2214c77..4058daa 100644
--- a/extensions/renderer/user_script_scheduler.cc
+++ b/extensions/renderer/user_script_scheduler.cc
@@ -192,14 +192,14 @@ void UserScriptScheduler::ExecuteCodeImpl(
GURL document_url = ScriptContext::GetEffectiveDocumentURL(
child_frame, child_frame->document().url(), params.match_about_blank);
bool can_execute_script =
- PermissionsData::ForExtension(extension)
- ->CanExecuteScriptOnPage(extension,
- document_url,
- top_url,
- extension_helper->tab_id(),
- NULL,
- -1,
- NULL);
+ extension->permissions_data()->CanExecuteScriptOnPage(
+ extension,
+ document_url,
+ top_url,
+ extension_helper->tab_id(),
+ NULL,
+ -1,
+ NULL);
if ((!params.is_web_view && !can_execute_script) ||
(params.is_web_view && document_url != params.webview_src)) {
if (child_frame->parent()) {