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/. */
7 #include "nsOpenURIInFrameParams.h"
8 #include "nsIOpenWindowInfo.h"
9 #include "mozilla/BasePrincipal.h"
10 #include "mozilla/dom/Element.h"
11 #include "mozilla/dom/ToJSValue.h"
13 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsOpenURIInFrameParams
)
14 NS_INTERFACE_MAP_ENTRY(nsIOpenURIInFrameParams
)
15 NS_INTERFACE_MAP_ENTRY(nsISupports
)
18 NS_IMPL_CYCLE_COLLECTION(nsOpenURIInFrameParams
, mOpenerBrowser
)
20 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsOpenURIInFrameParams
)
21 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsOpenURIInFrameParams
)
23 nsOpenURIInFrameParams::nsOpenURIInFrameParams(
24 nsIOpenWindowInfo
* aOpenWindowInfo
, mozilla::dom::Element
* aOpener
)
25 : mOpenWindowInfo(aOpenWindowInfo
), mOpenerBrowser(aOpener
) {}
27 nsOpenURIInFrameParams::~nsOpenURIInFrameParams() = default;
30 nsOpenURIInFrameParams::GetOpenWindowInfo(nsIOpenWindowInfo
** aOpenWindowInfo
) {
31 NS_IF_ADDREF(*aOpenWindowInfo
= mOpenWindowInfo
);
36 nsOpenURIInFrameParams::GetReferrerInfo(nsIReferrerInfo
** aReferrerInfo
) {
37 NS_IF_ADDREF(*aReferrerInfo
= mReferrerInfo
);
42 nsOpenURIInFrameParams::SetReferrerInfo(nsIReferrerInfo
* aReferrerInfo
) {
43 mReferrerInfo
= aReferrerInfo
;
48 nsOpenURIInFrameParams::GetIsPrivate(bool* aIsPrivate
) {
49 NS_ENSURE_ARG_POINTER(aIsPrivate
);
50 *aIsPrivate
= mOpenWindowInfo
->GetOriginAttributes().mPrivateBrowsingId
> 0;
55 nsOpenURIInFrameParams::GetTriggeringPrincipal(
56 nsIPrincipal
** aTriggeringPrincipal
) {
57 NS_ADDREF(*aTriggeringPrincipal
= mTriggeringPrincipal
);
62 nsOpenURIInFrameParams::SetTriggeringPrincipal(
63 nsIPrincipal
* aTriggeringPrincipal
) {
64 NS_ENSURE_TRUE(aTriggeringPrincipal
, NS_ERROR_INVALID_ARG
);
65 mTriggeringPrincipal
= aTriggeringPrincipal
;
70 nsOpenURIInFrameParams::GetCsp(nsIContentSecurityPolicy
** aCsp
) {
71 NS_IF_ADDREF(*aCsp
= mCsp
);
76 nsOpenURIInFrameParams::SetCsp(nsIContentSecurityPolicy
* aCsp
) {
77 NS_ENSURE_TRUE(aCsp
, NS_ERROR_INVALID_ARG
);
82 nsresult
nsOpenURIInFrameParams::GetOpenerBrowser(
83 mozilla::dom::Element
** aOpenerBrowser
) {
84 RefPtr
<mozilla::dom::Element
> owner
= mOpenerBrowser
;
85 owner
.forget(aOpenerBrowser
);
90 nsOpenURIInFrameParams::GetOpenerOriginAttributes(
91 JSContext
* aCx
, JS::MutableHandle
<JS::Value
> aValue
) {
92 return mOpenWindowInfo
->GetScriptableOriginAttributes(aCx
, aValue
);