Bug 1716642 - Replaced calls to GlobalManager.extensionMap.get() with WebExtensionPolicy.getByID(). r=Standard8,kmag,robwu

Differential Revision: https://phabricator.services.mozilla.com/D118407
This commit is contained in:
Jasleen 2021-06-24 15:06:17 +00:00
parent 319289ab38
commit d32a884ef2
9 changed files with 13 additions and 51 deletions

View File

@ -503,21 +503,16 @@ module.exports = {
"browser/components/enterprisepolicies/tests/xpcshell/test_proxy.js",
"browser/components/enterprisepolicies/tests/xpcshell/test_runOnce_helper.js",
"browser/components/extensions/test/browser/browser_ext_browserAction_context.js",
"browser/components/extensions/test/browser/browser_ext_browserAction_popup.js",
"browser/components/extensions/test/browser/browser_ext_browserAction_popup_preload.js",
"browser/components/extensions/test/browser/browser_ext_currentWindow.js",
"browser/components/extensions/test/browser/browser_ext_getViews.js",
"browser/components/extensions/test/browser/browser_ext_management.js",
"browser/components/extensions/test/browser/browser_ext_menus_events.js",
"browser/components/extensions/test/browser/browser_ext_openPanel.js",
"browser/components/extensions/test/browser/browser_ext_pageAction_context.js",
"browser/components/extensions/test/browser/browser_ext_pageAction_popup.js",
"browser/components/extensions/test/browser/browser_ext_pageAction_show_matches.js",
"browser/components/extensions/test/browser/browser_ext_sessions_getRecentlyClosed_private.js",
"browser/components/extensions/test/browser/browser_ext_sessions_restore.js",
"browser/components/extensions/test/browser/browser_ext_tabs_audio.js",
"browser/components/extensions/test/browser/browser_ext_tabs_duplicate.js",
"browser/components/extensions/test/browser/browser_ext_tabs_newtab_private.js",
"browser/components/extensions/test/browser/browser_ext_tabs_removeCSS.js",
"browser/components/extensions/test/browser/browser_ext_tabs_zoom.js",
"browser/components/extensions/test/browser/browser_ext_windows.js",

View File

@ -2,22 +2,17 @@
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";
const { GlobalManager } = ChromeUtils.import(
"resource://gre/modules/Extension.jsm",
null
);
function getBrowserAction(extension) {
const {
global: { browserActionFor },
} = Management;
let ext = GlobalManager.extensionMap.get(extension.id);
let ext = WebExtensionPolicy.getByID(extension.id)?.extension;
return browserActionFor(ext);
}
async function assertViewCount(extension, count, waitForPromise) {
let ext = GlobalManager.extensionMap.get(extension.id);
let ext = WebExtensionPolicy.getByID(extension.id).extension;
if (waitForPromise) {
await waitForPromise;

View File

@ -36,13 +36,12 @@ add_task(async function testBrowserActionClickCanceled() {
await extension.startup();
const {
GlobalManager,
Management: {
global: { browserActionFor },
},
} = ChromeUtils.import("resource://gre/modules/Extension.jsm", null);
let ext = GlobalManager.extensionMap.get(extension.id);
let ext = WebExtensionPolicy.getByID(extension.id)?.extension;
let browserAction = browserActionFor(ext);
let widget = getBrowserActionWidget(extension).forWindow(window);
@ -182,13 +181,12 @@ add_task(async function testBrowserActionDisabled() {
await promiseAnimationFrame();
const {
GlobalManager,
Management: {
global: { browserActionFor },
},
} = ChromeUtils.import("resource://gre/modules/Extension.jsm", null);
let ext = GlobalManager.extensionMap.get(extension.id);
let ext = WebExtensionPolicy.getByID(extension.id)?.extension;
let browserAction = browserActionFor(ext);
let widget = getBrowserActionWidget(extension).forWindow(window);
@ -349,13 +347,12 @@ add_task(async function testClosePopupDuringPreload() {
await extension.startup();
const {
GlobalManager,
Management: {
global: { browserActionFor },
},
} = ChromeUtils.import("resource://gre/modules/Extension.jsm", null);
let ext = GlobalManager.extensionMap.get(extension.id);
let ext = WebExtensionPolicy.getByID(extension.id)?.extension;
let browserAction = browserActionFor(ext);
let widget = getBrowserActionWidget(extension).forWindow(window);

View File

@ -3,10 +3,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const { GlobalManager } = ChromeUtils.import(
"resource://gre/modules/Extension.jsm",
null
);
const { ExtensionPermissions } = ChromeUtils.import(
"resource://gre/modules/ExtensionPermissions.jsm"
);
@ -19,7 +15,7 @@ const PAGE_HOST_PATTERN = "http://mochi.test/*";
const EXPECT_TARGET_ELEMENT = 13337;
async function grantOptionalPermission(extension, permissions) {
let ext = GlobalManager.extensionMap.get(extension.id);
let ext = WebExtensionPolicy.getByID(extension.id).extension;
return ExtensionPermissions.add(extension.id, permissions, ext);
}

View File

@ -3,11 +3,6 @@
"use strict";
add_task(async function test_openPopup_requires_user_interaction() {
const { GlobalManager } = ChromeUtils.import(
"resource://gre/modules/Extension.jsm",
null
);
async function backgroundScript() {
browser.tabs.onUpdated.addListener(async (tabId, changeInfo, tabInfo) => {
if (changeInfo.status != "complete") {
@ -139,7 +134,7 @@ add_task(async function test_openPopup_requires_user_interaction() {
}
function testActiveTab(extension, expected) {
let ext = GlobalManager.extensionMap.get(extension.id);
let ext = WebExtensionPolicy.getByID(extension.id).extension;
is(
ext.tabManager.hasActiveTabPermission(gBrowser.selectedTab),
expected,

View File

@ -4,13 +4,8 @@
PromiseTestUtils.allowMatchingRejectionsGlobally(/packaging errors/);
const { GlobalManager } = ChromeUtils.import(
"resource://gre/modules/Extension.jsm",
null
);
function assertViewCount(extension, count) {
let ext = GlobalManager.extensionMap.get(extension.id);
let ext = WebExtensionPolicy.getByID(extension.id).extension;
is(
ext.views.size,
count,

View File

@ -1,9 +1,5 @@
"use strict";
const { GlobalManager } = ChromeUtils.import(
"resource://gre/modules/Extension.jsm",
null
);
const { ExtensionPermissions } = ChromeUtils.import(
"resource://gre/modules/ExtensionPermissions.jsm"
);
@ -55,7 +51,7 @@ function verifyPrefSettings(controlled, allowed) {
async function promiseUpdatePrivatePermission(allowed, extension) {
info(`update private allowed permission`);
let ext = GlobalManager.extensionMap.get(extension.id);
let ext = WebExtensionPolicy.getByID(extension.id).extension;
await Promise.all([
promisePrefChange(NEWTAB_PRIVATE_ALLOWED),
ExtensionPermissions[allowed ? "add" : "remove"](

View File

@ -1779,6 +1779,7 @@ class SchemaAPIManager extends EventEmitter {
MatchPatternSet,
Services,
StructuredCloneHolder,
WebExtensionPolicy,
XPCOMUtils,
extensions: this,
global,

View File

@ -23,14 +23,6 @@ XPCOMUtils.defineLazyServiceGetter(
"nsIPromptService"
);
XPCOMUtils.defineLazyGetter(this, "GlobalManager", () => {
const { GlobalManager } = ChromeUtils.import(
"resource://gre/modules/Extension.jsm",
null
);
return GlobalManager;
});
var { ExtensionError } = ExtensionUtils;
const _ = (key, ...args) => {
@ -121,7 +113,7 @@ class AddonListener extends ExtensionCommon.EventEmitter {
}
getExtensionInfo(addon) {
let ext = addon.isWebExtension && GlobalManager.extensionMap.get(addon.id);
let ext = WebExtensionPolicy.getByID(addon.id)?.extension;
return getExtensionInfoForAddon(ext, addon);
}
@ -189,7 +181,7 @@ this.management = class extends ExtensionAPI {
throw new ExtensionError("get not allowed for this addon");
}
// If the extension is enabled get it and use it for more data.
let ext = GlobalManager.extensionMap.get(addon.id);
let ext = WebExtensionPolicy.getByID(addon.id)?.extension;
return getExtensionInfoForAddon(ext, addon);
},
@ -197,7 +189,7 @@ this.management = class extends ExtensionAPI {
let addons = await AddonManager.getAddonsByTypes(allowedTypes);
return addons.filter(checkAllowedAddon).map(addon => {
// If the extension is enabled get it and use it for more data.
let ext = GlobalManager.extensionMap.get(addon.id);
let ext = WebExtensionPolicy.getByID(addon.id)?.extension;
return getExtensionInfoForAddon(ext, addon);
});
},