<html>
<head>
<script>
var logWin = window.parent.opener;
logWin.log('Initializing Iframe');

function test() {
  logWin.log("Before transfer: permission returned (should be denied): " + Notification.permission);
  setTimeout("window.parent.transferIframe();", 5000); // Wait long enough for Chrome popup blocker to release the window so it can actually close.
}

function testAfterClose()
{
  logWin.log("After transfer: permission returned (should be granted): " + Notification.permission);
}
window.finish = function() {
  logWin.log("After transfer, the permission call is accessing a destroyed object and can return invalid value or crash, depending on circumstances.");
  setInterval(testAfterClose, 1000); // Do it several times in a row, it'll crash after 1-3 times
}
</script>
</head>
<body onload=test()>
</body>
</html>
