<!doctype html>
<title>WebSockets: navigating top-level browsing context</title>
<script src=../constants.js?pipe=sub></script>
<script>
var controller = opener || parent;
var t = controller.t;
var assert_equals = controller.asset_equals;
var assert_unreached = controller.assert_unreached;
var uuid = controller.uuid;
t.add_cleanup(function() {delete sessionStorage[uuid];});
t.step(function() {
  if (sessionStorage[uuid]) {
    t.done();
  } else {
    sessionStorage[uuid] = 'true';
    var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo');
    ws.onopen = t.step_func(function(e) {
      setTimeout(t.step_func(function() {
        assert_unreached('document was not discarded');
      }), 1000);
      controller.navigate();
    })
    ws.onerror = ws.onmessage = ws.onclose = t.step_func(function(e) {assert_unreached("Got unexpected event " + e.type)});
  }
});
</script>
