Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / content / test / data / workers / worker_common.js
blob03cc7f6c4f1f4df0e3e10bfd59e7212332ac3a06
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Track the number of clients for this worker - tests can use this to ensure
6 // that shared workers are actually shared, not distinct.
7 var num_clients = 0;
9 if (!self.postMessage) {
10   // This is a shared worker - mimic dedicated worker APIs
11   onconnect = function(event) {
12     num_clients++;
13     event.ports[0].onmessage = function(e) {
14       self.postMessage = function(msg) {
15         event.ports[0].postMessage(msg);
16       };
17       self.onmessage(e);
18     };
19   };
20 } else {
21   num_clients++;
23 onmessage = function(evt) {
24   if (evt.data == "ping")
25     postMessage("pong");
26   else if (evt.data == "auth")
27     importScripts("/auth-basic");
28   else if (evt.data == "close")
29     close();
30   else if (/eval.+/.test(evt.data)) {
31     try {
32       postMessage(eval(evt.data.substr(5)));
33     } catch (ex) {
34       postMessage(ex);
35     }
36   } else if (/tls-client-auth.+/.test(evt.data)) {
37     try {
38       importScripts(evt.data.substr(16));
39     } catch (ex) {
40     }
41     postMessage("done");
42   }