blob: b95e7807a4f201f64f9cea8a40033c83aaf047f8 [file] [log] [blame]
// Copyright 2015 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.
// Track the number of clients for this worker - tests can use this to ensure
// that shared workers are actually shared, not distinct.
var num_clients = 0;
if (!self.postMessage) {
// This is a shared worker - mimic dedicated worker APIs
onconnect = function(event) {
num_clients++;
event.ports[0].onmessage = function(e) {
self.postMessage = function(msg) {
event.ports[0].postMessage(msg);
};
self.onmessage(e);
};
};
} else {
num_clients++;
}
onmessage = function(evt) {
if (evt.data == "ping") {
postMessage("pong");
} else if (evt.data == "auth") {
importScripts("/auth-basic");
} else if (evt.data == "close") {
close();
} else if (/eval.+/.test(evt.data)) {
try {
postMessage(eval(evt.data.substr(5)));
} catch (ex) {
postMessage(ex);
}
} else if (/tls-client-auth-import.+/.test(evt.data)) {
try {
importScripts(evt.data.substr(23));
} catch (ex) {
}
postMessage("done");
} else if (/tls-client-auth-fetch.+/.test(evt.data)) {
fetch(evt.data.substr(22)).then(_ => {}, _ => postMessage("done"));
}
}