blob: acd6c8cbc784cccae79a86d09c015946e1de07c9 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<div>Test passes if it does not crash.</div>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function reloadUntil(max) {
var index = window.location.href.indexOf("?");
if (index == -1) {
window.location.href = window.location.href + "?1";
} else {
var num = parseInt(window.location.href.substring(index + 1));
if (num == max) {
if (window.testRunner)
testRunner.notifyDone();
} else {
window.location.href = window.location.href.substring(0, index + 1) + (num + 1);
}
}
}
function init() {
var shadowHost = document.createElement("SHADOWHOST");
var shadowRoot = shadowHost.createShadowRoot();
var child = document.createElement("CHILD");
shadowRoot.appendChild(child);
child.style.zoom = 34;
var styleAttr = child.attributes[0];
child.removeAttribute("style");
shadowHost.appendChild(shadowRoot);
// The crash (use-after-free) is flaky. We have to reload the page a number of times to reproduce the crash.
// I couldn't find a reliable way to reproduce, such as using gc(), adjusting the scopes of variables and so on.
// As of now, we can hit a crash by reloading about 50 times.
// Reload 30 times here since reloading 80 times caused flaky timeout on Win. See crbug.com/481269.
reloadUntil(30);
}
document.addEventListener("DOMContentLoaded", init, false);
</script>
</body>
</html>