Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /* This Source Code Form is subject to the terms of the Mozilla Public
3 : * License, v. 2.0. If a copy of the MPL was not distributed with this
4 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 :
6 : #ifndef nsViewSourceChannel_h___
7 : #define nsViewSourceChannel_h___
8 :
9 : #include "nsString.h"
10 : #include "nsCOMPtr.h"
11 : #include "nsIViewSourceChannel.h"
12 : #include "nsIURI.h"
13 : #include "nsIStreamListener.h"
14 : #include "nsIHttpChannel.h"
15 : #include "nsIHttpChannelInternal.h"
16 : #include "nsICachingChannel.h"
17 : #include "nsIApplicationCacheChannel.h"
18 : #include "nsIFormPOSTActionChannel.h"
19 : #include "mozilla/Attributes.h"
20 :
21 : class nsViewSourceChannel final : public nsIViewSourceChannel,
22 : public nsIStreamListener,
23 : public nsIHttpChannel,
24 : public nsIHttpChannelInternal,
25 : public nsICachingChannel,
26 : public nsIApplicationCacheChannel,
27 : public nsIFormPOSTActionChannel
28 : {
29 :
30 : public:
31 : NS_DECL_ISUPPORTS
32 : NS_DECL_NSIREQUEST
33 : NS_DECL_NSICHANNEL
34 : NS_DECL_NSIVIEWSOURCECHANNEL
35 : NS_DECL_NSISTREAMLISTENER
36 : NS_DECL_NSIREQUESTOBSERVER
37 : NS_DECL_NSIHTTPCHANNEL
38 0 : NS_FORWARD_SAFE_NSICACHEINFOCHANNEL(mCacheInfoChannel)
39 0 : NS_FORWARD_SAFE_NSICACHINGCHANNEL(mCachingChannel)
40 0 : NS_FORWARD_SAFE_NSIAPPLICATIONCACHECHANNEL(mApplicationCacheChannel)
41 0 : NS_FORWARD_SAFE_NSIAPPLICATIONCACHECONTAINER(mApplicationCacheChannel)
42 0 : NS_FORWARD_SAFE_NSIUPLOADCHANNEL(mUploadChannel)
43 : NS_FORWARD_SAFE_NSIFORMPOSTACTIONCHANNEL(mPostChannel)
44 0 : NS_FORWARD_SAFE_NSIHTTPCHANNELINTERNAL(mHttpChannelInternal)
45 :
46 : // nsViewSourceChannel methods:
47 0 : nsViewSourceChannel()
48 0 : : mIsDocument(false)
49 0 : , mOpened(false) {}
50 :
51 : MOZ_MUST_USE nsresult Init(nsIURI* uri);
52 :
53 : MOZ_MUST_USE nsresult InitSrcdoc(nsIURI* aURI,
54 : nsIURI* aBaseURI,
55 : const nsAString &aSrcdoc,
56 : nsILoadInfo* aLoadInfo);
57 :
58 : protected:
59 0 : ~nsViewSourceChannel() {}
60 :
61 : nsCOMPtr<nsIChannel> mChannel;
62 : nsCOMPtr<nsIHttpChannel> mHttpChannel;
63 : nsCOMPtr<nsIHttpChannelInternal> mHttpChannelInternal;
64 : nsCOMPtr<nsICachingChannel> mCachingChannel;
65 : nsCOMPtr<nsICacheInfoChannel> mCacheInfoChannel;
66 : nsCOMPtr<nsIApplicationCacheChannel> mApplicationCacheChannel;
67 : nsCOMPtr<nsIUploadChannel> mUploadChannel;
68 : nsCOMPtr<nsIFormPOSTActionChannel> mPostChannel;
69 : nsCOMPtr<nsIStreamListener> mListener;
70 : nsCOMPtr<nsIURI> mOriginalURI;
71 : nsCOMPtr<nsIURI> mBaseURI;
72 : nsCString mContentType;
73 : bool mIsDocument; // keeps track of the LOAD_DOCUMENT_URI flag
74 : bool mOpened;
75 : bool mIsSrcdocChannel;
76 : };
77 :
78 : #endif /* nsViewSourceChannel_h___ */
|