Bug 1816987 - ESMified browser/components/enterprisepolicies/schemas r=kpatenio

Differential Revision: https://phabricator.services.mozilla.com/D174495
This commit is contained in:
Bilal 2023-04-27 19:23:00 +00:00
parent 58b5467f89
commit 76a6a97929
13 changed files with 33 additions and 32 deletions

View file

@ -37,8 +37,8 @@ browser/components/sessionstore/test/unit/data/sessionstore_valid.js
browser/components/sessionstore/test/unit/data/sessionstore_invalid.js browser/components/sessionstore/test/unit/data/sessionstore_invalid.js
# This file is split into two in order to keep it as a valid json file # This file is split into two in order to keep it as a valid json file
# for documentation purposes (policies.json) but to be accessed by the # for documentation purposes (policies.json) but to be accessed by the
# code as a .jsm (schema.jsm) # code as a .sys.mjs (schema.sys.mjs)
browser/components/enterprisepolicies/schemas/schema.jsm browser/components/enterprisepolicies/schemas/schema.sys.mjs
# generated or library files in pocket # generated or library files in pocket
browser/components/pocket/content/panels/js/tmpl.js browser/components/pocket/content/panels/js/tmpl.js
browser/components/pocket/content/panels/js/vendor.bundle.js browser/components/pocket/content/panels/js/vendor.bundle.js

View file

@ -101,8 +101,8 @@ browser/components/sessionstore/test/unit/data/sessionstore_valid.js
browser/components/sessionstore/test/unit/data/sessionstore_invalid.js browser/components/sessionstore/test/unit/data/sessionstore_invalid.js
# This file is split into two in order to keep it as a valid json file # This file is split into two in order to keep it as a valid json file
# for documentation purposes (policies.json) but to be accessed by the # for documentation purposes (policies.json) but to be accessed by the
# code as a .jsm (schema.jsm) # code as a .sys.mjs (schema.sys.mjs)
browser/components/enterprisepolicies/schemas/schema.jsm browser/components/enterprisepolicies/schemas/schema.sys.mjs
# generated or library files in pocket # generated or library files in pocket
browser/components/pocket/content/panels/js/tmpl.js browser/components/pocket/content/panels/js/tmpl.js
browser/components/pocket/content/panels/js/vendor.bundle.js browser/components/pocket/content/panels/js/vendor.bundle.js

View file

@ -8,8 +8,8 @@ const { XPCOMUtils } = ChromeUtils.importESModule(
"resource://gre/modules/XPCOMUtils.sys.mjs" "resource://gre/modules/XPCOMUtils.sys.mjs"
); );
XPCOMUtils.defineLazyModuleGetters(this, { ChromeUtils.defineESModuleGetters(this, {
schema: "resource:///modules/policies/schema.jsm", schema: "resource:///modules/policies/schema.sys.mjs",
}); });
function col(text, className) { function col(text, className) {

View file

@ -8,5 +8,5 @@ with Files("**"):
BUG_COMPONENT = ("Firefox", "Enterprise Policies") BUG_COMPONENT = ("Firefox", "Enterprise Policies")
EXTRA_PP_JS_MODULES.policies += [ EXTRA_PP_JS_MODULES.policies += [
"schema.jsm", "schema.sys.mjs",
] ]

View file

@ -2,9 +2,15 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file, * 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/. */ * You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict"; const initialSchema =
const EXPORTED_SYMBOLS = ["schema"];
const schema =
#include policies-schema.json #include policies-schema.json
export let schema = initialSchema;
export function modifySchemaForTests(customSchema) {
if (customSchema) {
schema = customSchema;
} else {
schema = initialSchema;
}
}

View file

@ -19,8 +19,8 @@ function checkArrayIsSorted(array, msg) {
} }
add_task(async function test_policies_sorted() { add_task(async function test_policies_sorted() {
let { schema } = ChromeUtils.import( let { schema } = ChromeUtils.importESModule(
"resource:///modules/policies/schema.jsm" "resource:///modules/policies/schema.sys.mjs"
); );
let { Policies } = ChromeUtils.importESModule( let { Policies } = ChromeUtils.importESModule(
"resource:///modules/policies/Policies.sys.mjs" "resource:///modules/policies/Policies.sys.mjs"
@ -37,8 +37,8 @@ add_task(async function test_policies_sorted() {
}); });
add_task(async function check_naming_conventions() { add_task(async function check_naming_conventions() {
let { schema } = ChromeUtils.import( let { schema } = ChromeUtils.importESModule(
"resource:///modules/policies/schema.jsm" "resource:///modules/policies/schema.sys.mjs"
); );
equal( equal(
Object.keys(schema.properties).some(key => key.includes("__")), Object.keys(schema.properties).some(key => key.includes("__")),

View file

@ -103,7 +103,7 @@ this.experiments_urlbar = class extends ExtensionAPI {
value: Preferences.get(pref), value: Preferences.get(pref),
// Nothing actually uses this, but on debug builds there are extra // Nothing actually uses this, but on debug builds there are extra
// checks enabled in Schema.jsm that fail if it's not present. The // checks enabled in Schema.sys.mjs that fail if it's not present. The
// value doesn't matter. // value doesn't matter.
levelOfControl: "controllable_by_this_extension", levelOfControl: "controllable_by_this_extension",
}; };

View file

@ -678,7 +678,7 @@ skip-if = os == "android"
run-sequentially = node server exceptions dont replay well run-sequentially = node server exceptions dont replay well
[test_proxy_pac.js] [test_proxy_pac.js]
[test_trr_enterprise_policy.js] [test_trr_enterprise_policy.js]
firefox-appdir = browser # needed for resource:///modules/policies/schema.jsm to be registered firefox-appdir = browser # needed for resource:///modules/policies/schema.sys.mjs to be registered
skip-if = skip-if =
os == "android" os == "android"
socketprocess_networking socketprocess_networking

View file

@ -170,8 +170,8 @@ EnterprisePoliciesManager.prototype = {
}, },
_activatePolicies(unparsedPolicies) { _activatePolicies(unparsedPolicies) {
let { schema } = ChromeUtils.import( let { schema } = ChromeUtils.importESModule(
"resource:///modules/policies/schema.jsm" "resource:///modules/policies/schema.sys.mjs"
); );
for (let policyName of Object.keys(unparsedPolicies)) { for (let policyName of Object.keys(unparsedPolicies)) {

View file

@ -41,8 +41,8 @@ export var macOSPoliciesParser = {
}, },
removeUnknownPolicies(policies) { removeUnknownPolicies(policies) {
let { schema } = ChromeUtils.import( let { schema } = ChromeUtils.importESModule(
"resource:///modules/policies/schema.jsm" "resource:///modules/policies/schema.sys.mjs"
); );
for (let policyName of Object.keys(policies)) { for (let policyName of Object.keys(policies)) {

View file

@ -9,6 +9,7 @@ import { Assert } from "resource://testing-common/Assert.sys.mjs";
const lazy = {}; const lazy = {};
ChromeUtils.defineESModuleGetters(lazy, { ChromeUtils.defineESModuleGetters(lazy, {
FileTestUtils: "resource://testing-common/FileTestUtils.sys.mjs", FileTestUtils: "resource://testing-common/FileTestUtils.sys.mjs",
modifySchemaForTests: "resource:///modules/policies/schema.sys.mjs",
}); });
export var EnterprisePolicyTesting = { export var EnterprisePolicyTesting = {
@ -41,15 +42,8 @@ export var EnterprisePolicyTesting = {
}, "EnterprisePolicies:AllPoliciesApplied"); }, "EnterprisePolicies:AllPoliciesApplied");
}); });
// Clear any previously used custom schema // Clear any previously used custom schema or assign a new one
Cu.unload("resource:///modules/policies/schema.jsm"); lazy.modifySchemaForTests(customSchema || null);
if (customSchema) {
let schemaModule = ChromeUtils.import(
"resource:///modules/policies/schema.jsm"
);
schemaModule.schema = customSchema;
}
Services.obs.notifyObservers(null, "EnterprisePolicies:Restart"); Services.obs.notifyObservers(null, "EnterprisePolicies:Restart");
return promise; return promise;

View file

@ -1,4 +1,5 @@
[DEFAULT] [DEFAULT]
firefox-appdir = browser
head = head.js head = head.js
skip-if = toolkit == 'android' skip-if = toolkit == 'android'

View file

@ -120,7 +120,7 @@ excluded_from_imports_prefix = list(
# Files has macro. # Files has macro.
"browser/app/profile/firefox.js", "browser/app/profile/firefox.js",
"browser/branding/official/pref/firefox-branding.js", "browser/branding/official/pref/firefox-branding.js",
"browser/components/enterprisepolicies/schemas/schema.jsm", "browser/components/enterprisepolicies/schemas/schema.sys.mjs",
"browser/locales/en-US/firefox-l10n.js", "browser/locales/en-US/firefox-l10n.js",
"mobile/android/app/geckoview-prefs.js", "mobile/android/app/geckoview-prefs.js",
"mobile/android/app/mobile.js", "mobile/android/app/mobile.js",