Bug 1945565 - Add ChromeOnly features to Fetch to allow FedCM to work - r=valentin,necko-reviewers,webidl,farre,sefeng,smaug

This updates RequestInit's ChromeOnly behavior:
- fixes up triggeringPrincipalOverride
- adds neverTaint

This adds Content-type: web-identity to ORB's allowlist.

Differential Revision: https://phabricator.services.mozilla.com/D237043
This commit is contained in:
Benjamin VanderSloot
2025-03-13 00:51:19 +00:00
parent 5f1366d65b
commit 950c05697e
6 changed files with 52 additions and 9 deletions

View File

@@ -646,14 +646,19 @@ nsresult FetchDriver::HttpFetch(
nsCOMPtr<nsIPrincipal> principal = mPrincipal;
if (principal->IsSystemPrincipal() &&
mRequest->GetTriggeringPrincipalOverride()) {
principal = mRequest->GetTriggeringPrincipalOverride();
rv = NS_NewChannelWithTriggeringPrincipal(
getter_AddRefs(chan), uri, mPrincipal,
mRequest->GetTriggeringPrincipalOverride(), secFlags,
mRequest->ContentPolicyType(), mCookieJarSettings,
mPerformanceStorage, mLoadGroup, nullptr, /* aCallbacks */
loadFlags, ios);
} else {
rv = NS_NewChannel(getter_AddRefs(chan), uri, mPrincipal, secFlags,
mRequest->ContentPolicyType(), mCookieJarSettings,
mPerformanceStorage, mLoadGroup,
nullptr, /* aCallbacks */
loadFlags, ios);
}
rv =
NS_NewChannel(getter_AddRefs(chan), uri, principal, secFlags,
mRequest->ContentPolicyType(), mCookieJarSettings,
mPerformanceStorage, mLoadGroup, nullptr, /* aCallbacks */
loadFlags, ios);
}
NS_ENSURE_SUCCESS(rv, rv);