<script>
if (window.testRunner) {
  testRunner.dumpAsText();
  testRunner.waitUntilDone();
}
</script>
<iframe src="resources/pushstate-in-iframe-child.html">
