Bug 1363848 P3 Don't set LOAD_BYPASS_SERVICE_WORKER flag on internal redirects in nsHttpChannel. r=dragana

This commit is contained in:
Ben Kelly 2017-06-15 07:52:42 -07:00
Родитель 45b30214c3
Коммит b3523ebd61
1 изменённых файлов: 8 добавлений и 14 удалений

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

@ -5553,20 +5553,14 @@ nsHttpChannel::SetupReplacementChannel(nsIURI *newURI,
}
if (!(redirectFlags & nsIChannelEventSink::REDIRECT_STS_UPGRADE) &&
mInterceptCache != INTERCEPTED) {
// Ensure that internally-redirected channels, or loads with manual
// redirect mode cannot be intercepted, which would look like two
// separate requests to the nsINetworkInterceptController.
if (mRedirectMode != nsIHttpChannelInternal::REDIRECT_MODE_MANUAL ||
(redirectFlags & (nsIChannelEventSink::REDIRECT_TEMPORARY |
nsIChannelEventSink::REDIRECT_PERMANENT)) == 0) {
nsLoadFlags loadFlags = nsIRequest::LOAD_NORMAL;
rv = newChannel->GetLoadFlags(&loadFlags);
NS_ENSURE_SUCCESS(rv, rv);
loadFlags |= nsIChannel::LOAD_BYPASS_SERVICE_WORKER;
rv = newChannel->SetLoadFlags(loadFlags);
NS_ENSURE_SUCCESS(rv, rv);
}
mInterceptCache != INTERCEPTED &&
mRedirectMode != nsIHttpChannelInternal::REDIRECT_MODE_MANUAL) {
nsLoadFlags loadFlags = nsIRequest::LOAD_NORMAL;
rv = newChannel->GetLoadFlags(&loadFlags);
NS_ENSURE_SUCCESS(rv, rv);
loadFlags |= nsIChannel::LOAD_BYPASS_SERVICE_WORKER;
rv = newChannel->SetLoadFlags(loadFlags);
NS_ENSURE_SUCCESS(rv, rv);
}
if (redirectFlags & nsIChannelEventSink::REDIRECT_INTERNAL) {