summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/data/websocket/websocket_shared_worker.html31
-rw-r--r--net/data/websocket/websocket_worker_simple.js46
2 files changed, 77 insertions, 0 deletions
diff --git a/net/data/websocket/websocket_shared_worker.html b/net/data/websocket/websocket_shared_worker.html
new file mode 100644
index 0000000..ed990e2
--- /dev/null
+++ b/net/data/websocket/websocket_shared_worker.html
@@ -0,0 +1,31 @@
+<html>
+<body>
+<div id=result></div>
+<script>
+function log(message)
+{
+ document.getElementById("result").innerHTML += message + "<br>";
+}
+var worker = new SharedWorker("websocket_worker_simple.js");
+var href = window.location.href;
+var hostBegin = href.indexOf("/") + 2;
+var hostEnd = href.lastIndexOf(":");
+var host = href.slice(hostBegin, hostEnd);
+var portBegin = hostEnd + 1;
+var portEnd = href.lastIndexOf("/");
+var port = href.slice(portBegin, portEnd);
+var url = "ws://" + host + ":" + port + "/echo";
+worker.port.onmessage = function (evt) {
+ log(evt.data);
+ if (evt.data == "DONE") {
+ document.title = "OK";
+ } else {
+ document.title = "FAIL";
+ }
+};
+worker.port.postMessage(url);
+
+</script>
+</body>
+</html>
+
diff --git a/net/data/websocket/websocket_worker_simple.js b/net/data/websocket/websocket_worker_simple.js
new file mode 100644
index 0000000..37e3be8
--- /dev/null
+++ b/net/data/websocket/websocket_worker_simple.js
@@ -0,0 +1,46 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+if (!self.postMessage) {
+ // This is a shared worker - mimic dedicated worker APIs
+ onconnect = function(event) {
+ event.ports[0].onmessage = function(e) {
+ self.postMessage = function (msg) {
+ event.ports[0].postMessage(msg);
+ };
+ runTests(e.data);
+ };
+ };
+} else {
+ runTests(event.data);
+}
+
+// This test is compatible with shared-worker-simple.html layout test.
+runTests = function (url) {
+ var ws;
+ var greeting = "hello";
+ try {
+ ws = new WebSocket(url);
+ ws.onopen = function() {
+ ws.send(greeting);
+ };
+ ws.onmessage = function(e) {
+ // Receive echoed "hello".
+ if (e.data != greeting) {
+ postMessage("FAIL: received data is wrong: " + e.data);
+ } else {
+ ws.close();
+ }
+ };
+ ws.onclose = function(e) {
+ if (!e.wasClean) {
+ postMessage("FAIL: close is not clean");
+ } else {
+ postMessage("DONE");
+ }
+ };
+ } catch (e) {
+ postMessage("FAIL: worker: Unexpected exception: " + e);
+ }
+};