|
1 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
4 |
|
5 #include "InterAppComm.h" |
|
6 #include "nsContentUtils.h" |
|
7 #include "nsPIDOMWindow.h" |
|
8 #include "nsJSPrincipals.h" |
|
9 #include "mozilla/Preferences.h" |
|
10 #include "AccessCheck.h" |
|
11 |
|
12 using namespace mozilla::dom; |
|
13 |
|
14 /* static */ bool |
|
15 InterAppComm::EnabledForScope(JSContext* /* unused */, |
|
16 JS::Handle<JSObject*> /* unused */) |
|
17 { |
|
18 // Disable the constructors if they're disabled by the preference for sure. |
|
19 if (!Preferences::GetBool("dom.inter-app-communication-api.enabled", false)) { |
|
20 return false; |
|
21 } |
|
22 |
|
23 // Only expose the constructors to the chrome codes for Gecko internal uses. |
|
24 // The content pages shouldn't be aware of the constructors. |
|
25 return nsContentUtils::ThreadsafeIsCallerChrome(); |
|
26 } |