summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
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()) {