|
1 /* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
|
2 * |
|
3 * This Source Code Form is subject to the terms of the Mozilla Public |
|
4 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
6 |
|
7 // Local Includes |
|
8 #include "nsDocShellLoadInfo.h" |
|
9 #include "nsISHEntry.h" |
|
10 #include "nsIInputStream.h" |
|
11 #include "nsIURI.h" |
|
12 #include "nsIDocShell.h" |
|
13 |
|
14 //***************************************************************************** |
|
15 //*** nsDocShellLoadInfo: Object Management |
|
16 //***************************************************************************** |
|
17 |
|
18 nsDocShellLoadInfo::nsDocShellLoadInfo() |
|
19 : mInheritOwner(false), |
|
20 mOwnerIsExplicit(false), |
|
21 mSendReferrer(true), |
|
22 mLoadType(nsIDocShellLoadInfo::loadNormal), |
|
23 mIsSrcdocLoad(false) |
|
24 { |
|
25 } |
|
26 |
|
27 nsDocShellLoadInfo::~nsDocShellLoadInfo() |
|
28 { |
|
29 } |
|
30 |
|
31 //***************************************************************************** |
|
32 // nsDocShellLoadInfo::nsISupports |
|
33 //***************************************************************************** |
|
34 |
|
35 NS_IMPL_ADDREF(nsDocShellLoadInfo) |
|
36 NS_IMPL_RELEASE(nsDocShellLoadInfo) |
|
37 |
|
38 NS_INTERFACE_MAP_BEGIN(nsDocShellLoadInfo) |
|
39 NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDocShellLoadInfo) |
|
40 NS_INTERFACE_MAP_ENTRY(nsIDocShellLoadInfo) |
|
41 NS_INTERFACE_MAP_END |
|
42 |
|
43 //***************************************************************************** |
|
44 // nsDocShellLoadInfo::nsIDocShellLoadInfo |
|
45 //***************************************************************************** |
|
46 |
|
47 NS_IMETHODIMP nsDocShellLoadInfo::GetReferrer(nsIURI** aReferrer) |
|
48 { |
|
49 NS_ENSURE_ARG_POINTER(aReferrer); |
|
50 |
|
51 *aReferrer = mReferrer; |
|
52 NS_IF_ADDREF(*aReferrer); |
|
53 return NS_OK; |
|
54 } |
|
55 |
|
56 NS_IMETHODIMP nsDocShellLoadInfo::SetReferrer(nsIURI* aReferrer) |
|
57 { |
|
58 mReferrer = aReferrer; |
|
59 return NS_OK; |
|
60 } |
|
61 |
|
62 NS_IMETHODIMP nsDocShellLoadInfo::GetOwner(nsISupports** aOwner) |
|
63 { |
|
64 NS_ENSURE_ARG_POINTER(aOwner); |
|
65 |
|
66 *aOwner = mOwner; |
|
67 NS_IF_ADDREF(*aOwner); |
|
68 return NS_OK; |
|
69 } |
|
70 |
|
71 NS_IMETHODIMP nsDocShellLoadInfo::SetOwner(nsISupports* aOwner) |
|
72 { |
|
73 mOwner = aOwner; |
|
74 return NS_OK; |
|
75 } |
|
76 |
|
77 NS_IMETHODIMP nsDocShellLoadInfo::GetInheritOwner(bool* aInheritOwner) |
|
78 { |
|
79 NS_ENSURE_ARG_POINTER(aInheritOwner); |
|
80 |
|
81 *aInheritOwner = mInheritOwner; |
|
82 return NS_OK; |
|
83 } |
|
84 |
|
85 NS_IMETHODIMP nsDocShellLoadInfo::SetInheritOwner(bool aInheritOwner) |
|
86 { |
|
87 mInheritOwner = aInheritOwner; |
|
88 return NS_OK; |
|
89 } |
|
90 |
|
91 NS_IMETHODIMP nsDocShellLoadInfo::GetOwnerIsExplicit(bool* aOwnerIsExplicit) |
|
92 { |
|
93 *aOwnerIsExplicit = mOwnerIsExplicit; |
|
94 return NS_OK; |
|
95 } |
|
96 |
|
97 NS_IMETHODIMP nsDocShellLoadInfo::SetOwnerIsExplicit(bool aOwnerIsExplicit) |
|
98 { |
|
99 mOwnerIsExplicit = aOwnerIsExplicit; |
|
100 return NS_OK; |
|
101 } |
|
102 |
|
103 NS_IMETHODIMP nsDocShellLoadInfo::GetLoadType(nsDocShellInfoLoadType * aLoadType) |
|
104 { |
|
105 NS_ENSURE_ARG_POINTER(aLoadType); |
|
106 |
|
107 *aLoadType = mLoadType; |
|
108 return NS_OK; |
|
109 } |
|
110 |
|
111 NS_IMETHODIMP nsDocShellLoadInfo::SetLoadType(nsDocShellInfoLoadType aLoadType) |
|
112 { |
|
113 mLoadType = aLoadType; |
|
114 return NS_OK; |
|
115 } |
|
116 |
|
117 NS_IMETHODIMP nsDocShellLoadInfo::GetSHEntry(nsISHEntry** aSHEntry) |
|
118 { |
|
119 NS_ENSURE_ARG_POINTER(aSHEntry); |
|
120 |
|
121 *aSHEntry = mSHEntry; |
|
122 NS_IF_ADDREF(*aSHEntry); |
|
123 return NS_OK; |
|
124 } |
|
125 |
|
126 NS_IMETHODIMP nsDocShellLoadInfo::SetSHEntry(nsISHEntry* aSHEntry) |
|
127 { |
|
128 mSHEntry = aSHEntry; |
|
129 return NS_OK; |
|
130 } |
|
131 |
|
132 NS_IMETHODIMP nsDocShellLoadInfo::GetTarget(char16_t** aTarget) |
|
133 { |
|
134 NS_ENSURE_ARG_POINTER(aTarget); |
|
135 |
|
136 *aTarget = ToNewUnicode(mTarget); |
|
137 |
|
138 return NS_OK; |
|
139 } |
|
140 |
|
141 NS_IMETHODIMP nsDocShellLoadInfo::SetTarget(const char16_t* aTarget) |
|
142 { |
|
143 mTarget.Assign(aTarget); |
|
144 return NS_OK; |
|
145 } |
|
146 |
|
147 |
|
148 NS_IMETHODIMP |
|
149 nsDocShellLoadInfo::GetPostDataStream(nsIInputStream **aResult) |
|
150 { |
|
151 NS_ENSURE_ARG_POINTER(aResult); |
|
152 |
|
153 *aResult = mPostDataStream; |
|
154 |
|
155 NS_IF_ADDREF(*aResult); |
|
156 return NS_OK; |
|
157 } |
|
158 |
|
159 |
|
160 NS_IMETHODIMP |
|
161 nsDocShellLoadInfo::SetPostDataStream(nsIInputStream *aStream) |
|
162 { |
|
163 mPostDataStream = aStream; |
|
164 return NS_OK; |
|
165 } |
|
166 |
|
167 /* attribute nsIInputStream headersStream; */ |
|
168 NS_IMETHODIMP nsDocShellLoadInfo::GetHeadersStream(nsIInputStream * *aHeadersStream) |
|
169 { |
|
170 NS_ENSURE_ARG_POINTER(aHeadersStream); |
|
171 *aHeadersStream = mHeadersStream; |
|
172 NS_IF_ADDREF(*aHeadersStream); |
|
173 return NS_OK; |
|
174 } |
|
175 NS_IMETHODIMP nsDocShellLoadInfo::SetHeadersStream(nsIInputStream * aHeadersStream) |
|
176 { |
|
177 mHeadersStream = aHeadersStream; |
|
178 return NS_OK; |
|
179 } |
|
180 |
|
181 NS_IMETHODIMP nsDocShellLoadInfo::GetSendReferrer(bool* aSendReferrer) |
|
182 { |
|
183 NS_ENSURE_ARG_POINTER(aSendReferrer); |
|
184 |
|
185 *aSendReferrer = mSendReferrer; |
|
186 return NS_OK; |
|
187 } |
|
188 |
|
189 NS_IMETHODIMP nsDocShellLoadInfo::SetSendReferrer(bool aSendReferrer) |
|
190 { |
|
191 mSendReferrer = aSendReferrer; |
|
192 return NS_OK; |
|
193 } |
|
194 |
|
195 NS_IMETHODIMP nsDocShellLoadInfo::GetIsSrcdocLoad(bool* aIsSrcdocLoad) |
|
196 { |
|
197 *aIsSrcdocLoad = mIsSrcdocLoad; |
|
198 return NS_OK; |
|
199 } |
|
200 |
|
201 NS_IMETHODIMP nsDocShellLoadInfo::GetSrcdocData(nsAString &aSrcdocData) |
|
202 { |
|
203 aSrcdocData = mSrcdocData; |
|
204 return NS_OK; |
|
205 } |
|
206 |
|
207 NS_IMETHODIMP nsDocShellLoadInfo::SetSrcdocData(const nsAString &aSrcdocData) |
|
208 { |
|
209 mSrcdocData = aSrcdocData; |
|
210 mIsSrcdocLoad = true; |
|
211 return NS_OK; |
|
212 } |
|
213 |
|
214 NS_IMETHODIMP nsDocShellLoadInfo::GetSourceDocShell(nsIDocShell** aSourceDocShell) |
|
215 { |
|
216 MOZ_ASSERT(aSourceDocShell); |
|
217 nsCOMPtr<nsIDocShell> result = mSourceDocShell; |
|
218 result.forget(aSourceDocShell); |
|
219 return NS_OK; |
|
220 } |
|
221 |
|
222 NS_IMETHODIMP nsDocShellLoadInfo::SetSourceDocShell(nsIDocShell* aSourceDocShell) |
|
223 { |
|
224 mSourceDocShell = aSourceDocShell; |
|
225 return NS_OK; |
|
226 } |
|
227 |
|
228 NS_IMETHODIMP nsDocShellLoadInfo::GetBaseURI(nsIURI** aBaseURI) |
|
229 { |
|
230 NS_ENSURE_ARG_POINTER(aBaseURI); |
|
231 |
|
232 *aBaseURI = mBaseURI; |
|
233 NS_IF_ADDREF(*aBaseURI); |
|
234 return NS_OK; |
|
235 } |
|
236 |
|
237 NS_IMETHODIMP nsDocShellLoadInfo::SetBaseURI(nsIURI* aBaseURI) |
|
238 { |
|
239 mBaseURI = aBaseURI; |
|
240 return NS_OK; |
|
241 } |
|
242 |
|
243 //***************************************************************************** |
|
244 // nsDocShellLoadInfo: Helpers |
|
245 //***************************************************************************** |
|
246 |
|
247 //***************************************************************************** |
|
248 // nsDocShellLoadInfo: Accessors |
|
249 //***************************************************************************** |