☠☠ backed out by c8ad1b01b299 ☠ ☠ | |
author | Christoph Kerschbaumer <mozilla@christophkerschbaumer.com> |
Wed, 12 Aug 2015 21:36:33 -0700 | |
changeset 257605 | f99b27e40987b982c17fa8271ad94754228f4e92 |
parent 257604 | 0f8675867f5278f31dd86b8b60fa3067fb5c647b |
child 257606 | fa170734154a12789670d9621be3483105b35558 |
push id | 29223 |
push user | kwierso@gmail.com |
push date | Thu, 13 Aug 2015 22:18:08 +0000 |
treeherder | mozilla-central@4b35236fc76e [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | sicking |
bugs | 1193924 |
milestone | 43.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/jsurl/nsJSProtocolHandler.cpp +++ b/dom/jsurl/nsJSProtocolHandler.cpp @@ -560,16 +560,25 @@ nsJSChannel::Open2(nsIInputStream** aStr nsresult rv = nsContentSecurityManager::doContentSecurityCheck(this, listener); NS_ENSURE_SUCCESS(rv, rv); return Open(aStream); } NS_IMETHODIMP nsJSChannel::AsyncOpen(nsIStreamListener *aListener, nsISupports *aContext) { +#ifdef DEBUG + { + nsCOMPtr<nsILoadInfo> loadInfo = nsIChannel::GetLoadInfo(); + MOZ_ASSERT(!loadInfo || loadInfo->GetSecurityMode() == 0 || + loadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + } +#endif + NS_ENSURE_ARG(aListener); // First make sure that we have a usable inner window; we'll want to make // sure that we execute against that inner and no other. nsIScriptGlobalObject* global = GetGlobalObject(this); if (!global) { return NS_ERROR_NOT_AVAILABLE; }
--- a/image/decoders/icon/mac/nsIconChannelCocoa.mm +++ b/image/decoders/icon/mac/nsIconChannelCocoa.mm @@ -220,16 +220,20 @@ nsIconChannel::ExtractIconInfoFromUrl(ns return NS_OK; } NS_IMETHODIMP nsIconChannel::AsyncOpen(nsIStreamListener* aListener, nsISupports* ctxt) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + nsCOMPtr<nsIInputStream> inStream; nsresult rv = MakeInputStream(getter_AddRefs(inStream), true); NS_ENSURE_SUCCESS(rv, rv); // Init our stream pump rv = mPump->Init(inStream, int64_t(-1), int64_t(-1), 0, 0, false); NS_ENSURE_SUCCESS(rv, rv);
--- a/image/decoders/icon/win/nsIconChannel.cpp +++ b/image/decoders/icon/win/nsIconChannel.cpp @@ -234,16 +234,20 @@ nsIconChannel::ExtractIconInfoFromUrl(ns return file->Clone(aLocalFile); } NS_IMETHODIMP nsIconChannel::AsyncOpen(nsIStreamListener* aListener, nsISupports* ctxt) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + nsCOMPtr<nsIInputStream> inStream; nsresult rv = MakeInputStream(getter_AddRefs(inStream), true); if (NS_FAILED(rv)) { return rv; } // Init our streampump rv = mPump->Init(inStream, int64_t(-1), int64_t(-1), 0, 0, false);
--- a/modules/libjar/nsJARChannel.cpp +++ b/modules/libjar/nsJARChannel.cpp @@ -928,16 +928,20 @@ nsJARChannel::OverrideWithSynthesizedRes rv = mSynthesizedResponsePump->AsyncRead(this, nullptr); NS_ENSURE_SUCCESS_VOID(rv); } NS_IMETHODIMP nsJARChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *ctx) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetEnforceSecurity(), + "security flags in loadInfo but asyncOpen2() not called"); + LOG(("nsJARChannel::AsyncOpen [this=%x]\n", this)); NS_ENSURE_ARG_POINTER(listener); NS_ENSURE_TRUE(!mOpened, NS_ERROR_IN_PROGRESS); NS_ENSURE_TRUE(!mIsPending, NS_ERROR_IN_PROGRESS); mJarFile = nullptr; mIsUnsafe = true;
--- a/netwerk/base/nsBaseChannel.cpp +++ b/netwerk/base/nsBaseChannel.cpp @@ -621,16 +621,20 @@ nsBaseChannel::Open2(nsIInputStream** aS nsresult rv = nsContentSecurityManager::doContentSecurityCheck(this, listener); NS_ENSURE_SUCCESS(rv, rv); return Open(aStream); } NS_IMETHODIMP nsBaseChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *ctxt) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + NS_ENSURE_TRUE(mURI, NS_ERROR_NOT_INITIALIZED); NS_ENSURE_TRUE(!mPump, NS_ERROR_IN_PROGRESS); NS_ENSURE_TRUE(!mWasOpened, NS_ERROR_ALREADY_OPENED); NS_ENSURE_ARG(listener); // Ensure that this is an allowed port before proceeding. nsresult rv = NS_CheckPortSafety(mURI); if (NS_FAILED(rv)) {
--- a/netwerk/protocol/app/AppProtocolHandler.cpp +++ b/netwerk/protocol/app/AppProtocolHandler.cpp @@ -106,16 +106,20 @@ DummyChannel::Open2(nsIInputStream** aSt nsCOMPtr<nsIStreamListener> listener; nsresult rv = nsContentSecurityManager::doContentSecurityCheck(this, listener); NS_ENSURE_SUCCESS(rv, rv); return Open(aStream); } NS_IMETHODIMP DummyChannel::AsyncOpen(nsIStreamListener* aListener, nsISupports* aContext) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + mListener = aListener; mListenerContext = aContext; mPending = true; if (mLoadGroup) { mLoadGroup->AddRequest(this, aContext); }
--- a/netwerk/protocol/http/HttpChannelChild.cpp +++ b/netwerk/protocol/http/HttpChannelChild.cpp @@ -1483,16 +1483,20 @@ HttpChannelChild::GetSecurityInfo(nsISup NS_ENSURE_ARG_POINTER(aSecurityInfo); NS_IF_ADDREF(*aSecurityInfo = mSecurityInfo); return NS_OK; } NS_IMETHODIMP HttpChannelChild::AsyncOpen(nsIStreamListener *listener, nsISupports *aContext) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + LOG(("HttpChannelChild::AsyncOpen [this=%p uri=%s]\n", this, mSpec.get())); if (mCanceled) return mStatus; NS_ENSURE_TRUE(gNeckoChild != nullptr, NS_ERROR_FAILURE); NS_ENSURE_ARG_POINTER(listener); NS_ENSURE_TRUE(!mIsPending, NS_ERROR_IN_PROGRESS);
--- a/netwerk/protocol/http/nsHttpChannel.cpp +++ b/netwerk/protocol/http/nsHttpChannel.cpp @@ -4948,16 +4948,20 @@ nsHttpChannel::GetSecurityInfo(nsISuppor // If any of the functions that AsyncOpen calls returns immediately an error // AsyncAbort(which calls onStart/onStopRequest) does not need to be call. // To be sure that they are not call ReleaseListeners() is called. // If AsyncOpen returns NS_OK, after that point AsyncAbort must be called on // any error. NS_IMETHODIMP nsHttpChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *context) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + LOG(("nsHttpChannel::AsyncOpen [this=%p]\n", this)); NS_ENSURE_ARG_POINTER(listener); NS_ENSURE_TRUE(!mIsPending, NS_ERROR_IN_PROGRESS); NS_ENSURE_TRUE(!mWasOpened, NS_ERROR_ALREADY_OPENED); nsresult rv;
--- a/netwerk/protocol/rtsp/RtspChannelChild.cpp +++ b/netwerk/protocol/rtsp/RtspChannelChild.cpp @@ -102,16 +102,20 @@ private: nsRefPtr<nsIStreamListener> mListener; nsRefPtr<nsIRequest> mRequest; nsRefPtr<nsISupports> mContext; }; NS_IMETHODIMP RtspChannelChild::AsyncOpen(nsIStreamListener *aListener, nsISupports *aContext) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + // Precondition checks. MOZ_ASSERT(aListener); nsCOMPtr<nsIURI> uri = nsBaseChannel::URI(); NS_ENSURE_TRUE(uri, NS_ERROR_ILLEGAL_VALUE); // Create RtspController. nsCOMPtr<nsIStreamingProtocolControllerService> mediaControllerService = do_GetService(MEDIASTREAMCONTROLLERSERVICE_CONTRACTID);
--- a/netwerk/protocol/viewsource/nsViewSourceChannel.cpp +++ b/netwerk/protocol/viewsource/nsViewSourceChannel.cpp @@ -253,16 +253,25 @@ nsViewSourceChannel::Open2(nsIInputStrea // the necessary security checks. loadInfo->SetEnforceSecurity(true); return Open(aStream); } NS_IMETHODIMP nsViewSourceChannel::AsyncOpen(nsIStreamListener *aListener, nsISupports *ctxt) { +#ifdef DEBUG + { + nsCOMPtr<nsILoadInfo> loadInfo = mChannel->GetLoadInfo(); + MOZ_ASSERT(!loadInfo || loadInfo->GetSecurityMode() == 0 || + loadInfo->GetEnforceSecurity(), + "security flags in loadInfo but asyncOpen2() not called"); + } +#endif + NS_ENSURE_TRUE(mChannel, NS_ERROR_FAILURE); mListener = aListener; /* * We want to add ourselves to the loadgroup before opening * mChannel, since we want to make sure we're in the loadgroup * when mChannel finishes and fires OnStopRequest()
--- a/netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp +++ b/netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp @@ -621,16 +621,20 @@ GetTabChild(nsIChannel* aChannel) nsCOMPtr<nsITabChild> iTabChild; NS_QueryNotificationCallbacks(aChannel, iTabChild); return iTabChild ? static_cast<mozilla::dom::TabChild*>(iTabChild.get()) : nullptr; } NS_IMETHODIMP WyciwygChannelChild::AsyncOpen(nsIStreamListener *aListener, nsISupports *aContext) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + LOG(("WyciwygChannelChild::AsyncOpen [this=%p]\n", this)); // The only places creating wyciwyg: channels should be // HTMLDocument::OpenCommon and session history. Both should be setting an // owner or loadinfo. NS_PRECONDITION(mOwner || mLoadInfo, "Must have a principal"); NS_ENSURE_STATE(mOwner || mLoadInfo);
--- a/netwerk/protocol/wyciwyg/nsWyciwygChannel.cpp +++ b/netwerk/protocol/wyciwyg/nsWyciwygChannel.cpp @@ -426,16 +426,20 @@ nsWyciwygChannel::Open2(nsIInputStream** nsresult rv = nsContentSecurityManager::doContentSecurityCheck(this, listener); NS_ENSURE_SUCCESS(rv, rv); return Open(aStream); } NS_IMETHODIMP nsWyciwygChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *ctx) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + LOG(("nsWyciwygChannel::AsyncOpen [this=%p]\n", this)); MOZ_ASSERT(mMode == NONE, "nsWyciwygChannel already open"); NS_ENSURE_TRUE(!mIsPending, NS_ERROR_IN_PROGRESS); NS_ENSURE_TRUE(mMode == NONE, NS_ERROR_IN_PROGRESS); NS_ENSURE_ARG_POINTER(listener); mMode = READING;
--- a/uriloader/exthandler/nsExternalProtocolHandler.cpp +++ b/uriloader/exthandler/nsExternalProtocolHandler.cpp @@ -181,16 +181,20 @@ NS_IMETHODIMP nsExtProtocolChannel::Open nsCOMPtr<nsIStreamListener> listener; nsresult rv = nsContentSecurityManager::doContentSecurityCheck(this, listener); NS_ENSURE_SUCCESS(rv, rv); return Open(aStream); } NS_IMETHODIMP nsExtProtocolChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *ctxt) { + MOZ_ASSERT(!mLoadInfo || mLoadInfo->GetSecurityMode() == 0 || + mLoadInfo->GetInitialSecurityCheckDone(), + "security flags in loadInfo but asyncOpen2() not called"); + NS_ENSURE_ARG_POINTER(listener); NS_ENSURE_TRUE(!mWasOpened, NS_ERROR_ALREADY_OPENED); mWasOpened = true; return OpenURL(); }