1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set sw=2 ts=8 et 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 "mozilla/Assertions.h"
8 #include "mozilla/LoadContext.h"
12 NS_IMPL_ISUPPORTS(LoadContext
, nsILoadContext
, nsIInterfaceRequestor
)
14 LoadContext::LoadContext(nsIPrincipal
* aPrincipal
)
15 : mTopFrameElement(nullptr)
18 , mUsePrivateBrowsing(false)
19 , mUseRemoteTabs(false)
24 MOZ_ALWAYS_TRUE(NS_SUCCEEDED(aPrincipal
->GetAppId(&mAppId
)));
25 MOZ_ALWAYS_TRUE(NS_SUCCEEDED(
26 aPrincipal
->GetIsInBrowserElement(&mIsInBrowserElement
)));
29 //-----------------------------------------------------------------------------
30 // LoadContext::nsILoadContext
31 //-----------------------------------------------------------------------------
34 LoadContext::GetAssociatedWindow(nsIDOMWindow
**)
36 MOZ_ASSERT(mIsNotNull
);
38 // can't support this in the parent process
39 return NS_ERROR_UNEXPECTED
;
43 LoadContext::GetTopWindow(nsIDOMWindow
**)
45 MOZ_ASSERT(mIsNotNull
);
47 // can't support this in the parent process
48 return NS_ERROR_UNEXPECTED
;
52 LoadContext::GetTopFrameElement(nsIDOMElement
** aElement
)
54 nsCOMPtr
<nsIDOMElement
> element
= do_QueryReferent(mTopFrameElement
);
55 element
.forget(aElement
);
60 LoadContext::GetNestedFrameId(uint64_t* aId
)
63 *aId
= mNestedFrameId
;
68 LoadContext::IsAppOfType(uint32_t, bool*)
70 MOZ_ASSERT(mIsNotNull
);
72 // don't expect we need this in parent (Thunderbird/SeaMonkey specific?)
73 return NS_ERROR_UNEXPECTED
;
77 LoadContext::GetIsContent(bool* aIsContent
)
79 MOZ_ASSERT(mIsNotNull
);
81 NS_ENSURE_ARG_POINTER(aIsContent
);
83 *aIsContent
= mIsContent
;
88 LoadContext::GetUsePrivateBrowsing(bool* aUsePrivateBrowsing
)
90 MOZ_ASSERT(mIsNotNull
);
92 NS_ENSURE_ARG_POINTER(aUsePrivateBrowsing
);
94 *aUsePrivateBrowsing
= mUsePrivateBrowsing
;
99 LoadContext::SetUsePrivateBrowsing(bool aUsePrivateBrowsing
)
101 MOZ_ASSERT(mIsNotNull
);
103 // We shouldn't need this on parent...
104 return NS_ERROR_UNEXPECTED
;
108 LoadContext::SetPrivateBrowsing(bool aUsePrivateBrowsing
)
110 MOZ_ASSERT(mIsNotNull
);
112 // We shouldn't need this on parent...
113 return NS_ERROR_UNEXPECTED
;
117 LoadContext::GetUseRemoteTabs(bool* aUseRemoteTabs
)
119 MOZ_ASSERT(mIsNotNull
);
121 NS_ENSURE_ARG_POINTER(aUseRemoteTabs
);
123 *aUseRemoteTabs
= mUseRemoteTabs
;
128 LoadContext::SetRemoteTabs(bool aUseRemoteTabs
)
130 MOZ_ASSERT(mIsNotNull
);
132 // We shouldn't need this on parent...
133 return NS_ERROR_UNEXPECTED
;
137 LoadContext::GetIsInBrowserElement(bool* aIsInBrowserElement
)
139 MOZ_ASSERT(mIsNotNull
);
141 NS_ENSURE_ARG_POINTER(aIsInBrowserElement
);
143 *aIsInBrowserElement
= mIsInBrowserElement
;
148 LoadContext::GetAppId(uint32_t* aAppId
)
150 MOZ_ASSERT(mIsNotNull
);
152 NS_ENSURE_ARG_POINTER(aAppId
);
158 //-----------------------------------------------------------------------------
159 // LoadContext::nsIInterfaceRequestor
160 //-----------------------------------------------------------------------------
162 LoadContext::GetInterface(const nsIID
&aIID
, void **aResult
)
164 NS_ENSURE_ARG_POINTER(aResult
);
167 if (aIID
.Equals(NS_GET_IID(nsILoadContext
))) {
168 *aResult
= static_cast<nsILoadContext
*>(this);
173 return NS_NOINTERFACE
;
176 } // namespace mozilla