From 971fc4b838f15e6c0273d75175d5faba80297e18 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Fri, 5 Jan 2024 00:08:01 -0600 Subject: [PATCH] Issue #2402 - Improve ServiceWorker asserts and verify load principal does not inherit CSP. https://bugzilla.mozilla.org/show_bug.cgi?id=1337543 --- dom/workers/ScriptLoader.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/dom/workers/ScriptLoader.cpp b/dom/workers/ScriptLoader.cpp index 123a46526a..3295160af3 100644 --- a/dom/workers/ScriptLoader.cpp +++ b/dom/workers/ScriptLoader.cpp @@ -1279,6 +1279,7 @@ private: nsCOMPtr responsePrincipal = PrincipalInfoToPrincipal(*aPrincipalInfo); + MOZ_DIAGNOSTIC_ASSERT(responsePrincipal); nsIPrincipal* principal = mWorkerPrivate->GetPrincipal(); if (!principal) { @@ -1306,14 +1307,21 @@ private: mWorkerPrivate->SetBaseURI(finalURI); } - mozilla::DebugOnly principal = mWorkerPrivate->GetPrincipal(); - MOZ_ASSERT(principal); nsILoadGroup* loadGroup = mWorkerPrivate->GetLoadGroup(); - MOZ_ASSERT(loadGroup); + MOZ_DIAGNOSTIC_ASSERT(loadGroup); - mozilla::DebugOnly equal = false; - MOZ_ASSERT(responsePrincipal && NS_SUCCEEDED(responsePrincipal->Equals(principal, &equal))); - MOZ_ASSERT(equal); +#if defined(DEBUG) + nsIPrincipal* principal = mWorkerPrivate->GetPrincipal(); + MOZ_DIAGNOSTIC_ASSERT(principal); + + bool equal = false; + MOZ_ALWAYS_SUCCEEDS(responsePrincipal->Equals(principal, &equal)); + MOZ_DIAGNOSTIC_ASSERT(equal); + + nsCOMPtr csp; + MOZ_ALWAYS_SUCCEEDS(responsePrincipal->GetCsp(getter_AddRefs(csp))); + MOZ_DIAGNOSTIC_ASSERT(!csp); +#endif mWorkerPrivate->InitChannelInfo(aChannelInfo); mWorkerPrivate->SetPrincipal(responsePrincipal, loadGroup);