mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-24 16:17:29 +09:00
No Issue - Make nsCSPService cancel the channel if a redirect is blocked by CSP
Bug 1338304
This commit is contained in:
parent
8535573f07
commit
a2c6127832
1 changed files with 7 additions and 1 deletions
|
|
@ -278,7 +278,11 @@ CSPService::AsyncOnChannelRedirect(nsIChannel *oldChannel,
|
||||||
*/
|
*/
|
||||||
nsCOMPtr<nsIURI> originalUri;
|
nsCOMPtr<nsIURI> originalUri;
|
||||||
rv = oldChannel->GetOriginalURI(getter_AddRefs(originalUri));
|
rv = oldChannel->GetOriginalURI(getter_AddRefs(originalUri));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
if (NS_FAILED(rv)) {
|
||||||
|
autoCallback.DontCallback();
|
||||||
|
oldChannel->Cancel(NS_ERROR_DOM_BAD_URI);
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
bool isPreload = nsContentUtils::IsPreloadType(policyType);
|
bool isPreload = nsContentUtils::IsPreloadType(policyType);
|
||||||
|
|
||||||
|
|
@ -310,6 +314,7 @@ CSPService::AsyncOnChannelRedirect(nsIChannel *oldChannel,
|
||||||
// is no point in checking the real policy
|
// is no point in checking the real policy
|
||||||
if (NS_CP_REJECTED(aDecision)) {
|
if (NS_CP_REJECTED(aDecision)) {
|
||||||
autoCallback.DontCallback();
|
autoCallback.DontCallback();
|
||||||
|
oldChannel->Cancel(NS_ERROR_DOM_BAD_URI);
|
||||||
return NS_BINDING_FAILED;
|
return NS_BINDING_FAILED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -333,6 +338,7 @@ CSPService::AsyncOnChannelRedirect(nsIChannel *oldChannel,
|
||||||
// if ShouldLoad doesn't accept the load, cancel the request
|
// if ShouldLoad doesn't accept the load, cancel the request
|
||||||
if (!NS_CP_ACCEPTED(aDecision)) {
|
if (!NS_CP_ACCEPTED(aDecision)) {
|
||||||
autoCallback.DontCallback();
|
autoCallback.DontCallback();
|
||||||
|
oldChannel->Cancel(NS_ERROR_DOM_BAD_URI);
|
||||||
return NS_BINDING_FAILED;
|
return NS_BINDING_FAILED;
|
||||||
}
|
}
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue