Files
sousa-gecko/toolkit/components/antitracking/test/browser/3rdParty.html
T
Manuel Bucher 446ffade62 Bug 1918337 - Rename cookieBehavior BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN to BEHAVIOR_PARTITION_FOREIGN r=mkaply,extension-reviewers,devtools-reviewers,cookie-reviewers,dom-worker-reviewers,Sasha,Gijs,farre,nchevobbe,robwu,asuth,timhuang
The cookie behavior was changed in bug 1918342. Lets update the
constant name to reflect the new behavior.

This adds new string constants for enterprise policy while keeping the
old constant for backwards compatibilty.
"reject-tracker-and-partition-foreign" is now deprecated and aliases to
the new "partition-foreign"

Addons API keeps the current "reject_trackers_and_partition_foreign"[1]
string constant for compatibility.

[1]: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy/websites#cookieconfig

Differential Revision: https://phabricator.services.mozilla.com/D300794
2026-05-26 15:01:08 +00:00

52 lines
1.8 KiB
HTML

<html>
<head>
<title>3rd party content!</title>
<script type="text/javascript" src="https://example.com/browser/toolkit/components/antitracking/test/browser/storageAccessAPIHelpers.js"></script>
</head>
<body>
<h1>Here the 3rd party content!</h1>
<script>
function info(msg) {
parent.postMessage({ type: "info", msg }, "*");
}
function ok(what, msg) {
parent.postMessage({ type: "ok", what: !!what, msg }, "*");
}
function is(a, b, msg) {
ok(a === b, msg);
}
onmessage = function(e) {
let data = e.data;
if (data.includes("!!!")) {
// The data argument may be packed with information about whether we are on
// the allow list. In that case, extract that information and prepare it
// for our callbacks to access it.
let parts = data.split("!!!");
// Only consider ourselves allow-listed when the cookie policy is set to
// 'block third-party trackers or 'block third-party trackers and partition
// third-party cookies', since otherwise we won't obtain storage access by
// default, which is what this data is used for in tests.
let cookieBehavior = SpecialPowers.isContentWindowPrivate(window)
? SpecialPowers.Services.prefs.getIntPref("network.cookie.cookieBehavior.pbmode")
: SpecialPowers.Services.prefs.getIntPref("network.cookie.cookieBehavior");
window.allowListed =
parts[0] === "true" &&
(cookieBehavior == SpecialPowers.Ci.nsICookieService.BEHAVIOR_REJECT_TRACKER ||
cookieBehavior == SpecialPowers.Ci.nsICookieService.BEHAVIOR_PARTITION_FOREIGN);
data = parts[1];
}
let runnableStr = `(() => {return (${data});})();`;
let runnable = eval(runnableStr); // eslint-disable-line no-eval
runnable.call(this, /* Phase */ 1).then(_ => {
parent.postMessage({ type: "finish" }, "*");
});
};
</script>
</body>
</html>