<head>
</head>
<body onload="onload()">
</body>
<script>
  if (window.testRunner) {
      testRunner.clearBackForwardList();
      testRunner.waitUntilDone();
  }

  function onload() {
      // Navigate via an iframe redirect (to change the referrer, though we're
      // not interested in that in this test) should still generate a history
      // entry, since we're doing it after onload.
      window.setTimeout(navigate, 0);
  }
  
  function navigate()
  {
      var redirectIframe = document.createElement('iframe');
      document.body.appendChild(redirectIframe);
      redirectIframe.src = 'resources/iframe-redirect.html#2';
  }

</script>

