<!doctype html>
<title>Link with onclick form submit to javascript url with delayed document.write and href navigation </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<iframe id="test" name="test"></iframe>
<form target="test" action="javascript:(function() {var x = new XMLHttpRequest(); x.open('GET', 'blank.html?pipe=trickle(d2)', false); x.send(); document.write('<script>parent.postMessage(&quot;write&quot;, &quot;*&quot;)</script>'); return '<script>parent.postMessage(&quot;click&quot;, &quot;*&quot;)</script>'})()"></form>
<a target="test" onclick="document.forms[0].submit()" href="href.html">Test</a>
<script>
var t = async_test();
t.step(function() {document.getElementsByTagName("a")[0].click()});
onmessage = t.step_func(
  function(e) {
    assert_equals(e.data, "href");
    t.done();
  });
</script>
