diff options
Diffstat (limited to 'toolkit/components/webextensions/ExtensionAPI.jsm')
-rw-r--r-- | toolkit/components/webextensions/ExtensionAPI.jsm | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/toolkit/components/webextensions/ExtensionAPI.jsm b/toolkit/components/webextensions/ExtensionAPI.jsm deleted file mode 100644 index 54dab8e3b..000000000 --- a/toolkit/components/webextensions/ExtensionAPI.jsm +++ /dev/null @@ -1,81 +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"; - -this.EXPORTED_SYMBOLS = ["ExtensionAPI", "ExtensionAPIs"]; - -/* exported ExtensionAPIs */ - -const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components; - -Cu.import("resource://gre/modules/ExtensionManagement.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, "EventEmitter", - "resource://devtools/shared/event-emitter.js"); -XPCOMUtils.defineLazyModuleGetter(this, "Schemas", - "resource://gre/modules/Schemas.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "Task", - "resource://gre/modules/Task.jsm"); - -const global = this; - -class ExtensionAPI { - constructor(extension) { - this.extension = extension; - } - - destroy() { - } - - getAPI(context) { - throw new Error("Not Implemented"); - } -} - -var ExtensionAPIs = { - apis: ExtensionManagement.APIs.apis, - - load(apiName) { - let api = this.apis.get(apiName); - - if (api.loadPromise) { - return api.loadPromise; - } - - let {script, schema} = api; - - let addonId = `${apiName}@experiments.addons.mozilla.org`; - api.sandbox = Cu.Sandbox(global, { - wantXrays: false, - sandboxName: script, - addonId, - metadata: {addonID: addonId}, - }); - - api.sandbox.ExtensionAPI = ExtensionAPI; - - Services.scriptloader.loadSubScript(script, api.sandbox, "UTF-8"); - - api.loadPromise = Schemas.load(schema).then(() => { - return Cu.evalInSandbox("API", api.sandbox); - }); - - return api.loadPromise; - }, - - unload(apiName) { - let api = this.apis.get(apiName); - - let {schema} = api; - - Schemas.unload(schema); - Cu.nukeSandbox(api.sandbox); - - api.sandbox = null; - api.loadPromise = null; - }, -}; |