michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef nsViewSourceChannel_h___ michael@0: #define nsViewSourceChannel_h___ michael@0: michael@0: #include "nsString.h" michael@0: #include "nsCOMPtr.h" michael@0: #include "nsIViewSourceChannel.h" michael@0: #include "nsIURI.h" michael@0: #include "nsIStreamListener.h" michael@0: #include "nsIHttpChannel.h" michael@0: #include "nsIHttpChannelInternal.h" michael@0: #include "nsICachingChannel.h" michael@0: #include "nsIApplicationCacheChannel.h" michael@0: #include "nsIUploadChannel.h" michael@0: #include "mozilla/Attributes.h" michael@0: michael@0: class nsViewSourceChannel MOZ_FINAL : public nsIViewSourceChannel, michael@0: public nsIStreamListener, michael@0: public nsIHttpChannel, michael@0: public nsIHttpChannelInternal, michael@0: public nsICachingChannel, michael@0: public nsIApplicationCacheChannel, michael@0: public nsIUploadChannel michael@0: { michael@0: michael@0: public: michael@0: NS_DECL_ISUPPORTS michael@0: NS_DECL_NSIREQUEST michael@0: NS_DECL_NSICHANNEL michael@0: NS_DECL_NSIVIEWSOURCECHANNEL michael@0: NS_DECL_NSISTREAMLISTENER michael@0: NS_DECL_NSIREQUESTOBSERVER michael@0: NS_DECL_NSIHTTPCHANNEL michael@0: NS_FORWARD_SAFE_NSICACHEINFOCHANNEL(mCachingChannel) michael@0: NS_FORWARD_SAFE_NSICACHINGCHANNEL(mCachingChannel) michael@0: NS_FORWARD_SAFE_NSIAPPLICATIONCACHECHANNEL(mApplicationCacheChannel) michael@0: NS_FORWARD_SAFE_NSIAPPLICATIONCACHECONTAINER(mApplicationCacheChannel) michael@0: NS_FORWARD_SAFE_NSIUPLOADCHANNEL(mUploadChannel) michael@0: NS_FORWARD_SAFE_NSIHTTPCHANNELINTERNAL(mHttpChannelInternal) michael@0: michael@0: // nsViewSourceChannel methods: michael@0: nsViewSourceChannel() michael@0: : mIsDocument(false) michael@0: , mOpened(false) {} michael@0: michael@0: NS_HIDDEN_(nsresult) Init(nsIURI* uri); michael@0: michael@0: NS_HIDDEN_(nsresult) InitSrcdoc(nsIURI* aURI, const nsAString &aSrcdoc, michael@0: nsIURI* aBaseURI); michael@0: michael@0: protected: michael@0: nsCOMPtr mChannel; michael@0: nsCOMPtr mHttpChannel; michael@0: nsCOMPtr mHttpChannelInternal; michael@0: nsCOMPtr mCachingChannel; michael@0: nsCOMPtr mApplicationCacheChannel; michael@0: nsCOMPtr mUploadChannel; michael@0: nsCOMPtr mListener; michael@0: nsCOMPtr mOriginalURI; michael@0: nsCOMPtr mBaseURI; michael@0: nsCString mContentType; michael@0: bool mIsDocument; // keeps track of the LOAD_DOCUMENT_URI flag michael@0: bool mOpened; michael@0: bool mIsSrcdocChannel; michael@0: }; michael@0: michael@0: #endif /* nsViewSourceChannel_h___ */