summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/dts/lib.deno.unstable.d.ts10
-rw-r--r--cli/main.rs1
-rw-r--r--cli/tests/testdata/compat/worker/worker_test.mjs2
-rw-r--r--cli/tests/testdata/event_listener_error_immediate_exit_worker.ts2
-rw-r--r--cli/tests/testdata/no_prompt.ts5
-rw-r--r--cli/tests/testdata/set_exit_code_in_worker.ts2
-rw-r--r--cli/tests/testdata/unstable_worker.ts8
-rw-r--r--cli/tests/testdata/worker_drop_handle_race_terminate.js7
-rw-r--r--cli/tests/testdata/workers/parent_read_check_worker.js8
-rw-r--r--cli/tests/testdata/workers/test.ts104
-rw-r--r--cli/tests/unit/worker_permissions_test.ts10
-rw-r--r--runtime/js/11_workers.js19
-rw-r--r--runtime/js/99_main.js29
-rw-r--r--runtime/ops/worker_host.rs7
-rw-r--r--runtime/web_worker.rs34
15 files changed, 50 insertions, 198 deletions
diff --git a/cli/dts/lib.deno.unstable.d.ts b/cli/dts/lib.deno.unstable.d.ts
index 6e9cf7789..d5797eb83 100644
--- a/cli/dts/lib.deno.unstable.d.ts
+++ b/cli/dts/lib.deno.unstable.d.ts
@@ -1135,9 +1135,6 @@ declare function fetch(
declare interface WorkerOptions {
/** UNSTABLE: New API.
*
- * Set deno.namespace to `true` to make `Deno` namespace and all of its
- * methods available to the worker environment. Defaults to `false`.
- *
* Configure permissions options to change the level of access the worker will
* have. By default it will have no permissions. Note that the permissions
* of a worker can't be extended beyond its parent's permissions reach.
@@ -1154,7 +1151,6 @@ declare interface WorkerOptions {
* new URL("deno_worker.ts", import.meta.url).href, {
* type: "module",
* deno: {
- * namespace: true,
* permissions: {
* read: true,
* },
@@ -1163,11 +1159,7 @@ declare interface WorkerOptions {
* );
* ```
*/
- // TODO(Soremwar)
- // `deno: boolean` is kept for backwards compatibility with the previous
- // worker options implementation. Remove for 2.0.
- deno?: boolean | {
- namespace?: boolean;
+ deno?: {
/** Set to `"none"` to disable all the permissions in the worker. */
permissions?: Deno.PermissionOptions;
};
diff --git a/cli/main.rs b/cli/main.rs
index ef9267088..9bbe8cfcb 100644
--- a/cli/main.rs
+++ b/cli/main.rs
@@ -172,7 +172,6 @@ fn create_web_worker_callback(
preload_module_cb,
format_js_error_fn: Some(Arc::new(format_js_error)),
source_map_getter: Some(Box::new(ps.clone())),
- use_deno_namespace: args.use_deno_namespace,
worker_type: args.worker_type,
maybe_inspector_server,
get_error_class_fn: Some(&crate::errors::get_error_class_name),
diff --git a/cli/tests/testdata/compat/worker/worker_test.mjs b/cli/tests/testdata/compat/worker/worker_test.mjs
index 215605487..7caf6196b 100644
--- a/cli/tests/testdata/compat/worker/worker_test.mjs
+++ b/cli/tests/testdata/compat/worker/worker_test.mjs
@@ -2,7 +2,7 @@ import { deferred } from "../../../../../test_util/std/async/deferred.ts";
const promise = deferred();
const url = new URL("./worker.mjs", import.meta.url);
-const worker = new Worker(url.href, { type: "module", deno: true });
+const worker = new Worker(url.href, { type: "module" });
worker.onmessage = (e) => {
const pid = e.data.pid;
diff --git a/cli/tests/testdata/event_listener_error_immediate_exit_worker.ts b/cli/tests/testdata/event_listener_error_immediate_exit_worker.ts
index 87e2ecb19..2ea3b8a62 100644
--- a/cli/tests/testdata/event_listener_error_immediate_exit_worker.ts
+++ b/cli/tests/testdata/event_listener_error_immediate_exit_worker.ts
@@ -1,4 +1,4 @@
new Worker(
new URL("event_listener_error_immediate_exit.ts", import.meta.url).href,
- { type: "module", deno: { namespace: true } },
+ { type: "module" },
);
diff --git a/cli/tests/testdata/no_prompt.ts b/cli/tests/testdata/no_prompt.ts
index 88dccc458..f3d503f63 100644
--- a/cli/tests/testdata/no_prompt.ts
+++ b/cli/tests/testdata/no_prompt.ts
@@ -1,7 +1,4 @@
-new Worker("data:,setTimeout(() => Deno.exit(2), 200)", {
- type: "module",
- deno: { namespace: true },
-});
+new Worker("data:,setTimeout(() => Deno.exit(2), 200)", { type: "module" });
try {
await Deno.run({ cmd: ["ps"] });
diff --git a/cli/tests/testdata/set_exit_code_in_worker.ts b/cli/tests/testdata/set_exit_code_in_worker.ts
index 1df6a76d0..c49c6efb2 100644
--- a/cli/tests/testdata/set_exit_code_in_worker.ts
+++ b/cli/tests/testdata/set_exit_code_in_worker.ts
@@ -2,7 +2,7 @@ import { deferred } from "../../../test_util/std/async/deferred.ts";
const worker = new Worker(
new URL("set_exit_code_worker.js", import.meta.url).href,
- { type: "module", deno: { namespace: true } },
+ { type: "module" },
);
const promise1 = deferred();
diff --git a/cli/tests/testdata/unstable_worker.ts b/cli/tests/testdata/unstable_worker.ts
index 429754dfe..a3b89a180 100644
--- a/cli/tests/testdata/unstable_worker.ts
+++ b/cli/tests/testdata/unstable_worker.ts
@@ -1,12 +1,6 @@
const w = new Worker(
new URL("workers/worker_unstable.ts", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- },
- name: "Unstable Worker",
- },
+ { type: "module", name: "Unstable Worker" },
);
w.postMessage({});
diff --git a/cli/tests/testdata/worker_drop_handle_race_terminate.js b/cli/tests/testdata/worker_drop_handle_race_terminate.js
index dfdd9c561..fc9a4e6b2 100644
--- a/cli/tests/testdata/worker_drop_handle_race_terminate.js
+++ b/cli/tests/testdata/worker_drop_handle_race_terminate.js
@@ -22,10 +22,7 @@ const WORKER2 = getCodeBlobUrl(`
const WORKER1 = getCodeBlobUrl(`
console.log("Worker 1");
- const worker = new Worker(
- ${JSON.stringify(WORKER2)},
- { type: "module", deno: { namespace: true } }
- );
+ const worker = new Worker(${JSON.stringify(WORKER2)}, { type: "module" });
worker.addEventListener("message", () => {
console.log("Terminating");
@@ -34,7 +31,7 @@ const WORKER1 = getCodeBlobUrl(`
});
`);
-new Worker(WORKER1, { type: "module", deno: { namespace: true } });
+new Worker(WORKER1, { type: "module" });
// Don't kill the process before worker 2 is finished.
setTimeout(() => {}, 3000);
diff --git a/cli/tests/testdata/workers/parent_read_check_worker.js b/cli/tests/testdata/workers/parent_read_check_worker.js
index 87ea6bded..c2c0977c0 100644
--- a/cli/tests/testdata/workers/parent_read_check_worker.js
+++ b/cli/tests/testdata/workers/parent_read_check_worker.js
@@ -1,12 +1,6 @@
const worker = new Worker(
new URL("./read_check_granular_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "none",
- },
- },
+ { type: "module", deno: { permissions: "none" } },
);
onmessage = ({ data }) => {
diff --git a/cli/tests/testdata/workers/test.ts b/cli/tests/testdata/workers/test.ts
index 8877c9564..9a178a1d5 100644
--- a/cli/tests/testdata/workers/test.ts
+++ b/cli/tests/testdata/workers/test.ts
@@ -273,37 +273,19 @@ Deno.test({
Deno.test({
name: "worker with Deno namespace",
fn: async function () {
- const regularWorker = new Worker(
- new URL("non_deno_worker.js", import.meta.url),
- { type: "module" },
- );
const denoWorker = new Worker(
new URL("deno_worker.ts", import.meta.url),
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "inherit",
- },
- },
+ { type: "module", deno: { permissions: "inherit" } },
);
- const promise1 = deferred();
- regularWorker.onmessage = (e) => {
- regularWorker.terminate();
- promise1.resolve(e.data);
- };
-
- const promise2 = deferred();
+ const promise = deferred();
denoWorker.onmessage = (e) => {
denoWorker.terminate();
- promise2.resolve(e.data);
+ promise.resolve(e.data);
};
- regularWorker.postMessage("Hello World");
- assertEquals(await promise1, "Hello World");
denoWorker.postMessage("Hello World");
- assertEquals(await promise2, "Hello World");
+ assertEquals(await promise, "Hello World");
},
});
@@ -394,13 +376,7 @@ Deno.test({
Deno.test("Worker inherits permissions", async function () {
const worker = new Worker(
new URL("./read_check_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "inherit",
- },
- },
+ { type: "module", deno: { permissions: "inherit" } },
);
const promise = deferred();
@@ -416,15 +392,7 @@ Deno.test("Worker inherits permissions", async function () {
Deno.test("Worker limit children permissions", async function () {
const worker = new Worker(
new URL("./read_check_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {
- read: false,
- },
- },
- },
+ { type: "module", deno: { permissions: { read: false } } },
);
const promise = deferred();
@@ -443,7 +411,6 @@ Deno.test("Worker limit children permissions granularly", async function () {
{
type: "module",
deno: {
- namespace: true,
permissions: {
env: ["foo"],
hrtime: true,
@@ -493,13 +460,7 @@ Deno.test("Nested worker limit children permissions", async function () {
/** This worker has permissions but doesn't grant them to its children */
const worker = new Worker(
new URL("./parent_read_check_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "inherit",
- },
- },
+ { type: "module", deno: { permissions: "inherit" } },
);
const promise = deferred();
worker.onmessage = ({ data }) => promise.resolve(data);
@@ -544,15 +505,7 @@ Deno.test({
() => {
const worker = new Worker(
new URL("./deno_worker.ts", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {
- env: true,
- },
- },
- },
+ { type: "module", deno: { permissions: { env: true } } },
);
worker.terminate();
},
@@ -565,13 +518,7 @@ Deno.test({
Deno.test("Worker with disabled permissions", async function () {
const worker = new Worker(
new URL("./no_permissions_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "none",
- },
- },
+ { type: "module", deno: { permissions: "none" } },
);
const promise = deferred();
@@ -587,13 +534,7 @@ Deno.test("Worker with disabled permissions", async function () {
Deno.test("Worker permissions are not inherited with empty permission object", async function () {
const worker = new Worker(
new URL("./permission_echo.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {},
- },
- },
+ { type: "module", deno: { permissions: {} } },
);
const promise = deferred();
@@ -617,15 +558,7 @@ Deno.test("Worker permissions are not inherited with empty permission object", a
Deno.test("Worker permissions are not inherited with single specified permission", async function () {
const worker = new Worker(
new URL("./permission_echo.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {
- net: true,
- },
- },
- },
+ { type: "module", deno: { permissions: { net: true } } },
);
const promise = deferred();
@@ -720,17 +653,8 @@ Deno.test({
fn: async function () {
const result = deferred();
const worker = new Worker(
- new URL(
- "./http_worker.js",
- import.meta.url,
- ).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "inherit",
- },
- },
+ new URL("./http_worker.js", import.meta.url).href,
+ { type: "module", deno: { permissions: "inherit" } },
);
worker.onmessage = () => {
result.resolve();
@@ -870,7 +794,7 @@ Deno.test({
* self.onmessage = function() {self.postMessage(Deno.memoryUsage())}
*/
"data:application/typescript;base64,c2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbigpIHtzZWxmLnBvc3RNZXNzYWdlKERlbm8ubWVtb3J5VXNhZ2UoKSl9",
- { type: "module", name: "tsWorker", deno: true },
+ { type: "module", name: "tsWorker" },
);
w.postMessage(null);
diff --git a/cli/tests/unit/worker_permissions_test.ts b/cli/tests/unit/worker_permissions_test.ts
index 145862402..2c21d6fa6 100644
--- a/cli/tests/unit/worker_permissions_test.ts
+++ b/cli/tests/unit/worker_permissions_test.ts
@@ -11,15 +11,7 @@ Deno.test(
"../testdata/workers/env_read_check_worker.js",
import.meta.url,
).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {
- env: ["test", "OTHER"],
- },
- },
- },
+ { type: "module", deno: { permissions: { env: ["test", "OTHER"] } } },
);
worker.onmessage = ({ data }) => {
diff --git a/runtime/js/11_workers.js b/runtime/js/11_workers.js
index 87949c1c0..948542d1c 100644
--- a/runtime/js/11_workers.js
+++ b/runtime/js/11_workers.js
@@ -27,7 +27,6 @@
specifier,
hasSourceCode,
sourceCode,
- useDenoNamespace,
permissions,
name,
workerType,
@@ -38,7 +37,6 @@
permissions: serializePermissions(permissions),
sourceCode,
specifier,
- useDenoNamespace,
workerType,
});
}
@@ -79,20 +77,6 @@
type = "classic",
} = options;
- let namespace;
- let permissions;
- if (typeof deno == "object") {
- namespace = deno.namespace ?? false;
- permissions = deno.permissions ?? undefined;
- } else {
- // Assume `deno: boolean | undefined`.
- // TODO(Soremwar)
- // `deno: boolean` is kept for backwards compatibility with the previous
- // worker options implementation. Remove for 2.0
- namespace = !!deno;
- permissions = undefined;
- }
-
const workerType = webidl.converters["WorkerType"](type);
if (
@@ -120,8 +104,7 @@
specifier,
hasSourceCode,
sourceCode,
- namespace,
- permissions,
+ deno?.permissions,
name,
workerType,
);
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js
index cf2525b06..b469a29dc 100644
--- a/runtime/js/99_main.js
+++ b/runtime/js/99_main.js
@@ -26,7 +26,6 @@ delete Object.prototype.__proto__;
PromisePrototypeThen,
TypeError,
} = window.__bootstrap.primordials;
- const infra = window.__bootstrap.infra;
const util = window.__bootstrap.util;
const eventTarget = window.__bootstrap.eventTarget;
const globalInterfaces = window.__bootstrap.globalInterfaces;
@@ -627,7 +626,6 @@ delete Object.prototype.__proto__;
function bootstrapWorkerRuntime(
runtimeOptions,
name,
- useDenoNamespace,
internalName,
) {
if (hasBootstrapped) {
@@ -697,23 +695,18 @@ delete Object.prototype.__proto__;
close: core.close,
...denoNs,
};
- if (useDenoNamespace) {
- if (unstableFlag) {
- ObjectAssign(finalDenoNs, denoNsUnstable);
- }
- ObjectDefineProperties(finalDenoNs, {
- pid: util.readOnly(pid),
- noColor: util.readOnly(noColor),
- args: util.readOnly(ObjectFreeze(args)),
- });
- // Setup `Deno` global - we're actually overriding already
- // existing global `Deno` with `Deno` namespace from "./deno.ts".
- ObjectDefineProperty(globalThis, "Deno", util.readOnly(finalDenoNs));
- ObjectFreeze(globalThis.Deno.core);
- } else {
- delete globalThis.Deno;
- infra.assert(globalThis.Deno === undefined);
+ if (unstableFlag) {
+ ObjectAssign(finalDenoNs, denoNsUnstable);
}
+ ObjectDefineProperties(finalDenoNs, {
+ pid: util.readOnly(pid),
+ noColor: util.readOnly(noColor),
+ args: util.readOnly(ObjectFreeze(args)),
+ });
+ // Setup `Deno` global - we're actually overriding already
+ // existing global `Deno` with `Deno` namespace from "./deno.ts".
+ ObjectDefineProperty(globalThis, "Deno", util.readOnly(finalDenoNs));
+ ObjectFreeze(globalThis.Deno.core);
}
ObjectDefineProperties(globalThis, {
diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs
index f8831d4e9..d869e5871 100644
--- a/runtime/ops/worker_host.rs
+++ b/runtime/ops/worker_host.rs
@@ -36,7 +36,6 @@ pub struct CreateWebWorkerArgs {
pub parent_permissions: Permissions,
pub permissions: Permissions,
pub main_module: ModuleSpecifier,
- pub use_deno_namespace: bool,
pub worker_type: WebWorkerType,
pub maybe_exit_code: Option<Arc<AtomicI32>>,
}
@@ -133,7 +132,6 @@ pub struct CreateWorkerArgs {
permissions: Option<ChildPermissionsArg>,
source_code: String,
specifier: String,
- use_deno_namespace: bool,
worker_type: WebWorkerType,
}
@@ -150,10 +148,6 @@ fn op_create_worker(
None
};
let args_name = args.name;
- let use_deno_namespace = args.use_deno_namespace;
- if use_deno_namespace {
- super::check_unstable(state, "Worker.deno.namespace");
- }
let worker_type = args.worker_type;
if let WebWorkerType::Classic = worker_type {
if let TestingFeaturesEnabled(false) = state.borrow() {
@@ -216,7 +210,6 @@ fn op_create_worker(
parent_permissions,
permissions: worker_permissions,
main_module: module_specifier.clone(),
- use_deno_namespace,
worker_type,
maybe_exit_code,
});
diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs
index 9582d0f7f..a2f2ffc5d 100644
--- a/runtime/web_worker.rs
+++ b/runtime/web_worker.rs
@@ -312,7 +312,6 @@ pub struct WebWorker {
pub js_runtime: JsRuntime,
pub name: String,
internal_handle: WebWorkerInternalHandle,
- pub use_deno_namespace: bool,
pub worker_type: WebWorkerType,
pub main_module: ModuleSpecifier,
poll_for_messages_fn: Option<v8::Global<v8::Value>>,
@@ -329,7 +328,6 @@ pub struct WebWorkerOptions {
pub preload_module_cb: Arc<ops::worker_host::PreloadModuleCb>,
pub format_js_error_fn: Option<Arc<FormatJsErrorFn>>,
pub source_map_getter: Option<Box<dyn SourceMapGetter>>,
- pub use_deno_namespace: bool,
pub worker_type: WebWorkerType,
pub maybe_inspector_server: Option<Arc<InspectorServer>>,
pub get_error_class_fn: Option<GetErrorClassFn>,
@@ -413,30 +411,28 @@ impl WebWorker {
options.format_js_error_fn.clone(),
),
// Extensions providing Deno.* features
- ops::fs_events::init().enabled(options.use_deno_namespace),
- ops::fs::init().enabled(options.use_deno_namespace),
+ ops::fs_events::init(),
+ ops::fs::init(),
ops::io::init(),
- ops::io::init_stdio(options.stdio).enabled(options.use_deno_namespace),
- deno_tls::init().enabled(options.use_deno_namespace),
+ ops::io::init_stdio(options.stdio),
+ deno_tls::init(),
deno_net::init::<Permissions>(
options.root_cert_store.clone(),
unstable,
options.unsafely_ignore_certificate_errors.clone(),
- )
- .enabled(options.use_deno_namespace),
+ ),
ops::os::init(Some(
options
.maybe_exit_code
.expect("Worker has access to OS ops but exit code was not passed."),
- ))
- .enabled(options.use_deno_namespace),
- ops::permissions::init().enabled(options.use_deno_namespace),
- ops::process::init().enabled(options.use_deno_namespace),
- ops::spawn::init().enabled(options.use_deno_namespace),
- ops::signal::init().enabled(options.use_deno_namespace),
- ops::tty::init().enabled(options.use_deno_namespace),
- deno_http::init().enabled(options.use_deno_namespace),
- ops::http::init().enabled(options.use_deno_namespace),
+ )),
+ ops::permissions::init(),
+ ops::process::init(),
+ ops::spawn::init(),
+ ops::signal::init(),
+ ops::tty::init(),
+ deno_http::init(),
+ ops::http::init(),
// Permissions ext (worker specific state)
perm_ext,
];
@@ -479,7 +475,6 @@ impl WebWorker {
js_runtime,
name,
internal_handle,
- use_deno_namespace: options.use_deno_namespace,
worker_type: options.worker_type,
main_module,
poll_for_messages_fn: None,
@@ -492,10 +487,9 @@ impl WebWorker {
// Instead of using name for log we use `worker-${id}` because
// WebWorkers can have empty string as name.
let script = format!(
- "bootstrap.workerRuntime({}, \"{}\", {}, \"{}\")",
+ "bootstrap.workerRuntime({}, \"{}\", \"{}\")",
options.as_json(),
self.name,
- self.use_deno_namespace,
self.id
);
self