View source channels should implement nsIUploadChannel for when we get

postdata working with them.  Bug 122851, r=darin, sr=rpotts.


git-svn-id: svn://10.0.0.236/trunk@113436 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bzbarsky%mit.edu 2002-02-01 20:18:26 +00:00
parent 75f3adcd31
commit 5490fe59f6
2 changed files with 11 additions and 2 deletions

View File

@ -46,7 +46,7 @@ NS_IMPL_THREADSAFE_ADDREF(nsViewSourceChannel)
NS_IMPL_THREADSAFE_RELEASE(nsViewSourceChannel)
/*
This QI uses hand-expansions of NS_INTERFACE_MAP_ENTRY to check for
non-nullness of mHttpChannel and mCachingChannel.
non-nullness of mHttpChannel, mCachingChannel, and mUploadChannel.
This seems like a better approach than writing out the whole QI by hand.
*/
@ -60,6 +60,9 @@ NS_INTERFACE_MAP_BEGIN(nsViewSourceChannel)
if ( mCachingChannel && aIID.Equals(NS_GET_IID(nsICachingChannel)) )
foundInterface = NS_STATIC_CAST(nsICachingChannel*, this);
else
if ( mUploadChannel && aIID.Equals(NS_GET_IID(nsIUploadChannel)) )
foundInterface = NS_STATIC_CAST(nsIUploadChannel*, this);
else
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIRequest, nsIViewSourceChannel)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIChannel, nsIViewSourceChannel)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIViewSourceChannel)
@ -80,6 +83,7 @@ nsViewSourceChannel::Init(nsIURI* uri)
rv = pService->NewChannel(path, nsnull, getter_AddRefs(mChannel));
mHttpChannel = do_QueryInterface(mChannel);
mCachingChannel = do_QueryInterface(mChannel);
mUploadChannel = do_QueryInterface(mChannel);
return rv;
}

View File

@ -49,11 +49,14 @@
#include "nsNetCID.h"
#include "nsIHttpChannel.h"
#include "nsICachingChannel.h"
#include "nsIUploadChannel.h"
class nsViewSourceChannel : public nsIViewSourceChannel,
public nsIStreamListener,
public nsIHttpChannel,
public nsICachingChannel {
public nsICachingChannel,
public nsIUploadChannel
{
public:
NS_DECL_ISUPPORTS
@ -64,6 +67,7 @@ public:
NS_DECL_NSIREQUESTOBSERVER
NS_FORWARD_SAFE_NSIHTTPCHANNEL(mHttpChannel)
NS_FORWARD_SAFE_NSICACHINGCHANNEL(mCachingChannel)
NS_FORWARD_SAFE_NSIUPLOADCHANNEL(mUploadChannel)
// nsViewSourceChannel methods:
nsViewSourceChannel();
@ -79,6 +83,7 @@ protected:
nsCOMPtr<nsIChannel> mChannel;
nsCOMPtr<nsIHttpChannel> mHttpChannel;
nsCOMPtr<nsICachingChannel> mCachingChannel;
nsCOMPtr<nsIUploadChannel> mUploadChannel;
nsCOMPtr<nsIStreamListener> mListener;
nsCString mContentType;
};