Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'android'
- Manifest: js/xpconnect/tests/chrome/chrome.toml
<?xml version="1.0"?>
type="text/css"?>
<!--
-->
<!-- test results are displayed in the html:body -->
</body>
<!-- test code goes here -->
<script type="application/javascript"><![CDATA[
// XPCNativeWrapper is not defined globally in ESLint as it may be going away.
/* global XPCNativeWrapper */
function go() {
try { XPCNativeWrapper.unwrap(); } catch (e) {}
try { XPCNativeWrapper.unwrap(0); } catch (e) {}
try { XPCNativeWrapper.unwrap(null); } catch (e) {}
var o = {};
is(o, XPCNativeWrapper.unwrap(o), "unwrap on a random object returns it");
var win = $('ifr').contentWindow;
var utils = window.windowUtils;
is(utils.getClassName(win), "Proxy", "win is a Proxy");
ok("x" in XPCNativeWrapper.unwrap(win), "actually unwrapped");
is(utils.getClassName(XPCNativeWrapper.unwrap(win)), "Proxy",
"unwrap on an Proxy returns the same object");
is(utils.getClassName(XPCNativeWrapper.unwrap(new XPCNativeWrapper(win))), "Proxy",
"unwrap on an explicit NW works too");
ok(utils.getClassName(window) !== "XPCNativeWrapper", "window is not a native wrapper");
ok(utils.getClassName(XPCNativeWrapper.unwrap(new XPCNativeWrapper(window))) !== "XPCSafeJSObjectWrapper",
"unwrapping a chrome object returns the object itself");
SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
]]></script>
<iframe type="content"
onload="go()"
id="ifr">
</iframe>
</window>