diff options
Diffstat (limited to 'toolkit/components/addoncompat/defaultShims.js')
-rw-r--r-- | toolkit/components/addoncompat/defaultShims.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/toolkit/components/addoncompat/defaultShims.js b/toolkit/components/addoncompat/defaultShims.js new file mode 100644 index 000000000..a786efed7 --- /dev/null +++ b/toolkit/components/addoncompat/defaultShims.js @@ -0,0 +1,39 @@ +/* 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"; + +const Cu = Components.utils; +const Ci = Components.interfaces; + +Cu.import("resource://gre/modules/XPCOMUtils.jsm"); + +/** + * Using multiprocessShims is optional, and if an add-on is e10s compatible it should not + * use it. But in some cases we still want to use the interposition service for various + * features so we have a default shim service. + */ + +function DefaultInterpositionService() { +} + +DefaultInterpositionService.prototype = { + classID: Components.ID("{50bc93ce-602a-4bef-bf3a-61fc749c4caf}"), + QueryInterface: XPCOMUtils.generateQI([Ci.nsIAddonInterposition, Ci.nsISupportsWeakReference]), + + getWhitelist: function() { + return []; + }, + + interposeProperty: function(addon, target, iid, prop) { + return null; + }, + + interposeCall: function(addonId, originalFunc, originalThis, args) { + args.splice(0, 0, addonId); + return originalFunc.apply(originalThis, args); + }, +}; + +this.NSGetFactory = XPCOMUtils.generateNSGetFactory([DefaultInterpositionService]); |