From adc2f08c178f51b3ddd5f1c2e3d7f5603424521e Mon Sep 17 00:00:00 2001 From: Steven Guerrero Date: Wed, 6 Jan 2021 15:31:16 -0500 Subject: feat: Add configurable permissions for Workers (#8215) This commit adds new option to "Worker" Web API that allows to configure permissions. New "Worker.deno.permissions" option can be used to define limited permissions to the worker thread by either: - inherit set of parent thread permissions - use limited subset of parent thread permissions - revoke all permissions (full sandbox) In order to achieve this functionality "CliModuleLoader" was modified to accept "initial permissions", which are used for top module loading (ie. uses parent thread permission set to load top level module of a worker). --- cli/tests/workers/nested_worker.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 cli/tests/workers/nested_worker.js (limited to 'cli/tests/workers/nested_worker.js') diff --git a/cli/tests/workers/nested_worker.js b/cli/tests/workers/nested_worker.js new file mode 100644 index 000000000..4b51b8763 --- /dev/null +++ b/cli/tests/workers/nested_worker.js @@ -0,0 +1,18 @@ +// Specifier should be resolved relative to current file +const jsWorker = new Worker( + new URL("sibling_worker.js", import.meta.url).href, + { type: "module", name: "sibling" }, +); + +jsWorker.onerror = (_e) => { + postMessage({ type: "error" }); +}; + +jsWorker.onmessage = (e) => { + postMessage({ type: "msg", text: e }); + close(); +}; + +onmessage = function (e) { + jsWorker.postMessage(e.data); +}; -- cgit v1.2.3