| <title>WebSockets: navigating top-level browsing context with closed websocket</title> |
| <script src=../constants.js?pipe=sub></script> |
| var controller = opener || parent; |
| var assert_equals = controller.asset_equals; |
| var assert_unreached = controller.assert_unreached ; |
| var uuid = controller.token; |
| t.add_cleanup(function() {delete sessionStorage[uuid];}); |
| // this test can fail if the document is unloaded on navigation e.g. due to OOM |
| if (sessionStorage[uuid]) { |
| assert_unreached('document was discarded'); |
| sessionStorage[uuid] = 'true'; |
| var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); |
| ws.onopen = t.step_func(function(e) { |
| setTimeout(t.step_func(function() { |
| assert_equals(ws.readyState, ws.CLOSED, 'ws.readyState'); |
| ws.onclose = t.step_func(function() { |
| ws.onerror = ws.onmessage = ws.onclose = t.step_func(function(e) {assert_unreached("Got unexpected event " + e.type)}); |