summaryrefslogtreecommitdiffstats
path: root/netwerk
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:01:59 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:01:59 +0000
commit85310221f0512bf1aeefc49ead8a1e11bda55990 (patch)
tree70a3efbfee6c7cbeb626185b35166d2c376b4bb8 /netwerk
parentAdding upstream version 126.0. (diff)
downloadfirefox-85310221f0512bf1aeefc49ead8a1e11bda55990.tar.xz
firefox-85310221f0512bf1aeefc49ead8a1e11bda55990.zip
Adding upstream version 126.0.1.upstream/126.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'netwerk')
-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