Bug 1628608 - P1 - DocumentLoadListener transmits blob data for triggering principal before cross-process redirect if URI is a blob URL r=baku,necko-reviewers,dragana

Differential Revision: https://phabricator.services.mozilla.com/D71889
This commit is contained in:
ssengupta 2020-04-23 13:57:06 +00:00
Родитель 40e3519c0b
Коммит c4ebd85665
1 изменённых файлов: 15 добавлений и 0 удалений

Просмотреть файл

@ -1101,6 +1101,21 @@ DocumentLoadListener::RedirectToRealChannel(
args.timing() = Some(std::move(mTiming));
}
auto loadInfo = args.loadInfo();
if (loadInfo.isNothing()) {
return PDocumentChannelParent::RedirectToRealChannelPromise::
CreateAndReject(ipc::ResponseRejectReason::SendError, __func__);
}
nsresult rv;
nsCOMPtr<nsIPrincipal> triggeringPrincipal =
PrincipalInfoToPrincipal(loadInfo.ref().triggeringPrincipalInfo(), &rv);
if (NS_SUCCEEDED(rv) && triggeringPrincipal) {
cp->TransmitBlobDataIfBlobURL(args.uri(), triggeringPrincipal);
}
return cp->SendCrossProcessRedirect(args,
std::move(aStreamFilterEndpoints));
}