Bug 1368152: Part 4 - Remove ExtensionManagement.jsm. r?aswan
MozReview-Commit-ID: Apbi1QYeb2x
--- a/browser/components/extensions/ext-contextMenus.js
+++ b/browser/components/extensions/ext-contextMenus.js
@@ -1,13 +1,12 @@
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";
-Cu.import("resource://gre/modules/ExtensionManagement.jsm");
Cu.import("resource://gre/modules/MatchPattern.jsm");
Cu.import("resource://gre/modules/Services.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
"resource://gre/modules/NetUtil.jsm");
var {
ExtensionError,
--- a/browser/components/extensions/test/browser/browser_ext_tabs_executeScript.js
+++ b/browser/components/extensions/test/browser/browser_ext_tabs_executeScript.js
@@ -1,14 +1,16 @@
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";
+XPCOMUtils.defineLazyPreferenceGetter(this, "useRemoteWebExtensions",
+ "extensions.webextensions.remote", false);
+
add_task(async function testExecuteScript() {
- let {ExtensionManagement} = Cu.import("resource://gre/modules/ExtensionManagement.jsm", {});
let {MessageChannel} = Cu.import("resource://gre/modules/MessageChannel.jsm", {});
function countMM(messageManagerMap) {
let count = 0;
// List of permanent message managers in the main process. We should not
// count them in the test because MessageChannel unsubscribes when the
// message manager closes, which never happens to these, of course.
let globalMMs = [
@@ -252,13 +254,13 @@ add_task(async function testExecuteScrip
await extension.unload();
await BrowserTestUtils.removeTab(tab);
// Make sure that we're not holding on to references to closed message
// managers.
is(countMM(MessageChannel.messageManagers), messageManagersSize, "Message manager count");
- if (!ExtensionManagement.useRemoteWebExtensions) {
+ if (!useRemoteWebExtensions) {
is(countMM(MessageChannel.responseManagers), responseManagersSize, "Response manager count");
}
is(MessageChannel.pendingResponses.size, 0, "Pending response count");
});
--- a/browser/components/extensions/test/browser/browser_ext_webNavigation_frameId0.js
+++ b/browser/components/extensions/test/browser/browser_ext_webNavigation_frameId0.js
@@ -1,26 +1,13 @@
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";
add_task(async function webNavigation_getFrameId_of_existing_main_frame() {
- // Whether the frame ID in the extension API is 0 is determined by a map that
- // is maintained by |Frames| in ExtensionManagement.jsm. This map is filled
- // using data from content processes. But if ExtensionManagement.jsm is not
- // imported, then the "Extension:TopWindowID" message gets lost.
- // As a result, if the state is not synchronized again, the webNavigation API
- // will mistakenly report a non-zero frame ID for top-level frames.
- //
- // If you want to be absolutely sure that the frame ID is correct, don't open
- // tabs before starting an extension, or explicitly load the module in the
- // main process:
- // Cu.import("resource://gre/modules/ExtensionManagement.jsm", {});
- //
- // Or simply run the test again.
const BASE = "http://mochi.test:8888/browser/browser/components/extensions/test/browser/";
const DUMMY_URL = BASE + "file_dummy.html";
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, DUMMY_URL, true);
async function background(DUMMY_URL) {
let tabs = await browser.tabs.query({active: true, currentWindow: true});
let frames = await browser.webNavigation.getAllFrames({tabId: tabs[0].id});
browser.test.assertEq(1, frames.length, "The dummy page has one frame");
--- a/browser/components/extensions/test/xpcshell/head.js
+++ b/browser/components/extensions/test/xpcshell/head.js
@@ -7,18 +7,16 @@ const {classes: Cc, interfaces: Ci, util
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "AppConstants",
"resource://gre/modules/AppConstants.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Extension",
"resource://gre/modules/Extension.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "ExtensionData",
"resource://gre/modules/Extension.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "ExtensionManagement",
- "resource://gre/modules/ExtensionManagement.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "ExtensionTestUtils",
"resource://testing-common/ExtensionXPCShellUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
"resource://gre/modules/FileUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "HttpServer",
"resource://testing-common/httpd.js");
XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
"resource://gre/modules/NetUtil.jsm");
deleted file mode 100644
--- a/toolkit/components/extensions/ExtensionManagement.jsm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 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/. */
-
-"use strict";
-
-/* exported ExtensionManagement */
-
-this.EXPORTED_SYMBOLS = ["ExtensionManagement"];
-
-const Ci = Components.interfaces;
-const Cc = Components.classes;
-const Cu = Components.utils;
-const Cr = Components.results;
-
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-
-/*
- * This file should be kept short and simple since it's loaded even
- * when no extensions are running.
- */
-
-let cacheInvalidated = 0;
-function onCacheInvalidate() {
- cacheInvalidated++;
-}
-Services.obs.addObserver(onCacheInvalidate, "startupcache-invalidate");
-
-var ExtensionManagement = {
- get cacheInvalidated() {
- return cacheInvalidated;
- },
-
- get isExtensionProcess() {
- return WebExtensionPolicy.isExtensionProcess;
- },
-};
--- a/toolkit/components/extensions/ExtensionUtils.jsm
+++ b/toolkit/components/extensions/ExtensionUtils.jsm
@@ -17,18 +17,16 @@ Cu.import("resource://gre/modules/Servic
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "AddonManager",
"resource://gre/modules/AddonManager.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "AppConstants",
"resource://gre/modules/AppConstants.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "ConsoleAPI",
"resource://gre/modules/Console.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "ExtensionManagement",
- "resource://gre/modules/ExtensionManagement.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "IndexedDB",
"resource://gre/modules/IndexedDB.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "MessageChannel",
"resource://gre/modules/MessageChannel.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Preferences",
"resource://gre/modules/Preferences.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Schemas",
"resource://gre/modules/Schemas.jsm");
@@ -57,18 +55,16 @@ let StartupCache = {
DB_NAME: "ExtensionStartupCache",
SCHEMA_VERSION: 2,
STORE_NAMES: Object.freeze(["locales", "manifests", "schemas"]),
dbPromise: null,
- cacheInvalidated: 0,
-
initDB(db) {
for (let name of StartupCache.STORE_NAMES) {
try {
db.deleteObjectStore(name);
} catch (e) {
// Don't worry if the store doesn't already exist.
}
db.createObjectStore(name, {keyPath: "key"});
@@ -89,34 +85,28 @@ let StartupCache = {
async reallyOpen(invalidate = false) {
if (this.dbPromise) {
let db = await this.dbPromise;
db.close();
}
if (invalidate) {
- this.cacheInvalidated = ExtensionManagement.cacheInvalidated;
-
if (Services.appinfo.processType === Services.appinfo.PROCESS_TYPE_DEFAULT) {
IndexedDB.deleteDatabase(this.DB_NAME, {storage: "persistent"});
}
}
return IndexedDB.open(this.DB_NAME,
{storage: "persistent", version: this.SCHEMA_VERSION},
db => this.initDB(db));
},
async open() {
- if (ExtensionManagement.cacheInvalidated > this.cacheInvalidated) {
- this.dbPromise = this.reallyOpen(true);
- } else if (!this.dbPromise) {
- this.dbPromise = this.reallyOpen();
- }
+ this.dbPromise = this.reallyOpen();
return this.dbPromise;
},
observe(subject, topic, data) {
if (topic === "startupcache-invalidate") {
this.dbPromise = this.reallyOpen(true).catch(e => {});
}
--- a/toolkit/components/extensions/ext-runtime.js
+++ b/toolkit/components/extensions/ext-runtime.js
@@ -1,18 +1,16 @@
"use strict";
XPCOMUtils.defineLazyModuleGetter(this, "AddonManager",
"resource://gre/modules/AddonManager.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "AddonManagerPrivate",
"resource://gre/modules/AddonManager.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Extension",
"resource://gre/modules/Extension.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "ExtensionManagement",
- "resource://gre/modules/ExtensionManagement.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
"resource://gre/modules/NetUtil.jsm");
this.runtime = class extends ExtensionAPI {
getAPI(context) {
let {extension} = context;
return {
runtime: {
--- a/toolkit/components/extensions/ext-webRequest.js
+++ b/toolkit/components/extensions/ext-webRequest.js
@@ -1,12 +1,10 @@
"use strict";
-XPCOMUtils.defineLazyModuleGetter(this, "ExtensionManagement",
- "resource://gre/modules/ExtensionManagement.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "WebRequest",
"resource://gre/modules/WebRequest.jsm");
// EventManager-like class specifically for WebRequest. Inherits from
// SingletonEventManager. Takes care of converting |details| parameter
// when invoking listeners.
function WebRequestEventManager(context, eventName) {
let name = `webRequest.${eventName}`;
--- a/toolkit/components/extensions/moz.build
+++ b/toolkit/components/extensions/moz.build
@@ -8,17 +8,16 @@ with Files('**'):
BUG_COMPONENT = ('Toolkit', 'WebExtensions: General')
EXTRA_JS_MODULES += [
'Extension.jsm',
'ExtensionAPI.jsm',
'ExtensionChild.jsm',
'ExtensionCommon.jsm',
'ExtensionContent.jsm',
- 'ExtensionManagement.jsm',
'ExtensionPageChild.jsm',
'ExtensionParent.jsm',
'ExtensionPermissions.jsm',
'ExtensionPreferencesManager.jsm',
'ExtensionSettingsStore.jsm',
'ExtensionStorage.jsm',
'ExtensionStorageSync.jsm',
'ExtensionTabs.jsm',
--- a/toolkit/components/extensions/test/xpcshell/head.js
+++ b/toolkit/components/extensions/test/xpcshell/head.js
@@ -10,18 +10,16 @@ Components.utils.import("resource://gre/
Components.utils.import("resource://testing-common/AddonTestUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "ContentTask",
"resource://testing-common/ContentTask.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Extension",
"resource://gre/modules/Extension.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "ExtensionData",
"resource://gre/modules/Extension.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "ExtensionManagement",
- "resource://gre/modules/ExtensionManagement.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "ExtensionTestUtils",
"resource://testing-common/ExtensionXPCShellUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
"resource://gre/modules/FileUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "HttpServer",
"resource://testing-common/httpd.js");
XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
"resource://gre/modules/NetUtil.jsm");