tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

002-1.html (1085B)


      1 <!doctype html>
      2 <title>WebSockets: navigating top-level browsing context with closed websocket</title>
      3 <script src=../constants.sub.js></script>
      4 <script>
      5 var controller = opener || parent;
      6 var t = controller.t;
      7 var assert_equals = controller.assert_equals;
      8 var assert_unreached = controller.assert_unreached ;
      9 var uuid = controller.uuid;
     10 t.add_cleanup(function() {delete sessionStorage[uuid];});
     11 t.step(function() {
     12  // this test can fail if the document is unloaded on navigation e.g. due to OOM
     13  if (sessionStorage[uuid]) {
     14    assert_unreached('document was discarded');
     15  } else {
     16    sessionStorage[uuid] = 'true';
     17    var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo');
     18    ws.onopen = t.step_func(function(e) {
     19 
     20      t.step_timeout(function() {
     21        assert_equals(ws.readyState, ws.CLOSED, 'ws.readyState');
     22        t.done();
     23      }, 4000);
     24      ws.close();
     25      ws.onclose = t.step_func(function() {
     26        controller.navigate();
     27      });
     28    })
     29    ws.onerror = ws.onmessage = t.step_func(e => assert_unreached("Got unexpected event " + e.type));
     30  }
     31 });
     32 </script>