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

Unified Diff: chrome/browser/extensions/permissions_updater_unittest.cc

Issue 2794803003: PS - Remove Clipboard Read permission from extensions in Public Sessions (except for whitelisted on… (Closed)
Patch Set: Updated comment Created 3 years, 8 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 | « chrome/browser/extensions/permissions_updater.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/permissions_updater_unittest.cc
diff --git a/chrome/browser/extensions/permissions_updater_unittest.cc b/chrome/browser/extensions/permissions_updater_unittest.cc
index 1bb650081976eb82a0676609bffbc53e9366b009..67e31dfbeeb6e1a477644933fc19d72c2a125f43 100644
--- a/chrome/browser/extensions/permissions_updater_unittest.cc
+++ b/chrome/browser/extensions/permissions_updater_unittest.cc
@@ -133,6 +133,27 @@ void AddPattern(URLPatternSet* extent, const std::string& pattern) {
extent->AddPattern(URLPattern(schemes, pattern));
}
+class PermissionsUpdaterTestDelegate : public PermissionsUpdater::Delegate {
+ public:
+ PermissionsUpdaterTestDelegate() {}
+ ~PermissionsUpdaterTestDelegate() override {}
+
+ // PermissionsUpdater::Delegate
+ void InitializePermissions(
+ const Extension* extension,
+ std::unique_ptr<const PermissionSet>* granted_permissions) override {
+ // Remove the cookie permission.
+ APIPermissionSet api_permission_set((*granted_permissions)->apis());
+ api_permission_set.erase(APIPermission::kCookie);
+ granted_permissions->reset(
+ new PermissionSet(api_permission_set, ManifestPermissionSet(),
+ URLPatternSet(), URLPatternSet()));
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PermissionsUpdaterTestDelegate);
+};
+
} // namespace
// Test that the PermissionUpdater can correctly add and remove active
@@ -362,4 +383,33 @@ TEST_F(PermissionsUpdaterTest, RevokingPermissions) {
}
}
+// Test that the permissions updater delegate works - in this test it removes
+// the cookies permission.
+TEST_F(PermissionsUpdaterTest, Delegate) {
+ InitializeEmptyExtensionService();
+
+ ListBuilder required_permissions;
+ required_permissions.Append("tabs").Append("management").Append("cookies");
+ scoped_refptr<const Extension> extension =
+ CreateExtensionWithOptionalPermissions(
+ base::MakeUnique<base::ListValue>(),
+ required_permissions.Build(),
+ "My Extension");
+
+ auto test_delegate = base::MakeUnique<PermissionsUpdaterTestDelegate>();
+ PermissionsUpdater::SetPlatformDelegate(test_delegate.get());
+ PermissionsUpdater updater(profile());
+ updater.InitializePermissions(extension.get());
+
+ EXPECT_TRUE(extension->permissions_data()->HasAPIPermission(
+ APIPermission::kTab));
+ EXPECT_TRUE(extension->permissions_data()->HasAPIPermission(
+ APIPermission::kManagement));
+ EXPECT_FALSE(extension->permissions_data()->HasAPIPermission(
+ APIPermission::kCookie));
+
+ // Unset the delegate.
+ PermissionsUpdater::SetPlatformDelegate(nullptr);
+}
+
} // namespace extensions
« no previous file with comments | « chrome/browser/extensions/permissions_updater.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698