import changes from `dev' branch of rmottola/Arctic-Fox:

- Bug 1182147: Ensure ImageHost does not attempt to call DrawQuad with an effect unsupported by the compositor. r=nical (5624e9134f)
- Bug 1151749 - "Win-Only: Disabled Hardware Acceleration + CSS 3D transform on canvas -> black artefacts on hover". r=nical (54c49071b9)
- Bug 1184224 - Remove gfxPrefs.h include from gfxPlatformGtk.h. r=karlt (eb907daa58)
- Bug 1183820 - Expose if cairo uses XRender to GetAzureBackendInfo. r=mattwoodrow (10044ecfb0)
- Bug 1128934 - Call XFlush after compositing to prevent jank. r=karlt (f63b9dc1b5)
- Bug 1151663 - New mochitest for this bug. r=kats (9344d22ed6)
- Bug 1176402 - Have synthesizeNativeWheel() and synthesizeNativeMouseMove() accept coordinates relative to the element's bounding rect. r=kats (cbdffe3869)
- Bug 1177018 - Work around the iframe in which mochitests are run not being scrollable. r=kats (d24291080c)
- Bug 1177018 - Disable smooth scrolling in the APZ layerization test. r=kats (e1af545da1)
- Bug 1181678 - Improve the check for skipping test_layerization if APZ is disabled. r=botond (91e5ead610)
- Bug 1177018 - Enable chaos mode for the APZ layerization test. r=kats (f07fdeb936)
- Bug 1177018 - Only enable APZ test logging for tests that actually use it. r=kats (9f24ea01c4)
- Bug 1196294 - Remove the mCause from TimelineMarkers, r=tromey (5abd1c057d)
- Bug 1195232 - Stop using TracingMetadata from GeckoProfiler.h, r=tromey (e736038873)
- Bug 1200118 - Create a barebones TimelineMarker abstract class, r=tromey (9930c83c2f)
- Bug 1200252 - Add marker for when the IPC request for a composite is sent to the compositor thread, r=jsantell,matt (becc11f58b)
- align some minor thing to gecko (5bb64e322a)
- Bug 1204581 - Add a deprecation warning for the usage of AppCache when service worker fetch interception is enabled; r=mcmanus,baku (69949c8d96)
- Bug 1210941 P2 Use LOAD_BYPASS_SERVICE_WORKER in HttpBaseChannel instead of mForceNoIntercept. r=jduell (fdb7afc0be)
- Bug 1173171 - Disable external jar: via preference. r=jduell (704cfb0b9c)
- Bug 1210941 P3 Make jar channels use LOAD_BYPASS_SERVICE_WORKER internally. r=jduell (d871dc4837)
- Bug 1210941 P4 Use LOAD_BYPASS_SERVICE_WORKER instead of ForceNoIntercept in nsDocShell. r=ehsan (ea5ed76717)
- Bug 1210941 P5 Use LOAD_BYPASS_SERVICE_WORKER in nsObjectLoadingContent instead of ForceNoIntercept(). r=ehsan (9e821adfaa)
- Bug 1210941 P6 Use LOAD_BYPASS_SERVICE_WORKER instead of ForceNoIntercept in FetchDriver. r=ehsan (02685be882)
- Bug 1210941 P7 Use LOAD_BYPASS_SERVICE_WORKER in ServiceWorkerScriptCache. r=ehsan (45fa163dd2)
- Bug 1182112 - XML documents should not be intercepted by ServiceWorkers. r=ehsan (a9dfeffcb3)
- Bug 1210941 P8 Use LOAD_BYPASS_SERVICE_WORKER in xslt txURIUtils. r=ehsan (d7686d572b)
- Bug 1210941 P9 Use LOAD_BYPASS_SERVICE_WORKER in nsCORSListenerProxy. r=ehsan (653f50de45)
- Bug 1205302 - Disallow intercepting OCSP requests; r=jdm (b4650e78d9)
- Bug 1210941 P10 Use LOAD_BYPASS_SERVICE_WORKER in nsNSSCallbacks. r=ehsan (b4b8b3f503)
- Bug 1210941 P11 Use LOAD_BYPASS_SERVICE_WORKER in worker ScriptLoader. r=ehsan (ac07404832)
- Bug 1210941 P12 Remove http channel's ForceNoIntercept. r=jduell IGNORE IDL (a7592a83c4)
- Bug 1210941 P13 Remove ForceNoIntercept from jar channel. r=jduell (617544fcee)
- Bug 1169613 - Use content type of synthesized response for JAR channel requests if available. Part 1: Set Content-Type of synthesized reponses for JAR channel requests. r=jdm (e32061a26a)
- Bug 1169613 - Use content type of synthesized response for JAR channel requests if available. Part 2: Set Content-Type for JAR Channel requests on Fetch API responses. r=nsm (da43e29583)
- Bug 1207556 - Part 1: Stop reusing the loadinfo in StartCORSPreflight; r=sicking (4724bfa8cd)
- Bug 1207556 - Part 2: Fix the beacon CORS preflight tests; r=sicking (c61a699f9f)
- Bug 1111834 - CORS preflight of navigator.sendBeacon() should not follow 30x redirect - tests. r=sicking (2871ad22e7)
- fix build because of previous backports (e3096e6f9a)
- Bug 1161677 - Expose dev mode state read-only through the navigator.hasFeature() api r=ehsan (013399847b)
- Bug 1203680 P8 nsCORSListenerProxy::OnStartRequest must always call outer OnStartRequest. r=ehsan (9a67709770)
- spacing (d4511b37c4)
- missing bit of 920017 and some telemetry (2bf267ce72)
This commit is contained in:
2022-09-26 16:21:15 +08:00
parent 7f6fda62d8
commit 938961e76b
87 changed files with 1154 additions and 402 deletions
+16 -15
View File
@@ -108,6 +108,7 @@ ChannelFromScriptURL(nsIPrincipal* principal,
bool aIsMainScript,
WorkerScriptType aWorkerScriptType,
nsContentPolicyType aContentPolicyType,
nsLoadFlags aLoadFlags,
nsIChannel** aChannel)
{
AssertIsOnMainThread();
@@ -167,7 +168,7 @@ ChannelFromScriptURL(nsIPrincipal* principal,
NS_ENSURE_SUCCESS(rv, NS_ERROR_DOM_SECURITY_ERR);
}
uint32_t flags = nsIRequest::LOAD_NORMAL | nsIChannel::LOAD_CLASSIFY_URI;
aLoadFlags |= nsIChannel::LOAD_CLASSIFY_URI;
nsCOMPtr<nsIChannel> channel;
// If we have the document, use it
@@ -179,7 +180,7 @@ ChannelFromScriptURL(nsIPrincipal* principal,
aContentPolicyType,
loadGroup,
nullptr, // aCallbacks
flags,
aLoadFlags,
ios);
} else {
// We must have a loadGroup with a load context for the principal to
@@ -194,7 +195,7 @@ ChannelFromScriptURL(nsIPrincipal* principal,
aContentPolicyType,
loadGroup,
nullptr, // aCallbacks
flags,
aLoadFlags,
ios);
}
@@ -855,11 +856,20 @@ private:
ScriptLoadInfo& loadInfo = mLoadInfos[aIndex];
nsresult& rv = loadInfo.mLoadResult;
nsLoadFlags loadFlags = nsIRequest::LOAD_NORMAL;
// If we are loading a script for a ServiceWorker then we must not
// try to intercept it. If the interception matches the current
// ServiceWorker's scope then we could deadlock the load.
if (mWorkerPrivate->IsServiceWorker()) {
loadFlags |= nsIChannel::LOAD_BYPASS_SERVICE_WORKER;
}
if (!channel) {
rv = ChannelFromScriptURL(principal, baseURI, parentDoc, loadGroup, ios,
secMan, loadInfo.mURL, IsMainWorkerScript(),
mWorkerScriptType,
mWorkerPrivate->ContentPolicyType(),
mWorkerPrivate->ContentPolicyType(), loadFlags,
getter_AddRefs(channel));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
@@ -887,16 +897,6 @@ private:
return rv;
}
// If we are loading a script for a ServiceWorker then we must not
// try to intercept it. If the interception matches the current
// ServiceWorker's scope then we could deadlock the load.
if (mWorkerPrivate->IsServiceWorker()) {
nsCOMPtr<nsIHttpChannelInternal> internal = do_QueryInterface(channel);
if (internal) {
internal->ForceNoIntercept();
}
}
if (loadInfo.mCacheStatus != ScriptLoadInfo::ToBeCached) {
rv = channel->AsyncOpen(loader, indexSupports);
if (NS_WARN_IF(NS_FAILED(rv))) {
@@ -1847,7 +1847,8 @@ ChannelFromScriptURLMainThread(nsIPrincipal* aPrincipal,
return ChannelFromScriptURL(aPrincipal, aBaseURI, aParentDoc, aLoadGroup,
ios, secMan, aScriptURL, true, WorkerScript,
aContentPolicyType, aChannel);
aContentPolicyType, nsIRequest::LOAD_NORMAL,
aChannel);
}
nsresult