<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8"/> | |
<meta http-equiv="pragma" content="no-cache"/> | |
<meta http-equiv="expires" content="0"/> | |
<script src="resources/print.js"></script> | |
<script> | |
function test() | |
{ | |
if (window.testRunner) { | |
testRunner.dumpAsText(); | |
testRunner.waitUntilDone(); | |
} | |
frame = document.createElement("iframe"); | |
frame.setAttribute("src", "resources/content.xhtml"); | |
frame.addEventListener("load", function(){ | |
setTimeout(step2, 0); | |
}, { once: true }); | |
document.body.appendChild(frame); | |
var link; | |
var head; | |
function step2() { | |
head = frame.contentDocument.getElementsByTagName('head')[0]; | |
link = frame.contentDocument.createElement('link'); | |
link.type = 'text/css'; | |
link.rel = 'stylesheet'; | |
link.addEventListener("beforeload", function() { | |
print("PASS: Beforeload handled.", "green"); | |
link.href = 'fail.css'; | |
setTimeout(step3, 0); | |
}, { once: true }); | |
link.href = 'pass.css'; | |
head.appendChild(link); | |
} | |
function step3() { | |
head.removeChild(link); | |
link = null; | |
print("PASS: No assertions hit.", "green"); | |
if (window.testRunner) | |
testRunner.notifyDone(); | |
} | |
} | |
</script> | |
</head> | |
<body onload="test()"> | |
<p>This test confirms that link elements properly handled changes during 'beforeload' events. It passes if no debug assertions are fired.</p> | |
<div id="console"></div> | |
</body> | |
</html> |