<!-- onconnect = function(e) { try { var port = e.ports[0] var url = decodeURIComponent(location.hash.substr(1)) var source = new EventSource(url) source.onerror = function(e) { port.postMessage([true, this.readyState, 'data' in e]) this.close(); } } catch(e) { port.postMessage([false, String(e)]) } } /*--> <!DOCTYPE html> <html> <head> <title>shared worker - EventSource: constructor (act as if there is a network error)</title> <meta name=timeout content=long> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> </head> <body> <div id="log"></div> <script> function fetchFail(url) { var test = async_test(document.title + " (" + url + ")", { timeout: 20000 }) test.step(function() { var worker = new SharedWorker('#'+encodeURIComponent(url)) worker.port.onmessage = function(e) { test.step(function() { assert_true(e.data[0], e.data[1]) assert_equals(e.data[1], EventSource.CLOSED, 'source.readyState') assert_false(e.data[2], "'data' in e"); }) test.done() } }) } fetchFail("http://example.not") fetchFail("https://example.not/test") fetchFail("ftp://example.not") fetchFail("about:blank") fetchFail("mailto:whatwg@awesome.example") fetchFail("javascript:alert('FAIL')") </script> <!-- This tests "fails the connection" as well as making sure a simple event is dispatched and not a MessageEvent --> </body> </html> <!--*/ //-->