summaryrefslogtreecommitdiffstats
path: root/netwerk/ipc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:02:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:02:55 +0000
commit22e2874bf6412144ab4b51b95327306ef9609b2c (patch)
tree977413f3f953a8838b52b432554e53707cf27777 /netwerk/ipc
parentReleasing progress-linux version 126.0-1~progress7.99u1. (diff)
downloadfirefox-22e2874bf6412144ab4b51b95327306ef9609b2c.tar.xz
firefox-22e2874bf6412144ab4b51b95327306ef9609b2c.zip
Merging upstream version 126.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'netwerk/ipc')
-rw-r--r--netwerk/ipc/DocumentLoadListener.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp
index 32d7036ff1..a133df4663 100644
--- a/netwerk/ipc/DocumentLoadListener.cpp
+++ b/netwerk/ipc/DocumentLoadListener.cpp
@@ -810,6 +810,24 @@ auto DocumentLoadListener::Open(nsDocShellLoadState* aLoadState,
if (cos && aUrgentStart) {
cos->AddClassFlags(nsIClassOfService::UrgentStart);
}
+
+ // ClientChannelHelper below needs us to have finalized the principal for
+ // the channel because it will request that StoragePrincipalHelper mint us a
+ // principal that needs to match the same principal that a later call to
+ // StoragePrincipalHelper will mint when determining the right origin to
+ // look up the ServiceWorker.
+ //
+ // Because nsHttpChannel::AsyncOpen calls UpdateAntiTrackingInfoForChannel
+ // which potentially flips the third party bit/flag on the partition key on
+ // the cookie jar which impacts the principal that will be minted, it is
+ // essential that UpdateAntiTrackingInfoForChannel is called before
+ // AddClientChannelHelperInParent below.
+ //
+ // Because the call to UpdateAntiTrackingInfoForChannel is largely
+ // idempotent, we currently just make the call ourselves right now. The one
+ // caveat is that the RFPRandomKey may be spuriously regenerated for
+ // top-level documents.
+ AntiTrackingUtils::UpdateAntiTrackingInfoForChannel(httpChannel);
}
// Setup a ClientChannelHelper to watch for redirects, and copy