Index: extensions/common/permissions/permissions_data_unittest.cc |
diff --git a/extensions/common/permissions/permissions_data_unittest.cc b/extensions/common/permissions/permissions_data_unittest.cc |
index 294d106d202f4ba3d959ea89364bd50a9debe37f..6fed67c9b4854790f5756736452f2e62f60f58be 100644 |
--- a/extensions/common/permissions/permissions_data_unittest.cc |
+++ b/extensions/common/permissions/permissions_data_unittest.cc |
@@ -248,8 +248,13 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
bool AllowedScript(const Extension* extension, const GURL& url, |
const GURL& top_url) { |
+ return AllowedScript(extension, url, top_url, -1); |
+ } |
+ |
+ bool AllowedScript(const Extension* extension, const GURL& url, |
+ const GURL& top_url, int tab_id) { |
return PermissionsData::CanExecuteScriptOnPage( |
- extension, url, top_url, -1, NULL, -1, NULL); |
+ extension, url, top_url, tab_id, NULL, -1, NULL); |
} |
bool BlockedScript(const Extension* extension, const GURL& url, |
@@ -266,7 +271,7 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
return (PermissionsData::CanExecuteScriptOnPage( |
extension, url, url, tab_id, NULL, -1, NULL) && |
PermissionsData::CanCaptureVisiblePage( |
- extension, url, tab_id, NULL)); |
+ extension, tab_id, NULL)); |
} |
bool CaptureOnly(const Extension* extension, const GURL& url) { |
@@ -276,7 +281,18 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
bool CaptureOnly(const Extension* extension, const GURL& url, int tab_id) { |
return !PermissionsData::CanExecuteScriptOnPage( |
extension, url, url, tab_id, NULL, -1, NULL) && |
- PermissionsData::CanCaptureVisiblePage(extension, url, tab_id, NULL); |
+ PermissionsData::CanCaptureVisiblePage(extension, tab_id, NULL); |
+ } |
+ |
+ bool ScriptOnly(const Extension* extension, const GURL& url, |
+ const GURL& top_url) { |
+ return ScriptOnly(extension, url, top_url, -1); |
+ } |
+ |
+ bool ScriptOnly(const Extension* extension, const GURL& url, |
+ const GURL& top_url, int tab_id) { |
+ return AllowedScript(extension, url, top_url, tab_id) && |
+ !PermissionsData::CanCaptureVisiblePage(extension, tab_id, NULL); |
} |
bool Blocked(const Extension* extension, const GURL& url) { |
@@ -287,10 +303,10 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
return !(PermissionsData::CanExecuteScriptOnPage( |
extension, url, url, tab_id, NULL, -1, NULL) || |
PermissionsData::CanCaptureVisiblePage( |
- extension, url, tab_id, NULL)); |
+ extension, tab_id, NULL)); |
} |
- bool AllowedExclusivelyOnTab( |
+ bool ScriptAllowedExclusivelyOnTab( |
const Extension* extension, |
const std::set<GURL>& allowed_urls, |
int tab_id) { |
@@ -298,7 +314,7 @@ class ExtensionScriptAndCaptureVisibleTest : public testing::Test { |
for (std::set<GURL>::iterator it = urls_.begin(); it != urls_.end(); ++it) { |
const GURL& url = *it; |
if (allowed_urls.count(url)) |
- result &= Allowed(extension, url, tab_id); |
+ result &= AllowedScript(extension, url, url, tab_id); |
else |
result &= Blocked(extension, url, tab_id); |
} |
@@ -333,11 +349,11 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) { |
EXPECT_TRUE(Allowed(extension.get(), http_url)); |
EXPECT_TRUE(Allowed(extension.get(), https_url)); |
- EXPECT_TRUE(Blocked(extension.get(), file_url)); |
- EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
+ EXPECT_TRUE(CaptureOnly(extension.get(), file_url)); |
+ EXPECT_TRUE(CaptureOnly(extension.get(), settings_url)); |
EXPECT_TRUE(CaptureOnly(extension.get(), favicon_url)); |
- EXPECT_TRUE(Blocked(extension.get(), about_url)); |
- EXPECT_TRUE(Blocked(extension.get(), extension_url)); |
+ EXPECT_TRUE(CaptureOnly(extension.get(), about_url)); |
+ EXPECT_TRUE(CaptureOnly(extension.get(), extension_url)); |
// Test access to iframed content. |
GURL within_extension_url = extension->GetResourceURL("page.html"); |
@@ -356,8 +372,8 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) { |
// Test * for scheme, which implies just the http/https schemes. |
extension = LoadManifestStrict("script_and_capture", |
"extension_wildcard.json"); |
- EXPECT_TRUE(Allowed(extension.get(), http_url)); |
- EXPECT_TRUE(Allowed(extension.get(), https_url)); |
+ EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url)); |
+ EXPECT_TRUE(ScriptOnly(extension.get(), https_url, https_url)); |
EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
EXPECT_TRUE(Blocked(extension.get(), about_url)); |
EXPECT_TRUE(Blocked(extension.get(), file_url)); |
@@ -387,7 +403,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) { |
extension = LoadManifestStrict("script_and_capture", |
"extension_chrome_favicon_wildcard.json"); |
EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
- EXPECT_TRUE(CaptureOnly(extension.get(), favicon_url)); |
+ EXPECT_TRUE(Blocked(extension.get(), favicon_url)); |
EXPECT_TRUE(Blocked(extension.get(), about_url)); |
EXPECT_TRUE(PermissionsData::HasHostPermission(extension.get(), favicon_url)); |
@@ -411,7 +427,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) { |
extension = LoadManifest("script_and_capture", |
"extension_component_google.json", Manifest::COMPONENT, |
Extension::NO_FLAGS); |
- EXPECT_TRUE(Allowed(extension.get(), http_url)); |
+ EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url)); |
EXPECT_TRUE(Blocked(extension.get(), https_url)); |
EXPECT_TRUE(Blocked(extension.get(), file_url)); |
EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
@@ -433,11 +449,11 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) { |
"extension_regular_all.json"); |
EXPECT_TRUE(Allowed(extension.get(), http_url)); |
EXPECT_TRUE(Allowed(extension.get(), https_url)); |
- EXPECT_TRUE(Blocked(extension.get(), file_url)); |
- EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
+ EXPECT_TRUE(CaptureOnly(extension.get(), file_url)); |
+ EXPECT_TRUE(CaptureOnly(extension.get(), settings_url)); |
EXPECT_TRUE(Allowed(extension.get(), favicon_url)); // chrome:// requested |
- EXPECT_TRUE(Blocked(extension.get(), about_url)); |
- EXPECT_TRUE(Blocked(extension.get(), extension_url)); |
+ EXPECT_TRUE(CaptureOnly(extension.get(), about_url)); |
+ EXPECT_TRUE(CaptureOnly(extension.get(), extension_url)); |
// Test access to iframed content. |
GURL within_extension_url = extension->GetResourceURL("page.html"); |
@@ -456,8 +472,8 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) { |
// Test * for scheme, which implies just the http/https schemes. |
extension = LoadManifestStrict("script_and_capture", |
"extension_wildcard.json"); |
- EXPECT_TRUE(Allowed(extension.get(), http_url)); |
- EXPECT_TRUE(Allowed(extension.get(), https_url)); |
+ EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url)); |
+ EXPECT_TRUE(ScriptOnly(extension.get(), https_url, https_url)); |
EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
EXPECT_TRUE(Blocked(extension.get(), about_url)); |
EXPECT_TRUE(Blocked(extension.get(), file_url)); |
@@ -476,16 +492,16 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) { |
EXPECT_FALSE(extension.get() == NULL); |
EXPECT_TRUE(Blocked(extension.get(), http_url)); |
EXPECT_TRUE(Blocked(extension.get(), https_url)); |
- EXPECT_TRUE(Allowed(extension.get(), settings_url)); |
+ EXPECT_TRUE(ScriptOnly(extension.get(), settings_url, settings_url)); |
EXPECT_TRUE(Blocked(extension.get(), about_url)); |
EXPECT_TRUE(Blocked(extension.get(), file_url)); |
- EXPECT_TRUE(Allowed(extension.get(), favicon_url)); // chrome:// requested |
+ EXPECT_TRUE(ScriptOnly(extension.get(), favicon_url, favicon_url)); |
// Having chrome://favicon/* should not give you chrome://* |
extension = LoadManifestStrict("script_and_capture", |
"extension_chrome_favicon_wildcard.json"); |
EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
- EXPECT_TRUE(Allowed(extension.get(), favicon_url)); // chrome:// requested |
+ EXPECT_TRUE(ScriptOnly(extension.get(), favicon_url, favicon_url)); |
EXPECT_TRUE(Blocked(extension.get(), about_url)); |
EXPECT_TRUE(PermissionsData::HasHostPermission(extension.get(), favicon_url)); |
@@ -509,7 +525,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) { |
extension = LoadManifest("script_and_capture", |
"extension_component_google.json", Manifest::COMPONENT, |
Extension::NO_FLAGS); |
- EXPECT_TRUE(Allowed(extension.get(), http_url)); |
+ EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url)); |
EXPECT_TRUE(Blocked(extension.get(), https_url)); |
EXPECT_TRUE(Blocked(extension.get(), file_url)); |
EXPECT_TRUE(Blocked(extension.get(), settings_url)); |
@@ -533,9 +549,9 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, TabSpecific) { |
std::set<GURL> no_urls; |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
URLPatternSet allowed_hosts; |
allowed_hosts.AddPattern(URLPattern(URLPattern::SCHEME_ALL, |
@@ -558,17 +574,17 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, TabSpecific) { |
->explicit_hosts()); |
} |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
PermissionsData::ClearTabSpecificPermissions(extension.get(), 0); |
EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 0) |
.get()); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
std::set<GURL> more_allowed_urls = allowed_urls; |
more_allowed_urls.insert(https_url); |
@@ -597,25 +613,27 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, TabSpecific) { |
->explicit_hosts()); |
} |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), more_allowed_urls, 1)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), allowed_urls, 0)); |
+ EXPECT_TRUE( |
+ ScriptAllowedExclusivelyOnTab(extension.get(), more_allowed_urls, 1)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
PermissionsData::ClearTabSpecificPermissions(extension.get(), 0); |
EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 0) |
.get()); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), more_allowed_urls, 1)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
+ EXPECT_TRUE( |
+ ScriptAllowedExclusivelyOnTab(extension.get(), more_allowed_urls, 1)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
PermissionsData::ClearTabSpecificPermissions(extension.get(), 1); |
EXPECT_FALSE(PermissionsData::GetTabSpecificPermissions(extension.get(), 1) |
.get()); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
- EXPECT_TRUE(AllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); |
+ EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); |
} |
} // namespace extensions |