// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
async function test(url) {
let allowed = true;
try {
await fetch(url);
} catch (e) {
allowed = false;
}
return allowed;
};
if ('DedicatedWorkerGlobalScope' in self &&
self instanceof DedicatedWorkerGlobalScope) {
onmessage = message => {
test(message.data)
.then(allowed => postMessage(allowed));
};
} else if (
'SharedWorkerGlobalScope' in self &&
self instanceof SharedWorkerGlobalScope) {
onconnect = e => {
e.ports[0].onmessage = message => {
test(message.data)
.then(allowed => e.ports[0].postMessage(allowed));
}
};
}