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:
parent
75f3adcd31
commit
5490fe59f6
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user