mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-30 05:35:31 +00:00
f06e741959
XPConnect generally throws when trying to create instances of non-DOM objects in content. Due to some bugs this has historically worked in certain cases, but we're fixing those now. So we need to fix the tests that do this sort of thing.
68 lines
1.9 KiB
HTML
68 lines
1.9 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=353334
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 353334</title>
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
<script>var x = "PASS"</script>
|
|
</head>
|
|
<body>
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=353334">Mozilla Bug 353334</a>
|
|
<p id="display">
|
|
<iframe id="one"></iframe>
|
|
<object id="two" data="about:blank"></object>
|
|
<iframe id="three" src="data:text/html,<body>test</body>"></iframe>
|
|
<object id="four" data="data:text/html,<body>test</body>"></object>
|
|
<iframe id="five" src="javascript:parent.x"></iframe>
|
|
<object id="six" data="javascript:x"></object>
|
|
</p>
|
|
<div id="content" style="display: none">
|
|
|
|
</div>
|
|
<pre id="test">
|
|
<script class="testbody" type="text/javascript">
|
|
|
|
/** Test for Bug 353334 **/
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
function doPrincipalTest(id) {
|
|
var doc = SpecialPowers.wrap($(id).contentDocument);
|
|
|
|
isnot(doc.nodePrincipal, undefined, "Should have a principal");
|
|
isnot(doc.nodePrincipal, null, "Should have a non-null principal");
|
|
is(doc.nodePrincipal.origin, SpecialPowers.wrap(document).nodePrincipal.origin,
|
|
"Wrong principal for document in node with id='" + id + "'");
|
|
}
|
|
|
|
function doContentTest(id) {
|
|
is($(id).contentDocument.documentElement.textContent, "PASS",
|
|
"Script executed in wrong context in node with id='" + id + "'");
|
|
}
|
|
|
|
function checkPrincipal() {
|
|
ok(SpecialPowers.call_Instanceof(SpecialPowers.wrap(document).nodePrincipal, SpecialPowers.Ci.nsIPrincipal),
|
|
"Should be a principal");
|
|
}
|
|
|
|
addLoadEvent(function() {
|
|
checkPrincipal();
|
|
|
|
for (var i of [ "one", "two", "three", "four" ]) {
|
|
doPrincipalTest(i);
|
|
}
|
|
|
|
for (i of [ "five", "six" ]) {
|
|
doContentTest(i);
|
|
}
|
|
|
|
SimpleTest.finish();
|
|
});
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|
|
|