gecko/js/xpconnect/tests/chrome/bug503926.xul
Bobby Holley 926369bebb Bug 1062631 - Fix up content QI security check and tests. r=bz
This stuff is broken in a bunch of ways. The test isn't doing the right thing
because it's using SpecialPowers. When we pass the content object to
xpconnectArgument(), it gets wrapped in a SpecialPowers wrapper, so the check
succeeds, only to fail down the line when the QI method is actually invoked
with an IID (which we can't pass to content scopes anyway).

This whole security check is probably useless given the above, but let's be
safe, make it a bit more robust, and fix up the test while we're at it.
2014-09-08 13:36:21 -07:00

31 lines
1.2 KiB
XML

<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=503926
-->
<window title="Mozilla Bug 503926"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<!-- test results are displayed in the html:body -->
<body xmlns="http://www.w3.org/1999/xhtml">
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=503926"
target="_blank">Mozilla Bug 503926</a>
</body>
<!-- test code goes here -->
<script type="application/javascript">
<![CDATA[
var gWindowUtils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
getInterface(Components.interfaces.nsIDOMWindowUtils);
var passed = false;
var obj = { QueryInterface: function() { passed = true; } }
gWindowUtils.xpconnectArgument(obj);
var isDialog = location.hash != '#iframe';
var outer = XPCNativeWrapper.unwrap(isDialog ? opener : parent);
outer.ok(passed, "chrome/chrome test passed: " + (isDialog ? "dialog" : "iframe"));
if (isDialog)
close();
]]>
</script>
</window>