<style>
    div { padding: 10px; margin: 8px; }
    embed { width: 50px; height: 50px; }
    iframe { width: 50px; height: 50px; }
</style>
<script>
    var callCount = 0;

    function hideFirst()
    {
        if (++callCount != 2)
            return;

        var target = document.getElementById("target");
        if (!target)
            return;

        target.parentNode.removeChild(target);
        document.body.offsetTop;
    }
</script>
<p>
    Test that plugins cannot cause the NSView hierarchy to change beneath <tt>-[NSView _invalidateGStatesForTree]</tt>.
</p>
<p>
    To test, resize the browser window. Reload and repeat a few times. Each time you resize, the orange rectangle and
    its contents should vanish, and the browser should not crash.
</p>
<div id="target" style="border: solid orange;">
    <embed type="application/x-webkit-test-netscape"></embed>
    <iframe src=""></iframe>
    <iframe src=""></iframe>
    <iframe src=""></iframe>
</div>
<div style="border: solid blue;">
    <embed type="application/x-webkit-test-netscape" onsetwindow="hideFirst()"></embed>
</div>
