nsDocShellLoadInfo.cpp 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. /* -*- Mode: C++; tab-width: 8; 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. #include "nsDocShellLoadInfo.h"
  6. #include "nsISHEntry.h"
  7. #include "nsIInputStream.h"
  8. #include "nsIURI.h"
  9. #include "nsIDocShell.h"
  10. #include "mozilla/net/ReferrerPolicy.h"
  11. nsDocShellLoadInfo::nsDocShellLoadInfo()
  12. : mLoadReplace(false)
  13. , mInheritPrincipal(false)
  14. , mPrincipalIsExplicit(false)
  15. , mForceAllowDataURI(false)
  16. , mSendReferrer(true)
  17. , mReferrerPolicy(mozilla::net::RP_Default)
  18. , mLoadType(nsIDocShellLoadInfo::loadNormal)
  19. , mIsSrcdocLoad(false)
  20. , mIsFromProcessingFrameAttributes(false)
  21. {
  22. }
  23. nsDocShellLoadInfo::~nsDocShellLoadInfo()
  24. {
  25. }
  26. NS_IMPL_ADDREF(nsDocShellLoadInfo)
  27. NS_IMPL_RELEASE(nsDocShellLoadInfo)
  28. NS_INTERFACE_MAP_BEGIN(nsDocShellLoadInfo)
  29. NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDocShellLoadInfo)
  30. NS_INTERFACE_MAP_ENTRY(nsIDocShellLoadInfo)
  31. NS_INTERFACE_MAP_END
  32. NS_IMETHODIMP
  33. nsDocShellLoadInfo::GetReferrer(nsIURI** aReferrer)
  34. {
  35. NS_ENSURE_ARG_POINTER(aReferrer);
  36. *aReferrer = mReferrer;
  37. NS_IF_ADDREF(*aReferrer);
  38. return NS_OK;
  39. }
  40. NS_IMETHODIMP
  41. nsDocShellLoadInfo::SetReferrer(nsIURI* aReferrer)
  42. {
  43. mReferrer = aReferrer;
  44. return NS_OK;
  45. }
  46. NS_IMETHODIMP
  47. nsDocShellLoadInfo::GetOriginalURI(nsIURI** aOriginalURI)
  48. {
  49. NS_ENSURE_ARG_POINTER(aOriginalURI);
  50. *aOriginalURI = mOriginalURI;
  51. NS_IF_ADDREF(*aOriginalURI);
  52. return NS_OK;
  53. }
  54. NS_IMETHODIMP
  55. nsDocShellLoadInfo::SetOriginalURI(nsIURI* aOriginalURI)
  56. {
  57. mOriginalURI = aOriginalURI;
  58. return NS_OK;
  59. }
  60. NS_IMETHODIMP
  61. nsDocShellLoadInfo::GetLoadReplace(bool* aLoadReplace)
  62. {
  63. *aLoadReplace = mLoadReplace;
  64. return NS_OK;
  65. }
  66. NS_IMETHODIMP
  67. nsDocShellLoadInfo::SetLoadReplace(bool aLoadReplace)
  68. {
  69. mLoadReplace = aLoadReplace;
  70. return NS_OK;
  71. }
  72. NS_IMETHODIMP
  73. nsDocShellLoadInfo::GetTriggeringPrincipal(nsIPrincipal** aTriggeringPrincipal)
  74. {
  75. NS_ENSURE_ARG_POINTER(aTriggeringPrincipal);
  76. NS_IF_ADDREF(*aTriggeringPrincipal = mTriggeringPrincipal);
  77. return NS_OK;
  78. }
  79. NS_IMETHODIMP
  80. nsDocShellLoadInfo::SetTriggeringPrincipal(nsIPrincipal* aTriggeringPrincipal)
  81. {
  82. mTriggeringPrincipal = aTriggeringPrincipal;
  83. return NS_OK;
  84. }
  85. NS_IMETHODIMP
  86. nsDocShellLoadInfo::GetInheritPrincipal(bool* aInheritPrincipal)
  87. {
  88. NS_ENSURE_ARG_POINTER(aInheritPrincipal);
  89. *aInheritPrincipal = mInheritPrincipal;
  90. return NS_OK;
  91. }
  92. NS_IMETHODIMP
  93. nsDocShellLoadInfo::SetInheritPrincipal(bool aInheritPrincipal)
  94. {
  95. mInheritPrincipal = aInheritPrincipal;
  96. return NS_OK;
  97. }
  98. NS_IMETHODIMP
  99. nsDocShellLoadInfo::GetPrincipalIsExplicit(bool* aPrincipalIsExplicit)
  100. {
  101. *aPrincipalIsExplicit = mPrincipalIsExplicit;
  102. return NS_OK;
  103. }
  104. NS_IMETHODIMP
  105. nsDocShellLoadInfo::SetPrincipalIsExplicit(bool aPrincipalIsExplicit)
  106. {
  107. mPrincipalIsExplicit = aPrincipalIsExplicit;
  108. return NS_OK;
  109. }
  110. NS_IMETHODIMP
  111. nsDocShellLoadInfo::GetForceAllowDataURI(bool* aForceAllowDataURI)
  112. {
  113. *aForceAllowDataURI = mForceAllowDataURI;
  114. return NS_OK;
  115. }
  116. NS_IMETHODIMP
  117. nsDocShellLoadInfo::SetForceAllowDataURI(bool aForceAllowDataURI)
  118. {
  119. mForceAllowDataURI = aForceAllowDataURI;
  120. return NS_OK;
  121. }
  122. NS_IMETHODIMP
  123. nsDocShellLoadInfo::GetLoadType(nsDocShellInfoLoadType* aLoadType)
  124. {
  125. NS_ENSURE_ARG_POINTER(aLoadType);
  126. *aLoadType = mLoadType;
  127. return NS_OK;
  128. }
  129. NS_IMETHODIMP
  130. nsDocShellLoadInfo::SetLoadType(nsDocShellInfoLoadType aLoadType)
  131. {
  132. mLoadType = aLoadType;
  133. return NS_OK;
  134. }
  135. NS_IMETHODIMP
  136. nsDocShellLoadInfo::GetSHEntry(nsISHEntry** aSHEntry)
  137. {
  138. NS_ENSURE_ARG_POINTER(aSHEntry);
  139. *aSHEntry = mSHEntry;
  140. NS_IF_ADDREF(*aSHEntry);
  141. return NS_OK;
  142. }
  143. NS_IMETHODIMP
  144. nsDocShellLoadInfo::SetSHEntry(nsISHEntry* aSHEntry)
  145. {
  146. mSHEntry = aSHEntry;
  147. return NS_OK;
  148. }
  149. NS_IMETHODIMP
  150. nsDocShellLoadInfo::GetTarget(char16_t** aTarget)
  151. {
  152. NS_ENSURE_ARG_POINTER(aTarget);
  153. *aTarget = ToNewUnicode(mTarget);
  154. return NS_OK;
  155. }
  156. NS_IMETHODIMP
  157. nsDocShellLoadInfo::SetTarget(const char16_t* aTarget)
  158. {
  159. mTarget.Assign(aTarget);
  160. return NS_OK;
  161. }
  162. NS_IMETHODIMP
  163. nsDocShellLoadInfo::GetPostDataStream(nsIInputStream** aResult)
  164. {
  165. NS_ENSURE_ARG_POINTER(aResult);
  166. *aResult = mPostDataStream;
  167. NS_IF_ADDREF(*aResult);
  168. return NS_OK;
  169. }
  170. NS_IMETHODIMP
  171. nsDocShellLoadInfo::SetPostDataStream(nsIInputStream* aStream)
  172. {
  173. mPostDataStream = aStream;
  174. return NS_OK;
  175. }
  176. NS_IMETHODIMP
  177. nsDocShellLoadInfo::GetHeadersStream(nsIInputStream** aHeadersStream)
  178. {
  179. NS_ENSURE_ARG_POINTER(aHeadersStream);
  180. *aHeadersStream = mHeadersStream;
  181. NS_IF_ADDREF(*aHeadersStream);
  182. return NS_OK;
  183. }
  184. NS_IMETHODIMP
  185. nsDocShellLoadInfo::SetHeadersStream(nsIInputStream* aHeadersStream)
  186. {
  187. mHeadersStream = aHeadersStream;
  188. return NS_OK;
  189. }
  190. NS_IMETHODIMP
  191. nsDocShellLoadInfo::GetSendReferrer(bool* aSendReferrer)
  192. {
  193. NS_ENSURE_ARG_POINTER(aSendReferrer);
  194. *aSendReferrer = mSendReferrer;
  195. return NS_OK;
  196. }
  197. NS_IMETHODIMP
  198. nsDocShellLoadInfo::SetSendReferrer(bool aSendReferrer)
  199. {
  200. mSendReferrer = aSendReferrer;
  201. return NS_OK;
  202. }
  203. NS_IMETHODIMP
  204. nsDocShellLoadInfo::GetReferrerPolicy(
  205. nsDocShellInfoReferrerPolicy* aReferrerPolicy)
  206. {
  207. *aReferrerPolicy = mReferrerPolicy;
  208. return NS_OK;
  209. }
  210. NS_IMETHODIMP
  211. nsDocShellLoadInfo::SetReferrerPolicy(
  212. nsDocShellInfoReferrerPolicy aReferrerPolicy)
  213. {
  214. mReferrerPolicy = aReferrerPolicy;
  215. return NS_OK;
  216. }
  217. NS_IMETHODIMP
  218. nsDocShellLoadInfo::GetIsSrcdocLoad(bool* aIsSrcdocLoad)
  219. {
  220. *aIsSrcdocLoad = mIsSrcdocLoad;
  221. return NS_OK;
  222. }
  223. NS_IMETHODIMP
  224. nsDocShellLoadInfo::GetSrcdocData(nsAString& aSrcdocData)
  225. {
  226. aSrcdocData = mSrcdocData;
  227. return NS_OK;
  228. }
  229. NS_IMETHODIMP
  230. nsDocShellLoadInfo::SetSrcdocData(const nsAString& aSrcdocData)
  231. {
  232. mSrcdocData = aSrcdocData;
  233. mIsSrcdocLoad = true;
  234. return NS_OK;
  235. }
  236. NS_IMETHODIMP
  237. nsDocShellLoadInfo::GetSourceDocShell(nsIDocShell** aSourceDocShell)
  238. {
  239. MOZ_ASSERT(aSourceDocShell);
  240. nsCOMPtr<nsIDocShell> result = mSourceDocShell;
  241. result.forget(aSourceDocShell);
  242. return NS_OK;
  243. }
  244. NS_IMETHODIMP
  245. nsDocShellLoadInfo::SetSourceDocShell(nsIDocShell* aSourceDocShell)
  246. {
  247. mSourceDocShell = aSourceDocShell;
  248. return NS_OK;
  249. }
  250. NS_IMETHODIMP
  251. nsDocShellLoadInfo::GetBaseURI(nsIURI** aBaseURI)
  252. {
  253. NS_ENSURE_ARG_POINTER(aBaseURI);
  254. *aBaseURI = mBaseURI;
  255. NS_IF_ADDREF(*aBaseURI);
  256. return NS_OK;
  257. }
  258. NS_IMETHODIMP
  259. nsDocShellLoadInfo::SetBaseURI(nsIURI* aBaseURI)
  260. {
  261. mBaseURI = aBaseURI;
  262. return NS_OK;
  263. }
  264. NS_IMETHODIMP
  265. nsDocShellLoadInfo::GetIsFromProcessingFrameAttributes(bool* aIsFromProcessingFrameAttributes)
  266. {
  267. NS_ENSURE_ARG_POINTER(aIsFromProcessingFrameAttributes);
  268. *aIsFromProcessingFrameAttributes = mIsFromProcessingFrameAttributes;
  269. return NS_OK;
  270. }
  271. NS_IMETHODIMP
  272. nsDocShellLoadInfo::SetIsFromProcessingFrameAttributes(bool aIsFromProcessingFrameAttributes)
  273. {
  274. mIsFromProcessingFrameAttributes = aIsFromProcessingFrameAttributes;
  275. return NS_OK;
  276. }