Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/netwerk/base/nsInputStreamChannel.cpp
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 2; 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
#include "nsInputStreamChannel.h"
7
8
//-----------------------------------------------------------------------------
9
// nsInputStreamChannel
10
11
namespace mozilla {
12
namespace net {
13
14
nsresult
15
nsInputStreamChannel::OpenContentStream(bool async, nsIInputStream **result,
16
                                        nsIChannel** channel)
17
0
{
18
0
  NS_ENSURE_TRUE(mContentStream, NS_ERROR_NOT_INITIALIZED);
19
0
20
0
  // If content length is unknown, then we must guess.  In this case, we assume
21
0
  // the stream can tell us.  If the stream is a pipe, then this will not work.
22
0
23
0
  if (mContentLength < 0) {
24
0
    uint64_t avail;
25
0
    nsresult rv = mContentStream->Available(&avail);
26
0
    if (rv == NS_BASE_STREAM_CLOSED) {
27
0
      // This just means there's nothing in the stream
28
0
      avail = 0;
29
0
    } else if (NS_FAILED(rv)) {
30
0
      return rv;
31
0
    }
32
0
    mContentLength = avail;
33
0
  }
34
0
35
0
  EnableSynthesizedProgressEvents(true);
36
0
37
0
  NS_ADDREF(*result = mContentStream);
38
0
  return NS_OK;
39
0
}
40
41
//-----------------------------------------------------------------------------
42
// nsInputStreamChannel::nsISupports
43
44
NS_IMPL_ISUPPORTS_INHERITED(nsInputStreamChannel,
45
                            nsBaseChannel,
46
                            nsIInputStreamChannel)
47
48
//-----------------------------------------------------------------------------
49
// nsInputStreamChannel::nsIInputStreamChannel
50
51
NS_IMETHODIMP
52
nsInputStreamChannel::SetURI(nsIURI *uri)
53
0
{
54
0
  NS_ENSURE_TRUE(!URI(), NS_ERROR_ALREADY_INITIALIZED);
55
0
  nsBaseChannel::SetURI(uri);
56
0
  return NS_OK;
57
0
}
58
59
NS_IMETHODIMP
60
nsInputStreamChannel::GetContentStream(nsIInputStream **stream)
61
0
{
62
0
  NS_IF_ADDREF(*stream = mContentStream);
63
0
  return NS_OK;
64
0
}
65
66
NS_IMETHODIMP
67
nsInputStreamChannel::SetContentStream(nsIInputStream *stream)
68
0
{
69
0
  NS_ENSURE_TRUE(!mContentStream, NS_ERROR_ALREADY_INITIALIZED);
70
0
  mContentStream = stream;
71
0
  return NS_OK;
72
0
}
73
74
NS_IMETHODIMP
75
nsInputStreamChannel::GetSrcdocData(nsAString& aSrcdocData)
76
0
{
77
0
  aSrcdocData = mSrcdocData;
78
0
  return NS_OK;
79
0
}
80
81
NS_IMETHODIMP
82
nsInputStreamChannel::SetSrcdocData(const nsAString& aSrcdocData)
83
0
{
84
0
  mSrcdocData = aSrcdocData;
85
0
  mIsSrcdocChannel = true;
86
0
  return NS_OK;
87
0
}
88
89
NS_IMETHODIMP
90
nsInputStreamChannel::GetIsSrcdocChannel(bool *aIsSrcdocChannel)
91
0
{
92
0
  *aIsSrcdocChannel = mIsSrcdocChannel;
93
0
  return NS_OK;
94
0
}
95
96
NS_IMETHODIMP
97
nsInputStreamChannel::GetBaseURI(nsIURI** aBaseURI)
98
0
{
99
0
  *aBaseURI = mBaseURI;
100
0
  NS_IF_ADDREF(*aBaseURI);
101
0
  return NS_OK;
102
0
}
103
104
NS_IMETHODIMP
105
nsInputStreamChannel::SetBaseURI(nsIURI* aBaseURI)
106
0
{
107
0
  mBaseURI = aBaseURI;
108
0
  return NS_OK;
109
0
}
110
111
} // namespace net
112
} // namespace mozilla