<!doctype html>
<iframe></iframe>
<script>
var t = opener.t;

onload = t.step_func(function() {
  setTimeout(t.step_func(function() {
     var history_length = history.length;
     var iframe = document.getElementsByTagName("iframe")[0];
     iframe.onload = t.step_func(function() {
       opener.assert_equals(history.length, history_length + 1);
       iframe.parentNode.removeChild(iframe);
       opener.assert_equals(history.length, history_length);
       t.done();
       window.close();
     });
     iframe.src = "discard_iframe_history_1-2.html;";
  }), 100);
});
</script>
