diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in index 4acebe8f6759b7df010f7f43e52f7540fd9e2f9e..07abad742d2cb0de3dd479d7e3ffd614e13dcf01 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in @@ -173,9 +173,6 @@ ; JavaScript components @RESPATH@/browser/components/BrowserComponents.manifest -@RESPATH@/components/EnterprisePolicies.js -@RESPATH@/components/EnterprisePoliciesContent.js -@RESPATH@/components/EnterprisePolicies.manifest @RESPATH@/components/toolkitsearch.manifest @RESPATH@/components/extensions.manifest #ifdef MOZ_UPDATER diff --git a/toolkit/components/enterprisepolicies/EnterprisePolicies.jsm b/toolkit/components/enterprisepolicies/EnterprisePolicies.jsm new file mode 100644 index 0000000000000000000000000000000000000000..0d615ed560f1003fe312621afb55beb1d98be39b --- /dev/null +++ b/toolkit/components/enterprisepolicies/EnterprisePolicies.jsm @@ -0,0 +1,22 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +var EXPORTED_SYMBOLS = ["EnterprisePolicies"]; + +function EnterprisePolicies() { + // eslint-disable-next-line mozilla/use-services + const appinfo = Cc["@mozilla.org/xre/app-info;1"].getService( + Ci.nsIXULRuntime + ); + if (appinfo.processType == appinfo.PROCESS_TYPE_DEFAULT) { + const { EnterprisePoliciesManager } = ChromeUtils.import( + "resource://gre/modules/EnterprisePoliciesParent.jsm" + ); + return new EnterprisePoliciesManager(); + } + const { EnterprisePoliciesManagerContent } = ChromeUtils.import( + "resource://gre/modules/EnterprisePoliciesContent.jsm" + ); + return new EnterprisePoliciesManagerContent(); +} diff --git a/toolkit/components/enterprisepolicies/EnterprisePolicies.manifest b/toolkit/components/enterprisepolicies/EnterprisePolicies.manifest deleted file mode 100644 index b3a542b7fd6e29c6533374d18e4ef00636ee23cc..0000000000000000000000000000000000000000 --- a/toolkit/components/enterprisepolicies/EnterprisePolicies.manifest +++ /dev/null @@ -1,5 +0,0 @@ -component {ea4e1414-779b-458b-9d1f-d18e8efbc145} EnterprisePolicies.js process=main -contract @mozilla.org/enterprisepolicies;1 {ea4e1414-779b-458b-9d1f-d18e8efbc145} process=main - -component {dc6358f8-d167-4566-bf5b-4350b5e6a7a2} EnterprisePoliciesContent.js process=content -contract @mozilla.org/enterprisepolicies;1 {dc6358f8-d167-4566-bf5b-4350b5e6a7a2} process=content diff --git a/toolkit/components/enterprisepolicies/EnterprisePoliciesContent.js b/toolkit/components/enterprisepolicies/EnterprisePoliciesContent.jsm similarity index 55% rename from toolkit/components/enterprisepolicies/EnterprisePoliciesContent.js rename to toolkit/components/enterprisepolicies/EnterprisePoliciesContent.jsm index c2efb692cc29512ad7791f0f9c8ef28c537293ac..367e7a5f85c4878dc18730eb4660b53101d8bdec 100644 --- a/toolkit/components/enterprisepolicies/EnterprisePoliciesContent.js +++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesContent.jsm @@ -2,35 +2,26 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -const { XPCOMUtils } = ChromeUtils.import( - "resource://gre/modules/XPCOMUtils.jsm" -); -const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); - -function EnterprisePoliciesManagerContent() {} +var EXPORTED_SYMBOLS = ["EnterprisePoliciesManagerContent"]; -EnterprisePoliciesManagerContent.prototype = { - classID: Components.ID("{dc6358f8-d167-4566-bf5b-4350b5e6a7a2}"), - QueryInterface: ChromeUtils.generateQI([Ci.nsIEnterprisePolicies]), - _xpcom_factory: XPCOMUtils.generateSingletonFactory( - EnterprisePoliciesManagerContent - ), +const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); +class EnterprisePoliciesManagerContent { get status() { return ( Services.cpmm.sharedData.get("EnterprisePolicies:Status") || Ci.nsIEnterprisePolicies.INACTIVE ); - }, + } isAllowed(feature) { let disallowedFeatures = Services.cpmm.sharedData.get( "EnterprisePolicies:DisallowedFeatures" ); return !(disallowedFeatures && disallowedFeatures.has(feature)); - }, -}; + } +} -this.NSGetFactory = XPCOMUtils.generateNSGetFactory([ - EnterprisePoliciesManagerContent, -]); +EnterprisePoliciesManagerContent.prototype.QueryInterface = ChromeUtils.generateQI( + [Ci.nsIEnterprisePolicies] +); diff --git a/toolkit/components/enterprisepolicies/EnterprisePolicies.js b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm similarity index 98% rename from toolkit/components/enterprisepolicies/EnterprisePolicies.js rename to toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm index aa8a2e54024ec0cc2beb01cc5950415d3a5afeb3..beb5b8e2f6f2b899a27b6979bebf6c82996456e5 100644 --- a/toolkit/components/enterprisepolicies/EnterprisePolicies.js +++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +var EXPORTED_SYMBOLS = ["EnterprisePoliciesManager"]; + const { XPCOMUtils } = ChromeUtils.import( "resource://gre/modules/XPCOMUtils.jsm" ); @@ -80,15 +82,11 @@ function EnterprisePoliciesManager() { } EnterprisePoliciesManager.prototype = { - classID: Components.ID("{ea4e1414-779b-458b-9d1f-d18e8efbc145}"), QueryInterface: ChromeUtils.generateQI([ Ci.nsIObserver, Ci.nsISupportsWeakReference, Ci.nsIEnterprisePolicies, ]), - _xpcom_factory: XPCOMUtils.generateSingletonFactory( - EnterprisePoliciesManager - ), _initialize() { let provider = this._chooseProvider(); @@ -631,6 +629,3 @@ class macOSPoliciesProvider { return this._failed; } } - -var components = [EnterprisePoliciesManager]; -this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components); diff --git a/toolkit/components/enterprisepolicies/components.conf b/toolkit/components/enterprisepolicies/components.conf new file mode 100644 index 0000000000000000000000000000000000000000..284bfc5ae5356c03eb2b4367442791591760d626 --- /dev/null +++ b/toolkit/components/enterprisepolicies/components.conf @@ -0,0 +1,14 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +Classes = [ + { + 'cid': '{49e8d8ef-a713-492a-a3d2-5c9dad4ce2e5}', + 'contract_ids': ['@mozilla.org/enterprisepolicies;1'], + 'jsm': 'resource://gre/modules/EnterprisePolicies.jsm', + 'constructor': 'EnterprisePolicies', + }, +] diff --git a/toolkit/components/enterprisepolicies/moz.build b/toolkit/components/enterprisepolicies/moz.build index 8f7d7d8cfed7d1c1499270df0fe75fc96abd0dd6..284089594b2f9f9631765bd7b5517a4ae42e7289 100644 --- a/toolkit/components/enterprisepolicies/moz.build +++ b/toolkit/components/enterprisepolicies/moz.build @@ -18,10 +18,14 @@ TEST_DIRS += [ ] if CONFIG['MOZ_WIDGET_TOOLKIT'] != "android": - EXTRA_COMPONENTS += [ - 'EnterprisePolicies.js', - 'EnterprisePolicies.manifest', - 'EnterprisePoliciesContent.js', + EXTRA_JS_MODULES += [ + 'EnterprisePolicies.jsm', + 'EnterprisePoliciesContent.jsm', + 'EnterprisePoliciesParent.jsm', + ] + + XPCOM_MANIFESTS += [ + 'components.conf', ] if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':