Source code

Revision control

Other Tools

1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
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 nsInputStreamChannel_h__
7
#define nsInputStreamChannel_h__
8
9
#include "nsBaseChannel.h"
10
#include "nsIInputStreamChannel.h"
11
12
//-----------------------------------------------------------------------------
13
14
namespace mozilla {
15
namespace net {
16
17
class nsInputStreamChannel : public nsBaseChannel,
18
public nsIInputStreamChannel {
19
public:
20
NS_DECL_ISUPPORTS_INHERITED
21
NS_DECL_NSIINPUTSTREAMCHANNEL
22
23
nsInputStreamChannel() : mIsSrcdocChannel(false) {}
24
25
protected:
26
virtual ~nsInputStreamChannel() = default;
27
28
virtual nsresult OpenContentStream(bool async, nsIInputStream** result,
29
nsIChannel** channel) override;
30
31
virtual void OnChannelDone() override { mContentStream = nullptr; }
32
33
private:
34
nsCOMPtr<nsIInputStream> mContentStream;
35
nsCOMPtr<nsIURI> mBaseURI;
36
nsString mSrcdocData;
37
bool mIsSrcdocChannel;
38
};
39
40
} // namespace net
41
} // namespace mozilla
42
43
#endif // !nsInputStreamChannel_h__