forked from mirrors/gecko-dev
106 lines
2.8 KiB
JavaScript
106 lines
2.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
const EMPTY_PAGE =
|
|
getRootDirectory(gTestPath).replace(
|
|
"chrome://mochitests/content",
|
|
"https://example.com"
|
|
) + "empty.html";
|
|
|
|
const SUBDOMAIN_EMPTY_PAGE =
|
|
getRootDirectory(gTestPath).replace(
|
|
"chrome://mochitests/content",
|
|
"https://www.example.com"
|
|
) + "empty.html";
|
|
|
|
add_task(async function testSiteScopedPermissionSubdomainAffectsBaseDomain() {
|
|
let subdomainOrigin = "https://www.example.com";
|
|
let subdomainPrincipal =
|
|
Services.scriptSecurityManager.createContentPrincipalFromOrigin(
|
|
subdomainOrigin
|
|
);
|
|
let id = "3rdPartyStorage^https://example.org";
|
|
|
|
await BrowserTestUtils.withNewTab(EMPTY_PAGE, async function (browser) {
|
|
Services.perms.addFromPrincipal(
|
|
subdomainPrincipal,
|
|
id,
|
|
SitePermissions.ALLOW
|
|
);
|
|
|
|
await openPermissionPopup();
|
|
|
|
let permissionsList = document.getElementById(
|
|
"permission-popup-permission-list"
|
|
);
|
|
let listEntryCount = permissionsList.querySelectorAll(
|
|
".permission-popup-permission-item"
|
|
).length;
|
|
is(
|
|
listEntryCount,
|
|
1,
|
|
"Permission exists on base domain when set on subdomain"
|
|
);
|
|
|
|
closePermissionPopup();
|
|
|
|
Services.perms.removeFromPrincipal(subdomainPrincipal, id);
|
|
|
|
await openPermissionPopup();
|
|
|
|
listEntryCount = permissionsList.querySelectorAll(
|
|
".permission-popup-permission-item-3rdPartyStorage"
|
|
).length;
|
|
is(
|
|
listEntryCount,
|
|
0,
|
|
"Permission removed on base domain when removed on subdomain"
|
|
);
|
|
|
|
await closePermissionPopup();
|
|
});
|
|
});
|
|
|
|
add_task(async function testSiteScopedPermissionBaseDomainAffectsSubdomain() {
|
|
let origin = "https://example.com";
|
|
let principal =
|
|
Services.scriptSecurityManager.createContentPrincipalFromOrigin(origin);
|
|
let id = "3rdPartyStorage^https://example.org";
|
|
|
|
await BrowserTestUtils.withNewTab(
|
|
SUBDOMAIN_EMPTY_PAGE,
|
|
async function (browser) {
|
|
Services.perms.addFromPrincipal(principal, id, SitePermissions.ALLOW);
|
|
await openPermissionPopup();
|
|
|
|
let permissionsList = document.getElementById(
|
|
"permission-popup-permission-list"
|
|
);
|
|
let listEntryCount = permissionsList.querySelectorAll(
|
|
".permission-popup-permission-item"
|
|
).length;
|
|
is(
|
|
listEntryCount,
|
|
1,
|
|
"Permission exists on base domain when set on subdomain"
|
|
);
|
|
|
|
closePermissionPopup();
|
|
|
|
Services.perms.removeFromPrincipal(principal, id);
|
|
|
|
await openPermissionPopup();
|
|
|
|
listEntryCount = permissionsList.querySelectorAll(
|
|
".permission-popup-permission-item-3rdPartyStorage"
|
|
).length;
|
|
is(
|
|
listEntryCount,
|
|
0,
|
|
"Permission removed on base domain when removed on subdomain"
|
|
);
|
|
|
|
await closePermissionPopup();
|
|
}
|
|
);
|
|
});
|