110 lines
2.4 KiB
JavaScript
110 lines
2.4 KiB
JavaScript
const APS_PREF =
|
|
"privacy.partition.always_partition_third_party_non_cookie_storage";
|
|
|
|
PartitionedStorageHelper.runTest(
|
|
"DOMCache",
|
|
async (win3rdParty, win1stParty, allowed) => {
|
|
await win3rdParty.caches.open("wow").then(
|
|
_ => {
|
|
ok(allowed, "DOM Cache cannot be used!");
|
|
},
|
|
_ => {
|
|
ok(!allowed, "DOM Cache cannot be used!");
|
|
}
|
|
);
|
|
|
|
await win1stParty.caches.open("wow").then(
|
|
_ => {
|
|
ok(true, "DOM Cache should be available");
|
|
},
|
|
_ => {
|
|
ok(false, "DOM Cache should be available");
|
|
}
|
|
);
|
|
},
|
|
|
|
async _ => {
|
|
await new Promise(resolve => {
|
|
Services.clearData.deleteData(Ci.nsIClearDataService.CLEAR_ALL, () =>
|
|
resolve()
|
|
);
|
|
});
|
|
},
|
|
|
|
[[APS_PREF, false]],
|
|
|
|
{ runInSecureContext: true }
|
|
);
|
|
|
|
PartitionedStorageHelper.runTest(
|
|
"DOMCache",
|
|
async (win3rdParty, win1stParty) => {
|
|
await win1stParty.caches.open("wow").then(
|
|
async cache => {
|
|
ok(true, "DOM Cache should be available");
|
|
await cache.add("/");
|
|
},
|
|
_ => {
|
|
ok(false, "DOM Cache should be available");
|
|
}
|
|
);
|
|
|
|
await win3rdParty.caches.open("wow").then(
|
|
async cache => {
|
|
ok(true, "DOM Cache can be used!");
|
|
is(undefined, await cache.match("/"), "DOM Cache is partitioned");
|
|
},
|
|
_ => {
|
|
ok(false, "DOM Cache cannot be used!");
|
|
}
|
|
);
|
|
},
|
|
|
|
async _ => {
|
|
await new Promise(resolve => {
|
|
Services.clearData.deleteData(Ci.nsIClearDataService.CLEAR_ALL, () =>
|
|
resolve()
|
|
);
|
|
});
|
|
},
|
|
|
|
[[APS_PREF, true]],
|
|
|
|
{ runInSecureContext: true }
|
|
);
|
|
|
|
// Test that DOM cache is also available in PBM.
|
|
PartitionedStorageHelper.runTest(
|
|
"DOMCache",
|
|
async (win3rdParty, win1stParty) => {
|
|
await win1stParty.caches.open("wow").then(
|
|
async () => {
|
|
ok(true, "DOM Cache should be available in PBM");
|
|
},
|
|
_ => {
|
|
ok(false, "DOM Cache should be available in PBM");
|
|
}
|
|
);
|
|
|
|
await win3rdParty.caches.open("wow").then(
|
|
async () => {
|
|
ok(true, "DOM Cache should be available in PBM");
|
|
},
|
|
_ => {
|
|
ok(false, "DOM Cache should be available in PBM");
|
|
}
|
|
);
|
|
},
|
|
|
|
async _ => {
|
|
await new Promise(resolve => {
|
|
Services.clearData.deleteData(Ci.nsIClearDataService.CLEAR_ALL, () =>
|
|
resolve()
|
|
);
|
|
});
|
|
},
|
|
|
|
[],
|
|
|
|
{ runInSecureContext: true, runInPrivateWindow: true }
|
|
);
|