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

Unified Diff: chrome/common/extensions/api/common_extension_api_unittest.cc

Issue 2241203003: Pass user session type to extension feature checks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: split out some stuff Created 4 years, 4 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
Index: chrome/common/extensions/api/common_extension_api_unittest.cc
diff --git a/chrome/common/extensions/api/common_extension_api_unittest.cc b/chrome/common/extensions/api/common_extension_api_unittest.cc
index c451ea414898e5c766f2fce9873471a7d8d9fe70..0c29cfcf5cdb9c0743b640c1a3e1397db4c4abef 100644
--- a/chrome/common/extensions/api/common_extension_api_unittest.cc
+++ b/chrome/common/extensions/api/common_extension_api_unittest.cc
@@ -95,73 +95,111 @@ TEST(ExtensionAPITest, APIFeatures) {
std::string api_full_name;
bool expect_is_available;
Feature::Context context;
+ Feature::SessionType session_type;
GURL url;
} test_data[] = {
- { "test1", false, Feature::WEB_PAGE_CONTEXT, GURL() },
- { "test1", true, Feature::BLESSED_EXTENSION_CONTEXT, GURL() },
- { "test1", true, Feature::UNBLESSED_EXTENSION_CONTEXT, GURL() },
- { "test1", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "test2", true, Feature::WEB_PAGE_CONTEXT, GURL("http://google.com") },
- { "test2", false, Feature::BLESSED_EXTENSION_CONTEXT,
- GURL("http://google.com") },
- { "test2.foo", false, Feature::WEB_PAGE_CONTEXT,
- GURL("http://google.com") },
- { "test2.foo", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "test3", false, Feature::WEB_PAGE_CONTEXT, GURL("http://google.com") },
- { "test3.foo", true, Feature::WEB_PAGE_CONTEXT, GURL("http://google.com") },
- { "test3.foo", true, Feature::BLESSED_EXTENSION_CONTEXT,
- GURL("http://bad.com") },
- { "test4", true, Feature::BLESSED_EXTENSION_CONTEXT,
- GURL("http://bad.com") },
- { "test4.foo", false, Feature::BLESSED_EXTENSION_CONTEXT,
- GURL("http://bad.com") },
- { "test4.foo", false, Feature::UNBLESSED_EXTENSION_CONTEXT,
- GURL("http://bad.com") },
- { "test4.foo.foo", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "test5", true, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") },
- { "test5", false, Feature::WEB_PAGE_CONTEXT, GURL("http://bar.com") },
- { "test5.blah", true, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") },
- { "test5.blah", false, Feature::WEB_PAGE_CONTEXT, GURL("http://bar.com") },
- { "test6", false, Feature::BLESSED_EXTENSION_CONTEXT, GURL() },
- { "test6.foo", true, Feature::BLESSED_EXTENSION_CONTEXT, GURL() },
- { "test7", true, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") },
- { "test7.foo", false, Feature::WEB_PAGE_CONTEXT, GURL("http://bar.com") },
- { "test7.foo", true, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") },
- { "test7.bar", false, Feature::WEB_PAGE_CONTEXT, GURL("http://bar.com") },
- { "test7.bar", false, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") },
-
- // Test parent/child.
- { "parent1", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "parent1", false, Feature::WEB_PAGE_CONTEXT, GURL("http://foo.com") },
- { "parent1.child1", false, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "parent1.child1", true, Feature::WEB_PAGE_CONTEXT,
- GURL("http://foo.com") },
- { "parent1.child2", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "parent1.child2", false, Feature::WEB_PAGE_CONTEXT,
- GURL("http://foo.com") },
- { "parent2", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "parent2", true, Feature::BLESSED_EXTENSION_CONTEXT, GURL() },
- { "parent2", true, Feature::UNBLESSED_EXTENSION_CONTEXT, GURL() },
- { "parent2.child3", false, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "parent2.child3", true, Feature::BLESSED_EXTENSION_CONTEXT, GURL() },
- { "parent2.child3", false, Feature::UNBLESSED_EXTENSION_CONTEXT, GURL() },
- { "parent2.child3.child.child", true, Feature::CONTENT_SCRIPT_CONTEXT,
- GURL() },
- { "parent2.child3.child.child", false, Feature::BLESSED_EXTENSION_CONTEXT,
- GURL() },
- { "parent2.child3.child.child", true, Feature::UNBLESSED_EXTENSION_CONTEXT,
- GURL() },
- { "parent3", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "parent3", false, Feature::BLESSED_EXTENSION_CONTEXT, GURL() },
- { "parent3", false, Feature::UNBLESSED_EXTENSION_CONTEXT, GURL() },
- { "parent3.noparent", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "parent3.noparent", true, Feature::BLESSED_EXTENSION_CONTEXT, GURL() },
- { "parent3.noparent", true, Feature::UNBLESSED_EXTENSION_CONTEXT, GURL() },
- { "parent3.noparent.child", true, Feature::CONTENT_SCRIPT_CONTEXT, GURL() },
- { "parent3.noparent.child", true, Feature::BLESSED_EXTENSION_CONTEXT,
- GURL() },
- { "parent3.noparent.child", true, Feature::UNBLESSED_EXTENSION_CONTEXT,
- GURL() }
+ {"test1", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"test1", true, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"test1", true, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"test1", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"test2", true, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://google.com")},
+ {"test2", false, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://google.com")},
+ {"test2.foo", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://google.com")},
+ {"test2.foo", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"test3", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://google.com")},
+ {"test3.foo", true, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://google.com")},
+ {"test3.foo", true, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://bad.com")},
+ {"test4", true, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://bad.com")},
+ {"test4.foo", false, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://bad.com")},
+ {"test4.foo", false, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://bad.com")},
+ {"test4.foo.foo", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"test5", true, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://foo.com")},
+ {"test5", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://bar.com")},
+ {"test5.blah", true, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://foo.com")},
+ {"test5.blah", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://bar.com")},
+ {"test6", false, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"test6.foo", true, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"test7", true, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://foo.com")},
+ {"test7.foo", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://bar.com")},
+ {"test7.foo", true, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://foo.com")},
+ {"test7.bar", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://bar.com")},
+ {"test7.bar", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://foo.com")},
+
+ // Test parent/child.
+ {"parent1", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent1", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://foo.com")},
+ {"parent1.child1", false, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent1.child1", true, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://foo.com")},
+ {"parent1.child2", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent1.child2", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL("http://foo.com")},
+ {"parent2", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent2", true, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent2", true, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent2.child3", false, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent2.child3", true, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent2.child3", false, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent2.child3.child.child", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent2.child3.child.child", false, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent2.child3.child.child", true, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent3", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent3", false, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent3", false, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent3.noparent", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent3.noparent", true, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent3.noparent", true, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent3.noparent.child", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent3.noparent.child", true, Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
+ {"parent3.noparent.child", true, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL()},
};
base::FilePath api_features_path;
@@ -191,10 +229,8 @@ TEST(ExtensionAPITest, APIFeatures) {
ExtensionAPI::OverrideSharedInstanceForTest scope(&api);
bool expected = test_data[i].expect_is_available;
Feature::Availability availability =
- api.IsAvailable(test_data[i].api_full_name,
- NULL,
- test_data[i].context,
- test_data[i].url);
+ api.IsAvailable(test_data[i].api_full_name, NULL, test_data[i].context,
+ test_data[i].session_type, test_data[i].url);
EXPECT_EQ(expected, availability.is_available())
<< base::StringPrintf("Test %d: Feature '%s' was %s: %s",
static_cast<int>(i),
@@ -236,27 +272,36 @@ TEST(ExtensionAPITest, IsAnyFeatureAvailableToContext) {
std::string api_full_name;
bool expect_is_available;
Feature::Context context;
+ Feature::SessionType session_type;
const Extension* extension;
GURL url;
} test_data[] = {
- { "test1", false, Feature::WEB_PAGE_CONTEXT, NULL, GURL() },
- { "test1", true, Feature::UNBLESSED_EXTENSION_CONTEXT, NULL, GURL() },
- { "test1", false, Feature::UNBLESSED_EXTENSION_CONTEXT, app.get(), GURL() },
- { "test1", true, Feature::UNBLESSED_EXTENSION_CONTEXT, extension.get(),
- GURL() },
- { "test2", true, Feature::CONTENT_SCRIPT_CONTEXT, NULL, GURL() },
- { "test2", true, Feature::WEB_PAGE_CONTEXT, NULL,
- GURL("http://google.com") },
- { "test2.foo", false, Feature::WEB_PAGE_CONTEXT, NULL,
- GURL("http://google.com") },
- { "test3", true, Feature::CONTENT_SCRIPT_CONTEXT, NULL, GURL() },
- { "test3", true, Feature::WEB_PAGE_CONTEXT, NULL, GURL("http://foo.com") },
- { "test4.foo", true, Feature::CONTENT_SCRIPT_CONTEXT, NULL, GURL() },
- { "test7", false, Feature::WEB_PAGE_CONTEXT, NULL,
- GURL("http://google.com") },
- { "test7", true, Feature::WEB_PAGE_CONTEXT, NULL, GURL("http://foo.com") },
- { "test7", false, Feature::WEB_PAGE_CONTEXT, NULL, GURL("http://bar.com") }
- };
+ {"test1", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL()},
+ {"test1", true, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL()},
+ {"test1", false, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, app.get(), GURL()},
+ {"test1", true, Feature::UNBLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, extension.get(), GURL()},
+ {"test2", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL()},
+ {"test2", true, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL("http://google.com")},
+ {"test2.foo", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL("http://google.com")},
+ {"test3", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL()},
+ {"test3", true, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL("http://foo.com")},
+ {"test4.foo", true, Feature::CONTENT_SCRIPT_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL()},
+ {"test7", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL("http://google.com")},
+ {"test7", true, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL("http://foo.com")},
+ {"test7", false, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, NULL, GURL("http://bar.com")}};
base::FilePath api_features_path;
PathService::Get(chrome::DIR_TEST_DATA, &api_features_path);
@@ -286,10 +331,9 @@ TEST(ExtensionAPITest, IsAnyFeatureAvailableToContext) {
api_feature_provider.GetFeature(test_data[i].api_full_name);
ASSERT_TRUE(test_feature);
EXPECT_EQ(test_data[i].expect_is_available,
- api.IsAnyFeatureAvailableToContext(*test_feature,
- test_data[i].extension,
- test_data[i].context,
- test_data[i].url))
+ api.IsAnyFeatureAvailableToContext(
+ *test_feature, test_data[i].extension, test_data[i].context,
+ test_data[i].session_type, test_data[i].url))
<< i;
}
}
@@ -363,58 +407,48 @@ TEST(ExtensionAPITest, ExtensionWithUnprivilegedAPIs) {
// "storage" is completely unprivileged.
EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
- *api_features.GetFeature("storage"),
- NULL,
- Feature::BLESSED_EXTENSION_CONTEXT,
+ *api_features.GetFeature("storage"), NULL,
+ Feature::BLESSED_EXTENSION_CONTEXT, Feature::SESSION_TYPE_UNSPECIFIED,
GURL()));
EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
- *api_features.GetFeature("storage"),
- NULL,
- Feature::UNBLESSED_EXTENSION_CONTEXT,
+ *api_features.GetFeature("storage"), NULL,
+ Feature::UNBLESSED_EXTENSION_CONTEXT, Feature::SESSION_TYPE_UNSPECIFIED,
GURL()));
EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
- *api_features.GetFeature("storage"),
- NULL,
- Feature::CONTENT_SCRIPT_CONTEXT,
+ *api_features.GetFeature("storage"), NULL,
+ Feature::CONTENT_SCRIPT_CONTEXT, Feature::SESSION_TYPE_UNSPECIFIED,
GURL()));
// "extension" is partially unprivileged.
EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
- *api_features.GetFeature("extension"),
- NULL,
- Feature::BLESSED_EXTENSION_CONTEXT,
+ *api_features.GetFeature("extension"), NULL,
+ Feature::BLESSED_EXTENSION_CONTEXT, Feature::SESSION_TYPE_UNSPECIFIED,
GURL()));
EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
- *api_features.GetFeature("extension"),
- NULL,
- Feature::UNBLESSED_EXTENSION_CONTEXT,
+ *api_features.GetFeature("extension"), NULL,
+ Feature::UNBLESSED_EXTENSION_CONTEXT, Feature::SESSION_TYPE_UNSPECIFIED,
GURL()));
EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
- *api_features.GetFeature("extension"),
- NULL,
- Feature::CONTENT_SCRIPT_CONTEXT,
+ *api_features.GetFeature("extension"), NULL,
+ Feature::CONTENT_SCRIPT_CONTEXT, Feature::SESSION_TYPE_UNSPECIFIED,
GURL()));
EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
- *api_features.GetFeature("extension.getURL"),
- NULL,
- Feature::CONTENT_SCRIPT_CONTEXT,
+ *api_features.GetFeature("extension.getURL"), NULL,
+ Feature::CONTENT_SCRIPT_CONTEXT, Feature::SESSION_TYPE_UNSPECIFIED,
GURL()));
// "history" is entirely privileged.
EXPECT_TRUE(extension_api->IsAnyFeatureAvailableToContext(
- *api_features.GetFeature("history"),
- NULL,
- Feature::BLESSED_EXTENSION_CONTEXT,
+ *api_features.GetFeature("history"), NULL,
+ Feature::BLESSED_EXTENSION_CONTEXT, Feature::SESSION_TYPE_UNSPECIFIED,
GURL()));
EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext(
- *api_features.GetFeature("history"),
- NULL,
- Feature::UNBLESSED_EXTENSION_CONTEXT,
+ *api_features.GetFeature("history"), NULL,
+ Feature::UNBLESSED_EXTENSION_CONTEXT, Feature::SESSION_TYPE_UNSPECIFIED,
GURL()));
EXPECT_FALSE(extension_api->IsAnyFeatureAvailableToContext(
- *api_features.GetFeature("history"),
- NULL,
- Feature::CONTENT_SCRIPT_CONTEXT,
+ *api_features.GetFeature("history"), NULL,
+ Feature::CONTENT_SCRIPT_CONTEXT, Feature::SESSION_TYPE_UNSPECIFIED,
GURL()));
}
@@ -472,26 +506,31 @@ TEST(ExtensionAPITest, HostedAppPermissions) {
ExtensionAPI::CreateWithDefaultConfiguration());
// "runtime" and "tabs" should not be available in hosted apps.
- EXPECT_FALSE(extension_api->IsAvailable("runtime",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
- EXPECT_FALSE(extension_api->IsAvailable("runtime.id",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
- EXPECT_FALSE(extension_api->IsAvailable("runtime.sendMessage",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
- EXPECT_FALSE(extension_api->IsAvailable("runtime.sendNativeMessage",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
- EXPECT_FALSE(extension_api->IsAvailable("tabs.create",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
+ EXPECT_FALSE(extension_api
+ ->IsAvailable("runtime", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
+ EXPECT_FALSE(extension_api
+ ->IsAvailable("runtime.id", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
+ EXPECT_FALSE(extension_api
+ ->IsAvailable("runtime.sendMessage", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
+ EXPECT_FALSE(extension_api
+ ->IsAvailable("runtime.sendNativeMessage", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
+ EXPECT_FALSE(extension_api
+ ->IsAvailable("tabs.create", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
}
TEST(ExtensionAPITest, AppAndFriendsAvailability) {
@@ -506,21 +545,24 @@ TEST(ExtensionAPITest, AppAndFriendsAvailability) {
permissions.insert("app.window");
scoped_refptr<Extension> extension =
CreatePackagedAppWithPermissions(permissions);
- EXPECT_FALSE(extension_api->IsAvailable(
- "app",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL("http://foo.com")).is_available());
- EXPECT_TRUE(extension_api->IsAvailable(
- "app.runtime",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL("http://foo.com")).is_available());
- EXPECT_TRUE(extension_api->IsAvailable(
- "app.window",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL("http://foo.com")).is_available());
+ EXPECT_FALSE(extension_api
+ ->IsAvailable("app", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED,
+ GURL("http://foo.com"))
+ .is_available());
+ EXPECT_TRUE(extension_api
+ ->IsAvailable("app.runtime", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED,
+ GURL("http://foo.com"))
+ .is_available());
+ EXPECT_TRUE(extension_api
+ ->IsAvailable("app.window", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED,
+ GURL("http://foo.com"))
+ .is_available());
}
// Make sure chrome.app.runtime and chrome.app.window are not available to
// extensions, and chrome.app is.
@@ -528,21 +570,24 @@ TEST(ExtensionAPITest, AppAndFriendsAvailability) {
std::set<std::string> permissions;
scoped_refptr<Extension> extension =
CreateExtensionWithPermissions(permissions);
- EXPECT_TRUE(extension_api->IsAvailable(
- "app",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL("http://foo.com")).is_available());
- EXPECT_FALSE(extension_api->IsAvailable(
- "app.runtime",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL("http://foo.com")).is_available());
- EXPECT_FALSE(extension_api->IsAvailable(
- "app.window",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL("http://foo.com")).is_available());
+ EXPECT_TRUE(extension_api
+ ->IsAvailable("app", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED,
+ GURL("http://foo.com"))
+ .is_available());
+ EXPECT_FALSE(extension_api
+ ->IsAvailable("app.runtime", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED,
+ GURL("http://foo.com"))
+ .is_available());
+ EXPECT_FALSE(extension_api
+ ->IsAvailable("app.window", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED,
+ GURL("http://foo.com"))
+ .is_available());
}
}
@@ -554,14 +599,14 @@ TEST(ExtensionAPITest, ExtensionWithDependencies) {
CreateExtensionWithPermission("ttsEngine");
std::unique_ptr<ExtensionAPI> api(
ExtensionAPI::CreateWithDefaultConfiguration());
- EXPECT_TRUE(api->IsAvailable("ttsEngine",
- extension.get(),
+ EXPECT_TRUE(api->IsAvailable("ttsEngine", extension.get(),
Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
- EXPECT_FALSE(api->IsAvailable("tts",
- extension.get(),
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
+ EXPECT_FALSE(api->IsAvailable("tts", extension.get(),
Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
}
// Conversely, extension with the "tts" permission but not the "ttsEngine"
@@ -571,21 +616,23 @@ TEST(ExtensionAPITest, ExtensionWithDependencies) {
CreateExtensionWithPermission("tts");
std::unique_ptr<ExtensionAPI> api(
ExtensionAPI::CreateWithDefaultConfiguration());
- EXPECT_FALSE(api->IsAvailable("ttsEngine",
- extension.get(),
+ EXPECT_FALSE(api->IsAvailable("ttsEngine", extension.get(),
Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
- EXPECT_TRUE(api->IsAvailable("tts",
- extension.get(),
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
+ EXPECT_TRUE(api->IsAvailable("tts", extension.get(),
Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
}
}
bool MatchesURL(
ExtensionAPI* api, const std::string& api_name, const std::string& url) {
- return api->IsAvailable(
- api_name, NULL, Feature::WEB_PAGE_CONTEXT, GURL(url)).is_available();
+ return api
+ ->IsAvailable(api_name, NULL, Feature::WEB_PAGE_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL(url))
+ .is_available();
}
TEST(ExtensionAPITest, URLMatching) {
@@ -810,10 +857,11 @@ TEST(ExtensionAPITest, NoPermissions) {
for (size_t i = 0; i < arraysize(kTests); ++i) {
EXPECT_EQ(kTests[i].expect_success,
- extension_api->IsAvailable(kTests[i].permission_name,
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available())
+ extension_api
+ ->IsAvailable(kTests[i].permission_name, extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available())
<< "Permission being tested: " << kTests[i].permission_name;
}
}
@@ -831,14 +879,16 @@ TEST(ExtensionAPITest, ManifestKeys) {
.Build())
.Build();
- EXPECT_TRUE(extension_api->IsAvailable("browserAction",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
- EXPECT_FALSE(extension_api->IsAvailable("pageAction",
- extension.get(),
- Feature::BLESSED_EXTENSION_CONTEXT,
- GURL()).is_available());
+ EXPECT_TRUE(extension_api
+ ->IsAvailable("browserAction", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
+ EXPECT_FALSE(extension_api
+ ->IsAvailable("pageAction", extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED, GURL())
+ .is_available());
}
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698