Bumping manifests a=b2g-bump
[gecko.git] / docshell / base / LoadContext.cpp
blob893c9b6b5f275695a8dd8d06b6e24f237283a294
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"
10 namespace mozilla {
12 NS_IMPL_ISUPPORTS(LoadContext, nsILoadContext, nsIInterfaceRequestor)
14 LoadContext::LoadContext(nsIPrincipal* aPrincipal)
15 : mTopFrameElement(nullptr)
16 , mNestedFrameId(0)
17 , mIsContent(true)
18 , mUsePrivateBrowsing(false)
19 , mUseRemoteTabs(false)
20 #ifdef DEBUG
21 , mIsNotNull(true)
22 #endif
24 MOZ_ALWAYS_TRUE(NS_SUCCEEDED(aPrincipal->GetAppId(&mAppId)));
25 MOZ_ALWAYS_TRUE(NS_SUCCEEDED(
26 aPrincipal->GetIsInBrowserElement(&mIsInBrowserElement)));
29 //-----------------------------------------------------------------------------
30 // LoadContext::nsILoadContext
31 //-----------------------------------------------------------------------------
33 NS_IMETHODIMP
34 LoadContext::GetAssociatedWindow(nsIDOMWindow**)
36 MOZ_ASSERT(mIsNotNull);
38 // can't support this in the parent process
39 return NS_ERROR_UNEXPECTED;
42 NS_IMETHODIMP
43 LoadContext::GetTopWindow(nsIDOMWindow**)
45 MOZ_ASSERT(mIsNotNull);
47 // can't support this in the parent process
48 return NS_ERROR_UNEXPECTED;
51 NS_IMETHODIMP
52 LoadContext::GetTopFrameElement(nsIDOMElement** aElement)
54 nsCOMPtr<nsIDOMElement> element = do_QueryReferent(mTopFrameElement);
55 element.forget(aElement);
56 return NS_OK;
59 NS_IMETHODIMP
60 LoadContext::GetNestedFrameId(uint64_t* aId)
62 NS_ENSURE_ARG(aId);
63 *aId = mNestedFrameId;
64 return NS_OK;
67 NS_IMETHODIMP
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;
76 NS_IMETHODIMP
77 LoadContext::GetIsContent(bool* aIsContent)
79 MOZ_ASSERT(mIsNotNull);
81 NS_ENSURE_ARG_POINTER(aIsContent);
83 *aIsContent = mIsContent;
84 return NS_OK;
87 NS_IMETHODIMP
88 LoadContext::GetUsePrivateBrowsing(bool* aUsePrivateBrowsing)
90 MOZ_ASSERT(mIsNotNull);
92 NS_ENSURE_ARG_POINTER(aUsePrivateBrowsing);
94 *aUsePrivateBrowsing = mUsePrivateBrowsing;
95 return NS_OK;
98 NS_IMETHODIMP
99 LoadContext::SetUsePrivateBrowsing(bool aUsePrivateBrowsing)
101 MOZ_ASSERT(mIsNotNull);
103 // We shouldn't need this on parent...
104 return NS_ERROR_UNEXPECTED;
107 NS_IMETHODIMP
108 LoadContext::SetPrivateBrowsing(bool aUsePrivateBrowsing)
110 MOZ_ASSERT(mIsNotNull);
112 // We shouldn't need this on parent...
113 return NS_ERROR_UNEXPECTED;
116 NS_IMETHODIMP
117 LoadContext::GetUseRemoteTabs(bool* aUseRemoteTabs)
119 MOZ_ASSERT(mIsNotNull);
121 NS_ENSURE_ARG_POINTER(aUseRemoteTabs);
123 *aUseRemoteTabs = mUseRemoteTabs;
124 return NS_OK;
127 NS_IMETHODIMP
128 LoadContext::SetRemoteTabs(bool aUseRemoteTabs)
130 MOZ_ASSERT(mIsNotNull);
132 // We shouldn't need this on parent...
133 return NS_ERROR_UNEXPECTED;
136 NS_IMETHODIMP
137 LoadContext::GetIsInBrowserElement(bool* aIsInBrowserElement)
139 MOZ_ASSERT(mIsNotNull);
141 NS_ENSURE_ARG_POINTER(aIsInBrowserElement);
143 *aIsInBrowserElement = mIsInBrowserElement;
144 return NS_OK;
147 NS_IMETHODIMP
148 LoadContext::GetAppId(uint32_t* aAppId)
150 MOZ_ASSERT(mIsNotNull);
152 NS_ENSURE_ARG_POINTER(aAppId);
154 *aAppId = mAppId;
155 return NS_OK;
158 //-----------------------------------------------------------------------------
159 // LoadContext::nsIInterfaceRequestor
160 //-----------------------------------------------------------------------------
161 NS_IMETHODIMP
162 LoadContext::GetInterface(const nsIID &aIID, void **aResult)
164 NS_ENSURE_ARG_POINTER(aResult);
165 *aResult = nullptr;
167 if (aIID.Equals(NS_GET_IID(nsILoadContext))) {
168 *aResult = static_cast<nsILoadContext*>(this);
169 NS_ADDREF_THIS();
170 return NS_OK;
173 return NS_NOINTERFACE;
176 } // namespace mozilla