<p>Test for <a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=8272">bug 8272</a>:
Use of window.open & window.close can cause crash.</p>
<ol>
  <li>(Get a dual processor Mac.)</li>
  <li>Disable popup blocking in Safari.</li>
  <li>Click the Start button.</li>
  <li>As the test runs, move the mouse around.</li>
  <li>If Safari doesn't crash in a while, interrupt the test by pressing Cmd+W.</li>
</ol>

<button onclick="window.open('invalid-mouse-event.html?2', '', '');">Start</button>

<script>

if (location.search) {
  if (location.search == "?1") {
    window.opener.location = window.opener.location;
    window.close();
  } else {
    window.open('invalid-mouse-event.html?1', '', '');
  }
}
</script>
