summaryrefslogtreecommitdiffstats
path: root/dom/security/test/csp/file_service_worker.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /dom/security/test/csp/file_service_worker.html
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/security/test/csp/file_service_worker.html')
-rw-r--r--dom/security/test/csp/file_service_worker.html35
1 files changed, 35 insertions, 0 deletions
diff --git a/dom/security/test/csp/file_service_worker.html b/dom/security/test/csp/file_service_worker.html
new file mode 100644
index 0000000000..8dc65befb8
--- /dev/null
+++ b/dom/security/test/csp/file_service_worker.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Bug 1208559 - ServiceWorker registration not governed by CSP</title>
+</head>
+<body>
+<script>
+ function finish(status) {
+ window.parent.postMessage({result: status}, "*");
+ }
+
+ const BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN = 5;
+ const cookieBehavior = SpecialPowers.getIntPref("network.cookie.cookieBehavior");
+
+ const promises = [
+ navigator.serviceWorker.ready,
+ navigator.serviceWorker.register("file_service_worker.js", { scope: "." })
+ ];
+
+ if (cookieBehavior == BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN) {
+ Promise.allSettled(promises).then(results => {
+ const resultValues = results
+ .map(result =>
+ result.status === "fulfilled" ? "allowed" : "blocked"
+ )
+ .join(",");
+ finish(resultValues);
+ });
+ } else {
+ Promise.race(promises).then(finish.bind(null, 'allowed'),
+ finish.bind(null, 'blocked'));
+ }
+ </script>
+</body>
+</html>