Line data Source code
1 : /* This Source Code Form is subject to the terms of the Mozilla Public
2 : * License, v. 2.0. If a copy of the MPL was not distributed with this
3 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 :
5 : #ifndef mozilla_net_NullHttpChannel_h
6 : #define mozilla_net_NullHttpChannel_h
7 :
8 : #include "nsINullChannel.h"
9 : #include "nsIHttpChannel.h"
10 : #include "nsITimedChannel.h"
11 : #include "nsIURI.h"
12 : #include "nsCOMPtr.h"
13 : #include "mozilla/TimeStamp.h"
14 : #include "nsString.h"
15 : #include "prtime.h"
16 :
17 : namespace mozilla {
18 : namespace net {
19 :
20 : class nsProxyInfo;
21 :
22 : class NullHttpChannel final
23 : : public nsINullChannel
24 : , public nsIHttpChannel
25 : , public nsITimedChannel
26 : {
27 : NS_DECL_THREADSAFE_ISUPPORTS
28 : NS_DECL_NSINULLCHANNEL
29 : NS_DECL_NSIHTTPCHANNEL
30 : NS_DECL_NSITIMEDCHANNEL
31 : NS_DECL_NSIREQUEST
32 : NS_DECL_NSICHANNEL
33 :
34 : NullHttpChannel();
35 :
36 : // Copies the URI, Principal and Timing-Allow-Origin headers from the
37 : // passed channel to this object, to be used for resource timing checks
38 : explicit NullHttpChannel(nsIHttpChannel * chan);
39 :
40 : // Same signature as nsHttpChannel::Init
41 : MOZ_MUST_USE nsresult Init(nsIURI *aURI, uint32_t aCaps,
42 : nsProxyInfo *aProxyInfo,
43 : uint32_t aProxyResolveFlags, nsIURI *aProxyURI);
44 : private:
45 0 : ~NullHttpChannel() { }
46 :
47 : protected:
48 : nsCOMPtr<nsIURI> mURI;
49 : nsCOMPtr<nsIURI> mOriginalURI;
50 :
51 : nsString mInitiatorType;
52 : PRTime mChannelCreationTime;
53 : TimeStamp mAsyncOpenTime;
54 : TimeStamp mChannelCreationTimestamp;
55 : nsCOMPtr<nsIPrincipal> mResourcePrincipal;
56 : nsCString mTimingAllowOriginHeader;
57 : bool mAllRedirectsSameOrigin;
58 : bool mAllRedirectsPassTimingAllowCheck;
59 : };
60 :
61 : } // namespace net
62 : } // namespace mozilla
63 :
64 :
65 :
66 : #endif // mozilla_net_NullHttpChannel_h
|