From b3523ebd61371dcb62f22d36bf60032c38996104 Mon Sep 17 00:00:00 2001 From: Ben Kelly Date: Thu, 15 Jun 2017 07:52:42 -0700 Subject: [PATCH] Bug 1363848 P3 Don't set LOAD_BYPASS_SERVICE_WORKER flag on internal redirects in nsHttpChannel. r=dragana --- netwerk/protocol/http/nsHttpChannel.cpp | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp index 39e68f6d211f..8e1c720d7c9a 100644 --- a/netwerk/protocol/http/nsHttpChannel.cpp +++ b/netwerk/protocol/http/nsHttpChannel.cpp @@ -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) {