<html>
<title>visibilitychange fires on unload with iframes</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>

var frameDocs = [];
var docsLoaded = 0;
var numFrames = 3;

var ast = new async_test("visibilitychange fires on unload with iframes");

function startTest() {
  if (++docsLoaded < numFrames)
    return;

  ast.step(function () {
    frameDocs.push(window[0].document);
    frameDocs.push(window[0][0].document);
    frameDocs.push(window[0][1].document);

    for (var i = 0; i < frameDocs.length; ++i) {
      frameDocs[i].addEventListener(
          "visibilitychange",
          onVisibilityChange.bind(null, i), false);
    }

    document.body.removeChild(document.getElementById("frame1"));
  });
}

var checkedFrames = 0;

function onVisibilityChange(i) {
  ast.step(function () {
    assert_equals(frameDocs[i].visibilityState, "hidden");
  });
  if (++checkedFrames >= numFrames) {
    ast.done();
  }
}



</script>
<iframe id="frame1" src="resources/iframe-with-subframes.html"></iframe>
</body>
</html>
