diff -r 000000000000 -r 6474c204b198 docshell/base/nsDocShellLoadInfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docshell/base/nsDocShellLoadInfo.cpp Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,249 @@ +/* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +// Local Includes +#include "nsDocShellLoadInfo.h" +#include "nsISHEntry.h" +#include "nsIInputStream.h" +#include "nsIURI.h" +#include "nsIDocShell.h" + +//***************************************************************************** +//*** nsDocShellLoadInfo: Object Management +//***************************************************************************** + +nsDocShellLoadInfo::nsDocShellLoadInfo() + : mInheritOwner(false), + mOwnerIsExplicit(false), + mSendReferrer(true), + mLoadType(nsIDocShellLoadInfo::loadNormal), + mIsSrcdocLoad(false) +{ +} + +nsDocShellLoadInfo::~nsDocShellLoadInfo() +{ +} + +//***************************************************************************** +// nsDocShellLoadInfo::nsISupports +//***************************************************************************** + +NS_IMPL_ADDREF(nsDocShellLoadInfo) +NS_IMPL_RELEASE(nsDocShellLoadInfo) + +NS_INTERFACE_MAP_BEGIN(nsDocShellLoadInfo) + NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDocShellLoadInfo) + NS_INTERFACE_MAP_ENTRY(nsIDocShellLoadInfo) +NS_INTERFACE_MAP_END + +//***************************************************************************** +// nsDocShellLoadInfo::nsIDocShellLoadInfo +//***************************************************************************** + +NS_IMETHODIMP nsDocShellLoadInfo::GetReferrer(nsIURI** aReferrer) +{ + NS_ENSURE_ARG_POINTER(aReferrer); + + *aReferrer = mReferrer; + NS_IF_ADDREF(*aReferrer); + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetReferrer(nsIURI* aReferrer) +{ + mReferrer = aReferrer; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetOwner(nsISupports** aOwner) +{ + NS_ENSURE_ARG_POINTER(aOwner); + + *aOwner = mOwner; + NS_IF_ADDREF(*aOwner); + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetOwner(nsISupports* aOwner) +{ + mOwner = aOwner; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetInheritOwner(bool* aInheritOwner) +{ + NS_ENSURE_ARG_POINTER(aInheritOwner); + + *aInheritOwner = mInheritOwner; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetInheritOwner(bool aInheritOwner) +{ + mInheritOwner = aInheritOwner; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetOwnerIsExplicit(bool* aOwnerIsExplicit) +{ + *aOwnerIsExplicit = mOwnerIsExplicit; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetOwnerIsExplicit(bool aOwnerIsExplicit) +{ + mOwnerIsExplicit = aOwnerIsExplicit; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetLoadType(nsDocShellInfoLoadType * aLoadType) +{ + NS_ENSURE_ARG_POINTER(aLoadType); + + *aLoadType = mLoadType; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetLoadType(nsDocShellInfoLoadType aLoadType) +{ + mLoadType = aLoadType; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetSHEntry(nsISHEntry** aSHEntry) +{ + NS_ENSURE_ARG_POINTER(aSHEntry); + + *aSHEntry = mSHEntry; + NS_IF_ADDREF(*aSHEntry); + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetSHEntry(nsISHEntry* aSHEntry) +{ + mSHEntry = aSHEntry; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetTarget(char16_t** aTarget) +{ + NS_ENSURE_ARG_POINTER(aTarget); + + *aTarget = ToNewUnicode(mTarget); + + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetTarget(const char16_t* aTarget) +{ + mTarget.Assign(aTarget); + return NS_OK; +} + + +NS_IMETHODIMP +nsDocShellLoadInfo::GetPostDataStream(nsIInputStream **aResult) +{ + NS_ENSURE_ARG_POINTER(aResult); + + *aResult = mPostDataStream; + + NS_IF_ADDREF(*aResult); + return NS_OK; +} + + +NS_IMETHODIMP +nsDocShellLoadInfo::SetPostDataStream(nsIInputStream *aStream) +{ + mPostDataStream = aStream; + return NS_OK; +} + +/* attribute nsIInputStream headersStream; */ +NS_IMETHODIMP nsDocShellLoadInfo::GetHeadersStream(nsIInputStream * *aHeadersStream) +{ + NS_ENSURE_ARG_POINTER(aHeadersStream); + *aHeadersStream = mHeadersStream; + NS_IF_ADDREF(*aHeadersStream); + return NS_OK; +} +NS_IMETHODIMP nsDocShellLoadInfo::SetHeadersStream(nsIInputStream * aHeadersStream) +{ + mHeadersStream = aHeadersStream; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetSendReferrer(bool* aSendReferrer) +{ + NS_ENSURE_ARG_POINTER(aSendReferrer); + + *aSendReferrer = mSendReferrer; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetSendReferrer(bool aSendReferrer) +{ + mSendReferrer = aSendReferrer; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetIsSrcdocLoad(bool* aIsSrcdocLoad) +{ + *aIsSrcdocLoad = mIsSrcdocLoad; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetSrcdocData(nsAString &aSrcdocData) +{ + aSrcdocData = mSrcdocData; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetSrcdocData(const nsAString &aSrcdocData) +{ + mSrcdocData = aSrcdocData; + mIsSrcdocLoad = true; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetSourceDocShell(nsIDocShell** aSourceDocShell) +{ + MOZ_ASSERT(aSourceDocShell); + nsCOMPtr result = mSourceDocShell; + result.forget(aSourceDocShell); + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetSourceDocShell(nsIDocShell* aSourceDocShell) +{ + mSourceDocShell = aSourceDocShell; + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::GetBaseURI(nsIURI** aBaseURI) +{ + NS_ENSURE_ARG_POINTER(aBaseURI); + + *aBaseURI = mBaseURI; + NS_IF_ADDREF(*aBaseURI); + return NS_OK; +} + +NS_IMETHODIMP nsDocShellLoadInfo::SetBaseURI(nsIURI* aBaseURI) +{ + mBaseURI = aBaseURI; + return NS_OK; +} + +//***************************************************************************** +// nsDocShellLoadInfo: Helpers +//***************************************************************************** + +//***************************************************************************** +// nsDocShellLoadInfo: Accessors +//*****************************************************************************