<html>
<head>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    testRunner.setCanOpenWindows();
    testRunner.setCloseRemainingWindowsWhenComplete(true);
}
window.name = 'opener';
w = window.open("");
w.document.open();
w.document.write('\
<form action="http://127.0.0.1:8000/security/originHeader/resources/print-origin.cgi"\
      target="opener"\
      method="POST">\
</form>\
<script>document.forms[0].submit();</scr' + 'ipt>');
w.document.close();
</script>
</head>
<body>
</body>
</html>
