Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(87)

Unified Diff: extensions/common/permissions/permissions_data_unittest.cc

Issue 140433003: tab capture: Change the permissions for tabs.captureVisibleTab(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/common/permissions/permissions_data.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « extensions/common/permissions/permissions_data.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698