Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
const pm = Services.perms;
const { ALLOW_ACTION, DENY_ACTION, UNKNOWN_ACTION, EXPIRE_POLICY } =
Ci.nsIPermissionManager;
const principal =
Services.scriptSecurityManager.createContentPrincipalFromOrigin(
);
function checkPolicyPermission(message) {
let perm = pm.getPermissionObject(principal, "cookie", true);
Assert.equal(perm?.capability, ALLOW_ACTION, message);
Assert.equal(perm?.expireType, EXPIRE_POLICY, message);
}
add_task(function test_policy_permission_removal() {
pm.addFromPrincipal(principal, "cookie", ALLOW_ACTION, EXPIRE_POLICY);
pm.removeFromPrincipal(principal, "cookie");
checkPolicyPermission("removeFromPrincipal is silently dropped");
pm.addFromPrincipal(principal, "cookie", DENY_ACTION, EXPIRE_POLICY);
checkPolicyPermission("Changing with EXPIRE_POLICY is silently dropped");
pm.addFromPrincipal(principal, "cookie", UNKNOWN_ACTION, EXPIRE_POLICY);
Assert.equal(
pm.getPermissionObject(principal, "cookie", true),
null,
"Removing with EXPIRE_POLICY is allowed"
);
});