<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    testRunner.setCanOpenWindows(true);
    testRunner.setCloseRemainingWindowsWhenComplete(true);
}
</script>
<p>To run this test outside of DumpRenderTree, please disable your popup blocker!</p>
<p>If you change this test, please be sure to change popup-allowed-by-sandbox-is-sandboxed.html as well!</p>
<iframe sandbox="allow-scripts allow-popups allow-forms allow-same-origin"
  src="data:text/html,
       <script>
       var win = window.open('about:blank', '_blank');
       win.document.write(
          '<form action=javascript:console.log(/PASS/) ><input type=submit></form>' +
          '<script>document.forms[0].submit();' +
          'if (window.testRunner)testRunner.notifyDone();' +
          '</' + 'script>');
       </script>"
  ></iframe>
