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
52 lines
1.8 KiB
HTML
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>
|