LCOV - code coverage report
Current view: top level - docshell/base - nsDocShellLoadInfo.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 112 165 67.9 %
Date: 2017-07-14 16:53:18 Functions: 32 45 71.1 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       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             : #include "nsDocShellLoadInfo.h"
       8             : #include "nsISHEntry.h"
       9             : #include "nsIInputStream.h"
      10             : #include "nsIURI.h"
      11             : #include "nsIDocShell.h"
      12             : #include "mozilla/net/ReferrerPolicy.h"
      13             : #include "mozilla/Unused.h"
      14             : 
      15             : namespace mozilla {
      16             : 
      17             : void
      18           6 : GetMaybeResultPrincipalURI(nsIDocShellLoadInfo* aLoadInfo, Maybe<nsCOMPtr<nsIURI>>& aRPURI)
      19             : {
      20           6 :   if (!aLoadInfo) {
      21           6 :     return;
      22             :   }
      23             : 
      24             :   nsresult rv;
      25             : 
      26             :   bool isSome;
      27           6 :   rv = aLoadInfo->GetResultPrincipalURIIsSome(&isSome);
      28           6 :   if (NS_WARN_IF(NS_FAILED(rv))) {
      29           0 :     return;
      30             :   }
      31             : 
      32           6 :   aRPURI.reset();
      33             : 
      34           6 :   if (!isSome) {
      35           6 :     return;
      36             :   }
      37             : 
      38           0 :   nsCOMPtr<nsIURI> uri;
      39           0 :   rv = aLoadInfo->GetResultPrincipalURI(getter_AddRefs(uri));
      40           0 :   if (NS_WARN_IF(NS_FAILED(rv))) {
      41           0 :     return;
      42             :   }
      43             : 
      44           0 :   aRPURI.emplace(Move(uri));
      45             : }
      46             : 
      47             : void
      48           0 : SetMaybeResultPrincipalURI(nsIDocShellLoadInfo* aLoadInfo, Maybe<nsCOMPtr<nsIURI>> const& aRPURI)
      49             : {
      50           0 :   if (!aLoadInfo) {
      51           0 :     return;
      52             :   }
      53             : 
      54             :   nsresult rv;
      55             : 
      56           0 :   rv = aLoadInfo->SetResultPrincipalURI(aRPURI.refOr(nullptr));
      57           0 :   Unused << NS_WARN_IF(NS_FAILED(rv));
      58             : 
      59           0 :   rv = aLoadInfo->SetResultPrincipalURIIsSome(aRPURI.isSome());
      60           0 :   Unused << NS_WARN_IF(NS_FAILED(rv));
      61             : }
      62             : 
      63             : } // mozilla
      64             : 
      65           6 : nsDocShellLoadInfo::nsDocShellLoadInfo()
      66             :   : mResultPrincipalURIIsSome(false)
      67             :   , mLoadReplace(false)
      68             :   , mInheritPrincipal(false)
      69             :   , mPrincipalIsExplicit(false)
      70             :   , mSendReferrer(true)
      71             :   , mReferrerPolicy(mozilla::net::RP_Unset)
      72             :   , mLoadType(nsIDocShellLoadInfo::loadNormal)
      73           6 :   , mIsSrcdocLoad(false)
      74             : {
      75           6 : }
      76             : 
      77          12 : nsDocShellLoadInfo::~nsDocShellLoadInfo()
      78             : {
      79          18 : }
      80             : 
      81          18 : NS_IMPL_ADDREF(nsDocShellLoadInfo)
      82          18 : NS_IMPL_RELEASE(nsDocShellLoadInfo)
      83             : 
      84          12 : NS_INTERFACE_MAP_BEGIN(nsDocShellLoadInfo)
      85          12 :   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDocShellLoadInfo)
      86          12 :   NS_INTERFACE_MAP_ENTRY(nsIDocShellLoadInfo)
      87           0 : NS_INTERFACE_MAP_END
      88             : 
      89             : NS_IMETHODIMP
      90           6 : nsDocShellLoadInfo::GetReferrer(nsIURI** aReferrer)
      91             : {
      92           6 :   NS_ENSURE_ARG_POINTER(aReferrer);
      93             : 
      94           6 :   *aReferrer = mReferrer;
      95           6 :   NS_IF_ADDREF(*aReferrer);
      96           6 :   return NS_OK;
      97             : }
      98             : 
      99             : NS_IMETHODIMP
     100           3 : nsDocShellLoadInfo::SetReferrer(nsIURI* aReferrer)
     101             : {
     102           3 :   mReferrer = aReferrer;
     103           3 :   return NS_OK;
     104             : }
     105             : 
     106             : NS_IMETHODIMP
     107           6 : nsDocShellLoadInfo::GetOriginalURI(nsIURI** aOriginalURI)
     108             : {
     109           6 :   NS_ENSURE_ARG_POINTER(aOriginalURI);
     110             : 
     111           6 :   *aOriginalURI = mOriginalURI;
     112           6 :   NS_IF_ADDREF(*aOriginalURI);
     113           6 :   return NS_OK;
     114             : }
     115             : 
     116             : NS_IMETHODIMP
     117           0 : nsDocShellLoadInfo::SetOriginalURI(nsIURI* aOriginalURI)
     118             : {
     119           0 :   mOriginalURI = aOriginalURI;
     120           0 :   return NS_OK;
     121             : }
     122             : 
     123             : NS_IMETHODIMP
     124           0 : nsDocShellLoadInfo::GetResultPrincipalURI(nsIURI** aResultPrincipalURI)
     125             : {
     126           0 :   NS_ENSURE_ARG_POINTER(aResultPrincipalURI);
     127             : 
     128           0 :   *aResultPrincipalURI = mResultPrincipalURI;
     129           0 :   NS_IF_ADDREF(*aResultPrincipalURI);
     130           0 :   return NS_OK;
     131             : }
     132             : 
     133             : NS_IMETHODIMP
     134           0 : nsDocShellLoadInfo::SetResultPrincipalURI(nsIURI* aResultPrincipalURI)
     135             : {
     136           0 :   mResultPrincipalURI = aResultPrincipalURI;
     137           0 :   return NS_OK;
     138             : }
     139             : 
     140             : NS_IMETHODIMP
     141           6 : nsDocShellLoadInfo::GetResultPrincipalURIIsSome(bool* aIsSome)
     142             : {
     143           6 :   *aIsSome = mResultPrincipalURIIsSome;
     144           6 :   return NS_OK;
     145             : }
     146             : 
     147             : NS_IMETHODIMP
     148           0 : nsDocShellLoadInfo::SetResultPrincipalURIIsSome(bool aIsSome)
     149             : {
     150           0 :   mResultPrincipalURIIsSome = aIsSome;
     151           0 :   return NS_OK;
     152             : }
     153             : 
     154             : NS_IMETHODIMP
     155           6 : nsDocShellLoadInfo::GetLoadReplace(bool* aLoadReplace)
     156             : {
     157           6 :   *aLoadReplace = mLoadReplace;
     158           6 :   return NS_OK;
     159             : }
     160             : 
     161             : NS_IMETHODIMP
     162           0 : nsDocShellLoadInfo::SetLoadReplace(bool aLoadReplace)
     163             : {
     164           0 :   mLoadReplace = aLoadReplace;
     165           0 :   return NS_OK;
     166             : }
     167             : 
     168             : NS_IMETHODIMP
     169           6 : nsDocShellLoadInfo::GetTriggeringPrincipal(nsIPrincipal** aTriggeringPrincipal)
     170             : {
     171           6 :   NS_ENSURE_ARG_POINTER(aTriggeringPrincipal);
     172           6 :   NS_IF_ADDREF(*aTriggeringPrincipal = mTriggeringPrincipal);
     173           6 :   return NS_OK;
     174             : }
     175             : 
     176             : NS_IMETHODIMP
     177           6 : nsDocShellLoadInfo::SetTriggeringPrincipal(nsIPrincipal* aTriggeringPrincipal)
     178             : {
     179           6 :   mTriggeringPrincipal = aTriggeringPrincipal;
     180           6 :   return NS_OK;
     181             : }
     182             : 
     183             : NS_IMETHODIMP
     184           6 : nsDocShellLoadInfo::GetInheritPrincipal(bool* aInheritPrincipal)
     185             : {
     186           6 :   NS_ENSURE_ARG_POINTER(aInheritPrincipal);
     187           6 :   *aInheritPrincipal = mInheritPrincipal;
     188           6 :   return NS_OK;
     189             : }
     190             : 
     191             : NS_IMETHODIMP
     192           0 : nsDocShellLoadInfo::SetInheritPrincipal(bool aInheritPrincipal)
     193             : {
     194           0 :   mInheritPrincipal = aInheritPrincipal;
     195           0 :   return NS_OK;
     196             : }
     197             : 
     198             : NS_IMETHODIMP
     199           6 : nsDocShellLoadInfo::GetPrincipalIsExplicit(bool* aPrincipalIsExplicit)
     200             : {
     201           6 :   *aPrincipalIsExplicit = mPrincipalIsExplicit;
     202           6 :   return NS_OK;
     203             : }
     204             : 
     205             : NS_IMETHODIMP
     206           0 : nsDocShellLoadInfo::SetPrincipalIsExplicit(bool aPrincipalIsExplicit)
     207             : {
     208           0 :   mPrincipalIsExplicit = aPrincipalIsExplicit;
     209           0 :   return NS_OK;
     210             : }
     211             : 
     212             : NS_IMETHODIMP
     213           6 : nsDocShellLoadInfo::GetLoadType(nsDocShellInfoLoadType* aLoadType)
     214             : {
     215           6 :   NS_ENSURE_ARG_POINTER(aLoadType);
     216             : 
     217           6 :   *aLoadType = mLoadType;
     218           6 :   return NS_OK;
     219             : }
     220             : 
     221             : NS_IMETHODIMP
     222           3 : nsDocShellLoadInfo::SetLoadType(nsDocShellInfoLoadType aLoadType)
     223             : {
     224           3 :   mLoadType = aLoadType;
     225           3 :   return NS_OK;
     226             : }
     227             : 
     228             : NS_IMETHODIMP
     229           6 : nsDocShellLoadInfo::GetSHEntry(nsISHEntry** aSHEntry)
     230             : {
     231           6 :   NS_ENSURE_ARG_POINTER(aSHEntry);
     232             : 
     233           6 :   *aSHEntry = mSHEntry;
     234           6 :   NS_IF_ADDREF(*aSHEntry);
     235           6 :   return NS_OK;
     236             : }
     237             : 
     238             : NS_IMETHODIMP
     239           0 : nsDocShellLoadInfo::SetSHEntry(nsISHEntry* aSHEntry)
     240             : {
     241           0 :   mSHEntry = aSHEntry;
     242           0 :   return NS_OK;
     243             : }
     244             : 
     245             : NS_IMETHODIMP
     246           6 : nsDocShellLoadInfo::GetTarget(char16_t** aTarget)
     247             : {
     248           6 :   NS_ENSURE_ARG_POINTER(aTarget);
     249             : 
     250           6 :   *aTarget = ToNewUnicode(mTarget);
     251             : 
     252           6 :   return NS_OK;
     253             : }
     254             : 
     255             : NS_IMETHODIMP
     256           0 : nsDocShellLoadInfo::SetTarget(const char16_t* aTarget)
     257             : {
     258           0 :   mTarget.Assign(aTarget);
     259           0 :   return NS_OK;
     260             : }
     261             : 
     262             : NS_IMETHODIMP
     263           6 : nsDocShellLoadInfo::GetPostDataStream(nsIInputStream** aResult)
     264             : {
     265           6 :   NS_ENSURE_ARG_POINTER(aResult);
     266             : 
     267           6 :   *aResult = mPostDataStream;
     268             : 
     269           6 :   NS_IF_ADDREF(*aResult);
     270           6 :   return NS_OK;
     271             : }
     272             : 
     273             : NS_IMETHODIMP
     274           3 : nsDocShellLoadInfo::SetPostDataStream(nsIInputStream* aStream)
     275             : {
     276           3 :   mPostDataStream = aStream;
     277           3 :   return NS_OK;
     278             : }
     279             : 
     280             : NS_IMETHODIMP
     281           6 : nsDocShellLoadInfo::GetHeadersStream(nsIInputStream** aHeadersStream)
     282             : {
     283           6 :   NS_ENSURE_ARG_POINTER(aHeadersStream);
     284           6 :   *aHeadersStream = mHeadersStream;
     285           6 :   NS_IF_ADDREF(*aHeadersStream);
     286           6 :   return NS_OK;
     287             : }
     288             : NS_IMETHODIMP
     289           3 : nsDocShellLoadInfo::SetHeadersStream(nsIInputStream* aHeadersStream)
     290             : {
     291           3 :   mHeadersStream = aHeadersStream;
     292           3 :   return NS_OK;
     293             : }
     294             : 
     295             : NS_IMETHODIMP
     296           6 : nsDocShellLoadInfo::GetSendReferrer(bool* aSendReferrer)
     297             : {
     298           6 :   NS_ENSURE_ARG_POINTER(aSendReferrer);
     299             : 
     300           6 :   *aSendReferrer = mSendReferrer;
     301           6 :   return NS_OK;
     302             : }
     303             : 
     304             : NS_IMETHODIMP
     305           0 : nsDocShellLoadInfo::SetSendReferrer(bool aSendReferrer)
     306             : {
     307           0 :   mSendReferrer = aSendReferrer;
     308           0 :   return NS_OK;
     309             : }
     310             : 
     311             : NS_IMETHODIMP
     312           6 : nsDocShellLoadInfo::GetReferrerPolicy(
     313             :     nsDocShellInfoReferrerPolicy* aReferrerPolicy)
     314             : {
     315           6 :   *aReferrerPolicy = mReferrerPolicy;
     316           6 :   return NS_OK;
     317             : }
     318             : 
     319             : NS_IMETHODIMP
     320           5 : nsDocShellLoadInfo::SetReferrerPolicy(
     321             :     nsDocShellInfoReferrerPolicy aReferrerPolicy)
     322             : {
     323           5 :   mReferrerPolicy = aReferrerPolicy;
     324           5 :   return NS_OK;
     325             : }
     326             : 
     327             : NS_IMETHODIMP
     328           6 : nsDocShellLoadInfo::GetIsSrcdocLoad(bool* aIsSrcdocLoad)
     329             : {
     330           6 :   *aIsSrcdocLoad = mIsSrcdocLoad;
     331           6 :   return NS_OK;
     332             : }
     333             : 
     334             : NS_IMETHODIMP
     335           6 : nsDocShellLoadInfo::GetSrcdocData(nsAString& aSrcdocData)
     336             : {
     337           6 :   aSrcdocData = mSrcdocData;
     338           6 :   return NS_OK;
     339             : }
     340             : 
     341             : NS_IMETHODIMP
     342           0 : nsDocShellLoadInfo::SetSrcdocData(const nsAString& aSrcdocData)
     343             : {
     344           0 :   mSrcdocData = aSrcdocData;
     345           0 :   mIsSrcdocLoad = true;
     346           0 :   return NS_OK;
     347             : }
     348             : 
     349             : NS_IMETHODIMP
     350           6 : nsDocShellLoadInfo::GetSourceDocShell(nsIDocShell** aSourceDocShell)
     351             : {
     352           6 :   MOZ_ASSERT(aSourceDocShell);
     353          12 :   nsCOMPtr<nsIDocShell> result = mSourceDocShell;
     354           6 :   result.forget(aSourceDocShell);
     355          12 :   return NS_OK;
     356             : }
     357             : 
     358             : NS_IMETHODIMP
     359           0 : nsDocShellLoadInfo::SetSourceDocShell(nsIDocShell* aSourceDocShell)
     360             : {
     361           0 :   mSourceDocShell = aSourceDocShell;
     362           0 :   return NS_OK;
     363             : }
     364             : 
     365             : NS_IMETHODIMP
     366           6 : nsDocShellLoadInfo::GetBaseURI(nsIURI** aBaseURI)
     367             : {
     368           6 :   NS_ENSURE_ARG_POINTER(aBaseURI);
     369             : 
     370           6 :   *aBaseURI = mBaseURI;
     371           6 :   NS_IF_ADDREF(*aBaseURI);
     372           6 :   return NS_OK;
     373             : }
     374             : 
     375             : NS_IMETHODIMP
     376           3 : nsDocShellLoadInfo::SetBaseURI(nsIURI* aBaseURI)
     377             : {
     378           3 :   mBaseURI = aBaseURI;
     379           3 :   return NS_OK;
     380             : }

Generated by: LCOV version 1.13