зеркало из https://github.com/mozilla/gecko-dev.git
e2ac45480d
Currently when sending a beacon, HttpBaseChannel::ShouldIntercept tries to get access to the nsINetworkInterceptController interface through the channel's notification callbacks, but in this case the notification callback is the nsCORSListenerProxy object (thanks to nsCORSListenerProxy::Init). nsCORSListenerProxy already knows how to forward calls to nsIInterfaceRequestor::GetInterface to mOuterNotificationCallbacks, and ShouldIntercept calls GetInterfce. But mOuterNotificationCallbacks is set by default to the callbacks of the channel at the time nsCORSListenerProxy is called, and the callbacks on this channel is intentionally null, so ShouldIntercept bails out and the beacon never gets intercepted. This patch extends nsCORSListenerProxy to make it aware of nsINetworkInterceptController, and have it route the request for nsINetworkInterceptController correctly to the docshell without the need to mess with the notification callbacks. This will be tested in bug 1147699. |
||
---|---|---|
.. | ||
moz.build | ||
nsCORSListenerProxy.cpp | ||
nsCORSListenerProxy.h | ||
nsCSPContext.cpp | ||
nsCSPContext.h | ||
nsCSPParser.cpp | ||
nsCSPParser.h | ||
nsCSPService.cpp | ||
nsCSPService.h | ||
nsCSPUtils.cpp | ||
nsCSPUtils.h | ||
nsMixedContentBlocker.cpp | ||
nsMixedContentBlocker.h |