gecko-dev/dom/plugins/test/mochitest/test_bug813906.html

55 строки
1.6 KiB
HTML

<!doctype html>
<html>
<head>
<title>Test for Bug 813906</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<base href="chrome://browser/content/">
</head>
<body>
<script type="application/javascript">
function f() {
document.getElementsByTagName("base")[0].href = "http://www.safe.com/";
}
</script>
<svg>
<symbol id="a">
<foreignObject>
<object bugmode="813906" frame="frame1"></object>
</foreignObject>
</symbol>
<use />
</svg>
<script type="application/javascript">
SimpleTest.waitForExplicitFinish();
// When the document is torn down or <svg> is removed, we hit bug 621618
SimpleTest.expectAssertions(1);
var frameLoadCount = 0;
function frameLoaded() {
frameLoadCount++;
if (frameLoadCount == 1) {
document.getElementsByTagName("object")[0].type = "application/x-test";
document.getElementsByTagName("use")[0].setAttributeNS("http://www.w3.org/1999/xlink", "href", location.href + "#a");
} else if (frameLoadCount == 2) {
isnot(SpecialPowers.wrap(window.frame1).location.href.indexOf('chrome://'),
0, 'plugin shouldnt be able to cause navigation to chrome URLs');
// Make sure we trigger bug 621618 before the test finishes so the assertion
// is attributed to this test.
document.body.removeChild(document.querySelector("svg"));
SimpleTest.executeSoon(function() { SimpleTest.finish(); });
}
}
</script>
<iframe name="frame1" onload="frameLoaded()"></iframe>
</body>
</html>