diff options
Diffstat (limited to 'js/xpconnect/tests/unit/head.js')
-rw-r--r-- | js/xpconnect/tests/unit/head.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/js/xpconnect/tests/unit/head.js b/js/xpconnect/tests/unit/head.js new file mode 100644 index 0000000000..be3d74401a --- /dev/null +++ b/js/xpconnect/tests/unit/head.js @@ -0,0 +1,32 @@ +"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; +} + +function createContentWindow(uri) { + const principal = Services.scriptSecurityManager + .createContentPrincipalFromOrigin(uri); + const webnav = Services.appShell.createWindowlessBrowser(false); + const docShell = webnav.docShell; + docShell.createAboutBlankDocumentViewer(principal, principal); + return webnav.document.defaultView; +} + +function createChromeWindow() { + const principal = Services.scriptSecurityManager.getSystemPrincipal(); + const webnav = Services.appShell.createWindowlessBrowser(true); + const docShell = webnav.docShell; + docShell.createAboutBlankDocumentViewer(principal, principal); + return webnav.document.defaultView; +} |