Bug 1667455 - Part 8: Stop importing Services.jsm from chrome-priv JS code, other cases. r=kmag,necko-reviewers,dragana

Differential Revision: https://phabricator.services.mozilla.com/D150897
This commit is contained in:
Tooru Fujisawa 2022-07-11 12:41:52 +00:00
Родитель c2a1238034
Коммит 7539547097
10 изменённых файлов: 31 добавлений и 37 удалений

Просмотреть файл

@ -415,7 +415,7 @@ add_task(async function test_file() {
async function resourceUriTest(secureCheck) {
let oldTab = await loadNewTab("about:robots");
await SpecialPowers.pushPrefEnv({ set: [[INSECURE_ICON_PREF, secureCheck]] });
let dataURI = "resource://gre/modules/Services.jsm";
let dataURI = "resource://gre/modules/XPCOMUtils.jsm";
let newTab = await loadNewTab(dataURI);

Просмотреть файл

@ -1,7 +1,7 @@
/* globals ProcessHangMonitor */
const { WebExtensionPolicy } = Cu.getGlobalForObject(
ChromeUtils.import("resource://gre/modules/Services.jsm")
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm")
);
const { UpdateUtils } = ChromeUtils.import(

Просмотреть файл

@ -10,7 +10,7 @@ const { dumpn } = require("devtools/shared/DevToolsUtils");
function createTCPSocket(location, port, options) {
const { TCPSocket } = Cu.getGlobalForObject(
ChromeUtils.import("resource://gre/modules/Services.jsm")
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm")
);
return new TCPSocket(location, port, options);

Просмотреть файл

@ -19,7 +19,6 @@
* notification with the headers, so there are two ways to produce
*/
ChromeUtils.import("resource://gre/modules/Services.jsm");
const { Downloads } = ChromeUtils.import(
"resource://gre/modules/Downloads.jsm"
);

Просмотреть файл

@ -6,7 +6,7 @@ const ConsoleAPIStorage = Cc["@mozilla.org/consoleAPI-storage;1"].getService(
);
const { WebExtensionPolicy } = Cu.getGlobalForObject(
ChromeUtils.import("resource://gre/modules/Services.jsm")
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm")
);
const FAKE_ADDON_ID = "test-webext-addon@mozilla.org";

Просмотреть файл

@ -25,7 +25,7 @@ function assertIsValue(obj, prop, value) {
add_task(async function() {
let temp = {};
ChromeUtils.import("resource://gre/modules/Services.jsm", temp);
ChromeUtils.import("resource://gre/modules/AppConstants.jsm", temp);
let obj = {};
let child = Object.create(obj);
@ -34,45 +34,45 @@ add_task(async function() {
// Test valid import
ChromeUtils.defineModuleGetter(obj, "Services",
"resource://gre/modules/Services.jsm");
ChromeUtils.defineModuleGetter(obj, "AppConstants",
"resource://gre/modules/AppConstants.jsm");
assertIsGetter(obj, "Services");
equal(child.Services, temp.Services, "Getter works on descendent object");
assertIsValue(child, "Services", temp.Services);
assertIsGetter(obj, "Services");
assertIsGetter(obj, "AppConstants");
equal(child.AppConstants, temp.AppConstants, "Getter works on descendent object");
assertIsValue(child, "AppConstants", temp.AppConstants);
assertIsGetter(obj, "AppConstants");
Assert.throws(() => sealed.Services, /Object is not extensible/,
Assert.throws(() => sealed.AppConstants, /Object is not extensible/,
"Cannot access lazy getter from sealed object");
Assert.throws(() => sealed.Services = null, /Object is not extensible/,
Assert.throws(() => sealed.AppConstants = null, /Object is not extensible/,
"Cannot access lazy setter from sealed object");
assertIsGetter(obj, "Services");
assertIsGetter(obj, "AppConstants");
equal(obj.Services, temp.Services, "Getter works on object");
assertIsValue(obj, "Services", temp.Services);
equal(obj.AppConstants, temp.AppConstants, "Getter works on object");
assertIsValue(obj, "AppConstants", temp.AppConstants);
// Test overwriting via setter
child = Object.create(obj);
ChromeUtils.defineModuleGetter(obj, "Services",
"resource://gre/modules/Services.jsm");
ChromeUtils.defineModuleGetter(obj, "AppConstants",
"resource://gre/modules/AppConstants.jsm");
assertIsGetter(obj, "Services");
assertIsGetter(obj, "AppConstants");
child.Services = "foo";
assertIsValue(child, "Services", "foo");
assertIsGetter(obj, "Services");
child.AppConstants = "foo";
assertIsValue(child, "AppConstants", "foo");
assertIsGetter(obj, "AppConstants");
obj.Services = "foo";
assertIsValue(obj, "Services", "foo");
obj.AppConstants = "foo";
assertIsValue(obj, "AppConstants", "foo");
// Test import missing property
ChromeUtils.defineModuleGetter(obj, "meh",
"resource://gre/modules/Services.jsm");
"resource://gre/modules/AppConstants.jsm");
assertIsGetter(obj, "meh");
equal(obj.meh, undefined, "Missing property returns undefined");
assertIsValue(obj, "meh", undefined);

Просмотреть файл

@ -81,9 +81,11 @@ add_task(async function() {
"Browser should be in the right process"
);
let local = resolveURI("resource://gre/modules/Services.jsm");
let remote = await remoteResolveURI("resource://gre/modules/Services.jsm");
is(local, remote, "Services.jsm should resolve in both processes");
let local = resolveURI("resource://gre/modules/AppConstants.jsm");
let remote = await remoteResolveURI(
"resource://gre/modules/AppConstants.jsm"
);
is(local, remote, "AppConstants.jsm should resolve in both processes");
gBrowser.removeCurrentTab();
});

Просмотреть файл

@ -41,9 +41,7 @@ var _XPCSHELL_PROCESS;
// Register the testing-common resource protocol early, to have access to its
// modules.
let { Services: _Services } = ChromeUtils.import(
"resource://gre/modules/Services.jsm"
);
let _Services = Services;
_register_modules_protocol_handler();
let { AppConstants: _AppConstants } = ChromeUtils.import(

Просмотреть файл

@ -1,5 +1,3 @@
ChromeUtils.import("resource://gre/modules/Services.jsm");
add_task(async function() {
info("Starting test");

Просмотреть файл

@ -8,9 +8,6 @@ let { PromptUtils } = ChromeUtils.import(
"resource://gre/modules/SharedPromptUtils.jsm"
);
// We expect our consumer to provide Services.jsm.
/* global Services */
const AdjustableTitle = {
_cssSnippet: `
#titleContainer {