Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/dom/base/nsOpenURIInFrameParams.cpp
Line
Count
Source (jump to first uncovered line)
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 "nsOpenURIInFrameParams.h"
8
#include "mozilla/BasePrincipal.h"
9
#include "mozilla/dom/ToJSValue.h"
10
#include "mozilla/net/ReferrerPolicy.h"
11
12
0
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsOpenURIInFrameParams)
13
0
  NS_INTERFACE_MAP_ENTRY(nsIOpenURIInFrameParams)
14
0
  NS_INTERFACE_MAP_ENTRY(nsISupports)
15
0
NS_INTERFACE_MAP_END
16
17
NS_IMPL_CYCLE_COLLECTION(nsOpenURIInFrameParams, mOpenerBrowser)
18
19
NS_IMPL_CYCLE_COLLECTING_ADDREF(nsOpenURIInFrameParams)
20
NS_IMPL_CYCLE_COLLECTING_RELEASE(nsOpenURIInFrameParams)
21
22
nsOpenURIInFrameParams::nsOpenURIInFrameParams(const mozilla::OriginAttributes& aOriginAttributes,
23
                                               nsIFrameLoaderOwner* aOpener)
24
  : mOpenerOriginAttributes(aOriginAttributes)
25
  , mOpenerBrowser(aOpener)
26
  , mReferrerPolicy(mozilla::net::RP_Unset)
27
0
{
28
0
}
29
30
0
nsOpenURIInFrameParams::~nsOpenURIInFrameParams() {
31
0
}
32
33
NS_IMETHODIMP
34
nsOpenURIInFrameParams::GetReferrer(nsAString& aReferrer)
35
0
{
36
0
  aReferrer = mReferrer;
37
0
  return NS_OK;
38
0
}
39
40
NS_IMETHODIMP
41
nsOpenURIInFrameParams::SetReferrer(const nsAString& aReferrer)
42
0
{
43
0
  mReferrer = aReferrer;
44
0
  return NS_OK;
45
0
}
46
47
48
NS_IMETHODIMP
49
nsOpenURIInFrameParams::GetReferrerPolicy(uint32_t* aReferrerPolicy)
50
0
{
51
0
  *aReferrerPolicy = mReferrerPolicy;
52
0
  return NS_OK;
53
0
}
54
55
NS_IMETHODIMP
56
nsOpenURIInFrameParams::SetReferrerPolicy(uint32_t aReferrerPolicy)
57
0
{
58
0
  mReferrerPolicy = aReferrerPolicy;
59
0
  return NS_OK;
60
0
}
61
62
NS_IMETHODIMP
63
nsOpenURIInFrameParams::GetIsPrivate(bool* aIsPrivate)
64
0
{
65
0
  NS_ENSURE_ARG_POINTER(aIsPrivate);
66
0
  *aIsPrivate = mOpenerOriginAttributes.mPrivateBrowsingId > 0;
67
0
  return NS_OK;
68
0
}
69
70
NS_IMETHODIMP
71
nsOpenURIInFrameParams::GetTriggeringPrincipal(nsIPrincipal** aTriggeringPrincipal)
72
0
{
73
0
  NS_ADDREF(*aTriggeringPrincipal = mTriggeringPrincipal);
74
0
  return NS_OK;
75
0
}
76
77
NS_IMETHODIMP
78
nsOpenURIInFrameParams::SetTriggeringPrincipal(nsIPrincipal* aTriggeringPrincipal)
79
0
{
80
0
  NS_ENSURE_TRUE(aTriggeringPrincipal, NS_ERROR_INVALID_ARG);
81
0
  mTriggeringPrincipal = aTriggeringPrincipal;
82
0
  return NS_OK;
83
0
}
84
85
NS_IMETHODIMP
86
nsOpenURIInFrameParams::GetOpenerBrowser(nsIFrameLoaderOwner** aOpenerBrowser)
87
0
{
88
0
  nsCOMPtr<nsIFrameLoaderOwner> owner = mOpenerBrowser;
89
0
  owner.forget(aOpenerBrowser);
90
0
  return NS_OK;
91
0
}
92
93
NS_IMETHODIMP
94
nsOpenURIInFrameParams::GetOpenerOriginAttributes(JSContext* aCx,
95
                                                  JS::MutableHandle<JS::Value> aValue)
96
0
{
97
0
  bool ok = ToJSValue(aCx, mOpenerOriginAttributes, aValue);
98
0
  NS_ENSURE_TRUE(ok, NS_ERROR_FAILURE);
99
0
  return NS_OK;
100
0
}