| |
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 //***************************************************************************** |