"use strict"; // Wraps the given object in an XPConnect wrapper and, if an interface // is passed, queries the result to that interface. function xpcWrap(obj, iface) { let ifacePointer = Cc[ "@mozilla.org/supports-interface-pointer;1" ].createInstance(Ci.nsISupportsInterfacePointer); ifacePointer.data = obj; if (iface) { return ifacePointer.data.QueryInterface(iface); } return ifacePointer.data; }