chromium/third_party/blink/web_tests/plugins/plugin-remove-readystatechange.html

<!DOCTYPE html>
<html>
<body>
<div>
This test passes if it does not trip an assert in debug builds.
It ensures a readystatechange event can't get dispatched until after a plugin is fully removed.
</div>
<embed id="viewer" src="resources/simple_blank.swf"></embed>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

var i = 0;
document.addEventListener('readystatechange', function() {
    if (i == 1) {
        try {
            document.body.appendChild(document.getElementById('viewer'));
        }
        catch (e) {
            alert('PASS: element could not be re-appended');
       }
    }
    i++;
});

window.addEventListener('DOMContentLoaded', function() {
    document.body.removeChild(document.getElementById('viewer'));
});

// FIXME: This shouldn't be needed, but it's here to make our whitespace text node
// creation deterministic in the face of lazily creating the render tree.
document.body.offsetHeight;
</script>
</body>
</html>