blob: 65764c6f52c98bb16839a22fca4cbf608b47af70 [file] [log] [blame]
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script>
window.jsTestIsAsync = true;
var iteration = 0;
var sheet, rules;
function step1(opt_media)
{
var doc = document.implementation.createHTMLDocument();
var style = doc.createElement('style');
doc.head.appendChild(style);
sheet = style.sheet;
if (opt_media) {
sheet.insertRule('@media screen { body { background: red; } p { color: white; } }', 0);
rules = sheet.rules[0];
sheet.removeRule(0);
sheet = 0;
}
doc.head.removeChild(style);
document.adoptNode(style);
delete doc;
gc();
setTimeout(opt_media ? step2a : step2b, 10);
}
function step2a()
{
try {
rules.insertRule('a { }', 1);
if (iteration++ == 10) {
iteration = 0;
step1(true);
return;
}
setTimeout('step1(false)', 0);
}
catch(e) {
document.body.innerText = 'FAIL, threw exception.';
if (window.testRunner)
testRunner.notifyDone();
}
}
function step2b()
{
try {
sheet.insertRule('a { }', 0);
if (iteration++ == 10) {
document.body.innerText = 'PASS';
if (window.testRunner)
testRunner.notifyDone();
return;
}
setTimeout('step1(true)', 0);
}
catch(e) {
document.body.innerText = 'FAIL, threw exception.';
if (window.testRunner)
testRunner.notifyDone();
}
}
</script>
<script src="../../resources/js-test-post.js"></script>
</head>
<body onload="step1()">
Running...
</body>
</html>