mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 05:37:11 +00:00
import change from rmottola/Arctic-Fox:
- Bug 1142761 - Move CallSetter into ScriptedIndirectProxyHandler so it will eventually be deleted along with its only remaining caller. (a5a0b3f6b) - Bug 1143810 - Remove some XPConnect JSClass::setProperty hooks that are not needed anymore. (4eda6a60b) - Bug 1142195 - Remove some unused class declarations in the DOM Cache code (afd802623) - Bug 1145345 - Account for a greater variety of rounding errors when comparing coordinates (6a41f34f3) - Bug 1145787 - Put a misplaced assertion into its proper place. (7f760a66d) - Bug 1146059 - Remove Response.finalURL. (230d9fa50) - Bug 1134324 - Set CORS mode and credentials on Fetch event Request. r=michal (772fcac8f) - Bug 1136200 - Verify request type is not no-cors if response is opaque (396c9bfb4) - Bug 1144249 - fix fetch no-cors mode. r=bkelly (af9656291) - Bug 1144876 - Stop spamming stderr with a warning every time that we encounter a document that is not controlled by a service worker; (0a5c5fbfd) - Bug 1117172 part 1. Allow passing an optional aGivenProto to binding Wrap methods. (8aea85046) - Bug 1117172 part 2. Change the non-wrappercached WrapObject methods to allow passing in aGivenProto. r=peterv (13146be83) - Bug 1117172 part 3. Change the wrappercached WrapObject methods to al low passing in aGivenProto. r=peterv (1621ef48d) - Bug 1146293 - Fix coding style break (intent and line length) caused by Bug 1117172 and Bug 1145631. (0822709f1) - Bug 1121298 - Part 1: refactor MozNDEFRecord cstor. (6e57a37ec) - Bug 1121298 - Part 2: Add Constructor(uri) for MozNDEFRecord. (46f921bcf) - Bug 1121298 - Part 3. add getAsURI. (e67cad94b) - Bug 1138886 - Structured Clone for MozNDEFRecord. (With adaptations of Bug 1117172 part 3) (b83b7f684) - Bug 1143504 - Disconnect the Cache object from its actor when it gets cycle collected. (dae58dcdd)
This commit is contained in:
+21
-13
@@ -485,16 +485,24 @@ FetchDriver::HttpFetch(bool aCORSFlag, bool aCORSPreflightFlag, bool aAuthentica
|
||||
internalChan->ForceNoIntercept();
|
||||
}
|
||||
|
||||
// Set up a CORS proxy that will handle the various requirements of the CORS
|
||||
// protocol. It handles the preflight cache and CORS response headers.
|
||||
// If the request is allowed, it will start our original request
|
||||
// and our observer will be notified. On failure, our observer is notified
|
||||
// directly.
|
||||
nsRefPtr<nsCORSListenerProxy> corsListener =
|
||||
new nsCORSListenerProxy(this, mPrincipal, useCredentials);
|
||||
rv = corsListener->Init(chan, DataURIHandling::Allow);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
return FailWithNetworkError();
|
||||
nsCOMPtr<nsIStreamListener> listener = this;
|
||||
|
||||
// Unless the cors mode is explicitly no-cors, we set up a cors proxy even in
|
||||
// the same-origin case, since the proxy does not enforce cors header checks
|
||||
// in the same-origin case.
|
||||
if (mRequest->Mode() != RequestMode::No_cors) {
|
||||
// Set up a CORS proxy that will handle the various requirements of the CORS
|
||||
// protocol. It handles the preflight cache and CORS response headers.
|
||||
// If the request is allowed, it will start our original request
|
||||
// and our observer will be notified. On failure, our observer is notified
|
||||
// directly.
|
||||
nsRefPtr<nsCORSListenerProxy> corsListener =
|
||||
new nsCORSListenerProxy(this, mPrincipal, useCredentials);
|
||||
rv = corsListener->Init(chan, DataURIHandling::Allow);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
return FailWithNetworkError();
|
||||
}
|
||||
listener = corsListener.forget();
|
||||
}
|
||||
|
||||
// If preflight is required, start a "CORS preflight fetch"
|
||||
@@ -507,12 +515,12 @@ FetchDriver::HttpFetch(bool aCORSFlag, bool aCORSPreflightFlag, bool aAuthentica
|
||||
nsAutoTArray<nsCString, 5> unsafeHeaders;
|
||||
mRequest->Headers()->GetUnsafeHeaders(unsafeHeaders);
|
||||
|
||||
rv = NS_StartCORSPreflight(chan, corsListener, mPrincipal,
|
||||
rv = NS_StartCORSPreflight(chan, listener, mPrincipal,
|
||||
useCredentials,
|
||||
unsafeHeaders,
|
||||
getter_AddRefs(preflightChannel));
|
||||
} else {
|
||||
rv = chan->AsyncOpen(corsListener, nullptr);
|
||||
rv = chan->AsyncOpen(listener, nullptr);
|
||||
}
|
||||
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
@@ -773,7 +781,7 @@ FetchDriver::AsyncOnChannelRedirect(nsIChannel* aOldChannel,
|
||||
if (!NS_IsInternalSameURIRedirect(aOldChannel, aNewChannel, aFlags)) {
|
||||
rv = DoesNotRequirePreflight(aNewChannel);
|
||||
if (NS_FAILED(rv)) {
|
||||
NS_WARNING("nsXMLHttpRequest::OnChannelRedirect: "
|
||||
NS_WARNING("FetchDriver::OnChannelRedirect: "
|
||||
"DoesNotRequirePreflight returned failure");
|
||||
return rv;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user