NS_IMETHODIMP nsBaseChannel::Open(nsIInputStream **result) { NS_ENSURE_TRUE(mURI, NS_ERROR_NOT_INITIALIZED); NS_ENSURE_TRUE(!mPump, NS_ERROR_IN_PROGRESS); NS_ENSURE_TRUE(!mWasOpened, NS_ERROR_IN_PROGRESS); nsCOMPtr<nsIChannel> chan; nsresult rv = OpenContentStream(false, result, getter_AddRefs(chan)); NS_ASSERTION(!chan || !*result, "Got both a channel and a stream?"); if (NS_SUCCEEDED(rv) && chan) { rv = Redirect(chan, nsIChannelEventSink::REDIRECT_INTERNAL, false); if (NS_FAILED(rv)) return rv; rv = chan->Open(result); } else if (rv == NS_ERROR_NOT_IMPLEMENTED) return NS_ImplementChannelOpen(this, result); if (NS_SUCCEEDED(rv)) { mWasOpened = true; ClassifyURI(); } return rv; }
NS_IMETHODIMP nsBaseChannel::Open(nsIInputStream **result) { NS_ENSURE_TRUE(mURI, NS_ERROR_NOT_INITIALIZED); NS_ENSURE_TRUE(!mPump, NS_ERROR_IN_PROGRESS); NS_ENSURE_TRUE(!mWasOpened, NS_ERROR_IN_PROGRESS); nsresult rv = OpenContentStream(PR_FALSE, result); if (rv == NS_ERROR_NOT_IMPLEMENTED) return NS_ImplementChannelOpen(this, result); mWasOpened = NS_SUCCEEDED(rv); return rv; }
NS_IMETHODIMP HttpBaseChannel::Open(nsIInputStream **aResult) { NS_ENSURE_TRUE(!mWasOpened, NS_ERROR_IN_PROGRESS); return NS_ImplementChannelOpen(this, aResult); }
NS_IMETHODIMP nsGopherChannel::Open(nsIInputStream **_retval) { return NS_ImplementChannelOpen(this, _retval); }