Backed out changeset 2450366cf7ca (bug 1891629) for causing win msix mochitest failures
[gecko.git] / dom / base / nsOpenURIInFrameParams.cpp
bloba8e95170e6be87e0afb568dfcb3dd3e87b295c3a
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)
16 NS_INTERFACE_MAP_END
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;
29 NS_IMETHODIMP
30 nsOpenURIInFrameParams::GetOpenWindowInfo(nsIOpenWindowInfo** aOpenWindowInfo) {
31 NS_IF_ADDREF(*aOpenWindowInfo = mOpenWindowInfo);
32 return NS_OK;
35 NS_IMETHODIMP
36 nsOpenURIInFrameParams::GetReferrerInfo(nsIReferrerInfo** aReferrerInfo) {
37 NS_IF_ADDREF(*aReferrerInfo = mReferrerInfo);
38 return NS_OK;
41 NS_IMETHODIMP
42 nsOpenURIInFrameParams::SetReferrerInfo(nsIReferrerInfo* aReferrerInfo) {
43 mReferrerInfo = aReferrerInfo;
44 return NS_OK;
47 NS_IMETHODIMP
48 nsOpenURIInFrameParams::GetIsPrivate(bool* aIsPrivate) {
49 NS_ENSURE_ARG_POINTER(aIsPrivate);
50 *aIsPrivate = mOpenWindowInfo->GetOriginAttributes().mPrivateBrowsingId > 0;
51 return NS_OK;
54 NS_IMETHODIMP
55 nsOpenURIInFrameParams::GetTriggeringPrincipal(
56 nsIPrincipal** aTriggeringPrincipal) {
57 NS_ADDREF(*aTriggeringPrincipal = mTriggeringPrincipal);
58 return NS_OK;
61 NS_IMETHODIMP
62 nsOpenURIInFrameParams::SetTriggeringPrincipal(
63 nsIPrincipal* aTriggeringPrincipal) {
64 NS_ENSURE_TRUE(aTriggeringPrincipal, NS_ERROR_INVALID_ARG);
65 mTriggeringPrincipal = aTriggeringPrincipal;
66 return NS_OK;
69 NS_IMETHODIMP
70 nsOpenURIInFrameParams::GetCsp(nsIContentSecurityPolicy** aCsp) {
71 NS_IF_ADDREF(*aCsp = mCsp);
72 return NS_OK;
75 NS_IMETHODIMP
76 nsOpenURIInFrameParams::SetCsp(nsIContentSecurityPolicy* aCsp) {
77 NS_ENSURE_TRUE(aCsp, NS_ERROR_INVALID_ARG);
78 mCsp = aCsp;
79 return NS_OK;
82 nsresult nsOpenURIInFrameParams::GetOpenerBrowser(
83 mozilla::dom::Element** aOpenerBrowser) {
84 RefPtr<mozilla::dom::Element> owner = mOpenerBrowser;
85 owner.forget(aOpenerBrowser);
86 return NS_OK;
89 NS_IMETHODIMP
90 nsOpenURIInFrameParams::GetOpenerOriginAttributes(
91 JSContext* aCx, JS::MutableHandle<JS::Value> aValue) {
92 return mOpenWindowInfo->GetScriptableOriginAttributes(aCx, aValue);