blob: b307041f832fa95cb26c97f8e5e8bd747afa5319 [file] [log] [blame]
<!DOCTYPE html>
<html><head>
<title> scheduler: event listener defined by script in a document in history</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="testlib/testlib.js"></script>
</head>
<body>
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
<iframe src="about:blank"></iframe>
<script>
log('inline script #1');
function fireFooEvent(){
var evt=document.createEvent('Event');
evt.initEvent('foo', true, true);
document.dispatchEvent(evt);
}
var doc = frames[0].document;
doc.open('text/html');
doc.write('<script>top.log("IFRAME script");top.document.addEventListener("foo", function(e){ top.log("event: "+e.type); }, false)<\/script>');
log('end script #1');
</script>
<script>
fireFooEvent();
frames[0].location='about:blank'; // returning to about:blank should de-activate document that defined event listener..?
</script>
<script>
fireFooEvent();
</script>
<script type="text/javascript">
log( 'inline script #2' );
var t = async_test()
function test() {
assert_equals(frames[0].location.toString(), "about:blank");
assert_array_equals(eventOrder, ['inline script #1',
'IFRAME script',
'end script #1',
'event: foo',
'inline script #2'
]);
t.done();
}
onload = function() {setTimeout(t.step_func(function() {fireFooEvent(); test()}), 80)};
</script>
</body></html>