mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 05:39:41 +02:00
Differential Revision: https://phabricator.services.mozilla.com/D24029 --HG-- rename : toolkit/components/antitracking/test/browser/head.js => toolkit/components/antitracking/test/browser/antitracking_head.js extra : moz-landing-system : lando
40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
/* import-globals-from antitracking_head.js */
|
|
|
|
AntiTracking.runTest("Test whether we receive any persistent permissions in normal windows",
|
|
// Blocking callback
|
|
async _ => {
|
|
// Nothing to do here!
|
|
},
|
|
|
|
// Non blocking callback
|
|
async _ => {
|
|
try {
|
|
let Services = SpecialPowers.Services;
|
|
// We would use TEST_3RD_PARTY_DOMAIN here, except that the variable isn't
|
|
// accessible in the context of the web page...
|
|
let uri = Services.io.newURI("https://tracking.example.org/");
|
|
for (let perm of Services.perms.getAllForURI(uri)) {
|
|
// Ignore permissions other than storage access
|
|
if (!perm.type.startsWith("3rdPartyStorage^")) {
|
|
continue;
|
|
}
|
|
is(perm.expireType, Services.perms.EXPIRE_TIME,
|
|
"Permission must expire at a specific time");
|
|
ok(perm.expireTime > 0,
|
|
"Permission must have a expiry time");
|
|
}
|
|
} catch (e) { alert(e); }
|
|
},
|
|
|
|
// Cleanup callback
|
|
async _ => {
|
|
await new Promise(resolve => {
|
|
Services.clearData.deleteData(Ci.nsIClearDataService.CLEAR_ALL, value => resolve());
|
|
});
|
|
},
|
|
null, // no extra prefs
|
|
true, // run the window.open() test
|
|
true, // run the user interaction test
|
|
0, // don't expect blocking notifications
|
|
false); // run in normal windows
|
|
|