Bug 1821308 - Part 2: Convert ctypes.jsm consumers to use ESM. r=Standard8,geckoview-reviewers,application-update-reviewers,credential-management-reviewers,sgalich,bytesized,m_kato

Differential Revision: https://phabricator.services.mozilla.com/D173811
This commit is contained in:
Tooru Fujisawa 2023-04-11 01:25:15 +00:00
parent a4bd382423
commit 611bc49dcf
38 changed files with 107 additions and 67 deletions

View File

@ -4,8 +4,11 @@
"use strict";
ChromeUtils.defineESModuleGetters(this, {
ctypes: "resource://gre/modules/ctypes.sys.mjs",
});
XPCOMUtils.defineLazyModuleGetters(this, {
ctypes: "resource://gre/modules/ctypes.jsm",
NativeManifests: "resource://gre/modules/NativeManifests.jsm",
});

View File

@ -2,10 +2,7 @@
ChromeUtils.defineESModuleGetters(this, {
MockRegistry: "resource://testing-common/MockRegistry.sys.mjs",
});
XPCOMUtils.defineLazyModuleGetters(this, {
ctypes: "resource://gre/modules/ctypes.jsm",
ctypes: "resource://gre/modules/ctypes.sys.mjs",
});
do_get_profile();

View File

@ -2,7 +2,7 @@
* 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 { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
import { ctypes } from "resource://gre/modules/ctypes.sys.mjs";
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
const lazy = {};

View File

@ -13,13 +13,9 @@ import { MSMigrationUtils } from "resource:///modules/MSMigrationUtils.sys.mjs";
const lazy = {};
ChromeUtils.defineModuleGetter(
lazy,
"ctypes",
"resource://gre/modules/ctypes.jsm"
);
ChromeUtils.defineESModuleGetters(lazy, {
PlacesUtils: "resource://gre/modules/PlacesUtils.sys.mjs",
ctypes: "resource://gre/modules/ctypes.sys.mjs",
});
ChromeUtils.defineModuleGetter(
lazy,

View File

@ -3,7 +3,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */
import { AppConstants } from "resource://gre/modules/AppConstants.sys.mjs";
import { ctypes } from "resource://gre/modules/ctypes.sys.mjs";
import { MigrationUtils } from "resource:///modules/MigrationUtils.sys.mjs";
const lazy = {};
@ -12,7 +12,6 @@ ChromeUtils.defineESModuleGetters(lazy, {
PlacesUtils: "resource://gre/modules/PlacesUtils.sys.mjs",
WindowsRegistry: "resource://gre/modules/WindowsRegistry.sys.mjs",
});
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const EDGE_FAVORITES = "AC\\MicrosoftEdge\\User\\Default\\Favorites";
const FREE_CLOSE_FAILED = 0;

View File

@ -1,6 +1,8 @@
"use strict";
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
const {
ESE,
KERNEL,

View File

@ -37,7 +37,9 @@
*/
const EXPORTED_SYMBOLS = ["AndroidLog"];
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
// From <https://android.googlesource.com/platform/system/core/+/master/include/android/log.h>.
const ANDROID_LOG_VERBOSE = 2;

View File

@ -7,7 +7,9 @@
const { AppConstants } = ChromeUtils.importESModule(
"resource://gre/modules/AppConstants.sys.mjs"
);
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
const { FileUtils } = ChromeUtils.importESModule(
"resource://gre/modules/FileUtils.sys.mjs"
);

View File

@ -28,7 +28,9 @@ Services.scriptloader.loadSubScript(
// Calls the native execv library function. Include imports so this can be
// safely serialized and run remotely by ContentTask.spawn.
function callExec(args) {
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
let { lib, cmd } = args;
let libc = ctypes.open(lib);
let exec = libc.declare(
@ -44,7 +46,9 @@ function callExec(args) {
// Calls the native fork syscall.
function callFork(args) {
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
let { lib } = args;
let libc = ctypes.open(lib);
let fork = libc.declare("fork", ctypes.default_abi, ctypes.int);
@ -55,7 +59,9 @@ function callFork(args) {
// Calls the native sysctl syscall.
function callSysctl(args) {
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
let { lib, name } = args;
let libc = ctypes.open(lib);
let sysctlbyname = libc.declare(
@ -74,7 +80,9 @@ function callSysctl(args) {
}
function callPrctl(args) {
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
let { lib, option } = args;
let libc = ctypes.open(lib);
let prctl = libc.declare(
@ -97,7 +105,9 @@ function callPrctl(args) {
// Calls the native open/close syscalls.
function callOpen(args) {
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
let { lib, path, flags } = args;
let libc = ctypes.open(lib);
let open = libc.declare(
@ -116,7 +126,9 @@ function callOpen(args) {
// Verify faccessat2
function callFaccessat2(args) {
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
let { lib, dirfd, path, mode, flag } = args;
let libc = ctypes.open(lib);
let faccessat = libc.declare(
@ -185,7 +197,9 @@ function computeKernelVersion(major, minor, dot) {
}
function getGlibcVersion() {
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
let libc = ctypes.open(getOSLib());
let gnu_get_libc_version = libc.declare(
"gnu_get_libc_version",

View File

@ -87,7 +87,9 @@ function createFile(path) {
// created, otherwise false. Include imports so this can be safely serialized
// and run remotely by ContentTask.spawn.
function createSymlink(path) {
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
try {
const libc = ctypes.open(

View File

@ -52,7 +52,7 @@ add_task(async function test_key_memoization() {
// Just verify that it gets populated with the correct bytes.
add_task(async function test_makeUint8Array() {
ChromeUtils.import("resource://gre/modules/ctypes.jsm");
ChromeUtils.importESModule("resource://gre/modules/ctypes.sys.mjs");
let item1 = cryptoSvc.makeUint8Array("abcdefghi", false);
Assert.ok(item1);

View File

@ -214,8 +214,8 @@ export class BrowserTestUtilsChild extends JSWindowActorChild {
// should happen immediately
// upon loading this frame script.
const { ctypes } = ChromeUtils.import(
"resource://gre/modules/ctypes.jsm"
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
let dies = function() {

View File

@ -3,7 +3,9 @@
try {
// We might be running without privileges, in which case it's up to the
// harness to give us the 'ctypes' object.
var { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
var { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
} catch (e) {}
function open_ctypes_test_lib() {

View File

@ -7,7 +7,9 @@ function run_test() {
// Relaunch the test with exotic loading of ctypes.jsm
Cu.unload("resource://gre/modules/ctypes.jsm");
let scope = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
let scope = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
ctypes = scope.ctypes;
main_test();
}

View File

@ -1,7 +1,9 @@
try {
// We might be running without privileges, in which case it's up to the
// harness to give us the 'ctypes' object.
var { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
var { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
} catch (e) {}
var acquire,

View File

@ -1,7 +1,9 @@
try {
// We might be running without privileges, in which case it's up to the
// harness to give us the 'ctypes' object.
var { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
var { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
} catch (e) {}
var acquire, dispose, null_dispose, compare, dispose_64;

View File

@ -12,7 +12,9 @@ if (typeof Components != "undefined") {
var { Primitives } = ChromeUtils.import(
"resource://gre/modules/lz4_internal.js"
);
var { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
var { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
this.EXPORTED_SYMBOLS = ["Lz4"];
this.exports = {};

View File

@ -87,7 +87,9 @@ if (typeof Components != "undefined") {
// On the main thread, OS.Constants is defined by a xpcom
// component. On other threads, it is available automatically
/* global OS */
var { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
var { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
Cc["@mozilla.org/net/osfileconstantsservice;1"]
.getService(Ci.nsIOSFileConstantsService)
.init();

View File

@ -24,7 +24,9 @@
var SharedAll;
if (typeof Components != "undefined") {
// Module is opened as a jsm module
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
// eslint-disable-next-line mozilla/reject-global-this
this.ctypes = ctypes;

View File

@ -24,7 +24,9 @@
var SharedAll;
if (typeof Components != "undefined") {
// Module is opened as a jsm module
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
// eslint-disable-next-line mozilla/reject-global-this
this.ctypes = ctypes;

View File

@ -3,7 +3,9 @@
"use strict";
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
const { OS } = ChromeUtils.import("resource://gre/modules/osfile.jsm");
/**

View File

@ -7,7 +7,9 @@
const { AppConstants } = ChromeUtils.importESModule(
"resource://gre/modules/AppConstants.sys.mjs"
);
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
const { makeFakeAppDir } = ChromeUtils.importESModule(
"resource://testing-common/AppData.sys.mjs"
);

View File

@ -6,7 +6,9 @@
const EXPORTED_SYMBOLS = ["OSCrypto"];
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
const FLAGS_NOT_SET = 0;

View File

@ -119,7 +119,9 @@ var processInfo = {
},
getCounters_Windows() {
if (!this._initialized) {
var { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
var { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
this._IO_COUNTERS = new ctypes.StructType("IO_COUNTERS", [
{ readOps: ctypes.unsigned_long_long },
{ writeOps: ctypes.unsigned_long_long },

View File

@ -6,7 +6,9 @@
const { Preferences } = ChromeUtils.importESModule(
"resource://gre/modules/Preferences.sys.mjs"
);
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
const { OS } = ChromeUtils.import("resource://gre/modules/osfile.jsm");
const MAX_NAME_LENGTH = 64;

View File

@ -6,7 +6,9 @@
const { Preferences } = ChromeUtils.importESModule(
"resource://gre/modules/Preferences.sys.mjs"
);
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
const { setTimeout } = ChromeUtils.importESModule(
"resource://gre/modules/Timer.sys.mjs"
);

View File

@ -3,8 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import { AppConstants } from "resource://gre/modules/AppConstants.sys.mjs";
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
import { ctypes } from "resource://gre/modules/ctypes.sys.mjs";
const BYTE = ctypes.uint8_t;
const WORD = ctypes.uint16_t;

View File

@ -84,8 +84,8 @@ add_task(async function test_crash_in_previous_frameloader() {
// The name of the game is to cause a crash in a remote browser,
// and then immediately swap out the browser for a non-remote one.
await SpecialPowers.spawn(browser, [], function() {
const { ctypes } = ChromeUtils.import(
"resource://gre/modules/ctypes.jsm"
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
let dies = function() {

View File

@ -43,7 +43,8 @@ export var CrashTestUtils = {
};
// Grab APIs from the testcrasher shared library
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
import { ctypes } from "resource://gre/modules/ctypes.sys.mjs";
var dir = Services.dirsvc.get("CurWorkD", Ci.nsIFile);
var file = dir.clone();
file = file.parent;

View File

@ -8,8 +8,8 @@ add_task(async function run_test() {
await do_crash(
function() {
const { ctypes } = ChromeUtils.import(
"resource://gre/modules/ctypes.jsm"
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
// Load and unload a DLL so that it will show up as unloaded in the minidump
let lib = ctypes.open("wininet");

View File

@ -55,11 +55,9 @@
const lazy = {};
ChromeUtils.defineModuleGetter(
lazy,
"ctypes",
"resource://gre/modules/ctypes.jsm"
);
ChromeUtils.defineESModuleGetters(lazy, {
ctypes: "resource://gre/modules/ctypes.sys.mjs",
});
export var PropertyListUtils = Object.freeze({
/**

View File

@ -12,10 +12,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
WindowsRegistry: "resource://gre/modules/WindowsRegistry.sys.mjs",
WindowsVersionInfo:
"resource://gre/modules/components-utils/WindowsVersionInfo.sys.mjs",
});
XPCOMUtils.defineLazyModuleGetters(lazy, {
ctypes: "resource://gre/modules/ctypes.jsm",
ctypes: "resource://gre/modules/ctypes.sys.mjs",
});
const PER_INSTALLATION_PREFS_PLATFORMS = ["win"];

View File

@ -9,7 +9,7 @@ import {
PromiseWorker,
} from "resource://gre/modules/subprocess/subprocess_common.sys.mjs";
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
import { ctypes } from "resource://gre/modules/ctypes.sys.mjs";
var obj = { ctypes };
Services.scriptloader.loadSubScript(

View File

@ -10,7 +10,7 @@ import {
PromiseWorker,
} from "resource://gre/modules/subprocess/subprocess_common.sys.mjs";
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
import { ctypes } from "resource://gre/modules/ctypes.sys.mjs";
var obj = { ctypes };
Services.scriptloader.loadSubScript(

View File

@ -454,7 +454,9 @@ if (AppConstants.isPlatformAndVersionAtLeast("win", "6")) {
let { libc, win32 } = ChromeUtils.importESModule(
"resource://gre/modules/subprocess/subprocess_win.sys.mjs"
);
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
let secAttr = new win32.SECURITY_ATTRIBUTES();
secAttr.nLength = win32.SECURITY_ATTRIBUTES.size;

View File

@ -12,7 +12,9 @@ const { AppConstants } = ChromeUtils.importESModule(
const { getAppInfo, updateAppInfo } = ChromeUtils.importESModule(
"resource://testing-common/AppInfo.sys.mjs"
);
const { ctypes } = ChromeUtils.import("resource://gre/modules/ctypes.jsm");
const { ctypes } = ChromeUtils.importESModule(
"resource://gre/modules/ctypes.sys.mjs"
);
ChromeUtils.defineESModuleGetters(this, {
WindowsRegistry: "resource://gre/modules/WindowsRegistry.sys.mjs",

View File

@ -24,12 +24,12 @@ ChromeUtils.defineESModuleGetters(lazy, {
DeferredTask: "resource://gre/modules/DeferredTask.sys.mjs",
UpdateUtils: "resource://gre/modules/UpdateUtils.sys.mjs",
WindowsRegistry: "resource://gre/modules/WindowsRegistry.sys.mjs",
ctypes: "resource://gre/modules/ctypes.sys.mjs",
setTimeout: "resource://gre/modules/Timer.sys.mjs",
});
XPCOMUtils.defineLazyModuleGetters(lazy, {
AddonManager: "resource://gre/modules/AddonManager.jsm",
ctypes: "resource://gre/modules/ctypes.jsm",
});
XPCOMUtils.defineLazyServiceGetter(

View File

@ -15,13 +15,9 @@ const { XPCOMUtils } = ChromeUtils.importESModule(
"resource://gre/modules/XPCOMUtils.sys.mjs"
);
ChromeUtils.defineModuleGetter(
this,
"ctypes",
"resource://gre/modules/ctypes.jsm"
);
ChromeUtils.defineESModuleGetters(this, {
UpdateUtils: "resource://gre/modules/UpdateUtils.sys.mjs",
ctypes: "resource://gre/modules/ctypes.sys.mjs",
});
const PREF_APP_UPDATE_AUTO = "app.update.auto";