summaryrefslogtreecommitdiff
path: root/runtime/web_worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/web_worker.rs')
-rw-r--r--runtime/web_worker.rs61
1 files changed, 27 insertions, 34 deletions
diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs
index c90e91b92..0e3167041 100644
--- a/runtime/web_worker.rs
+++ b/runtime/web_worker.rs
@@ -386,55 +386,48 @@ impl WebWorker {
options.root_cert_store.clone(),
options.unsafely_ignore_certificate_errors.clone(),
),
+ deno_webstorage::init(None).disable(),
deno_broadcast_channel::init(options.broadcast_channel.clone(), unstable),
deno_crypto::init(options.seed),
deno_webgpu::init(unstable),
// ffi
deno_ffi::init::<Permissions>(unstable),
- // Permissions ext (worker specific state)
- perm_ext,
- ];
-
- // Runtime ops that are always initialized for WebWorkers
- let runtime_exts = vec![
+ // Runtime ops that are always initialized for WebWorkers
ops::web_worker::init(),
ops::runtime::init(main_module.clone()),
ops::worker_host::init(
options.create_web_worker_cb.clone(),
options.preload_module_cb.clone(),
),
+ // Extensions providing Deno.* features
+ ops::fs_events::init().enabled(options.use_deno_namespace),
+ ops::fs::init().enabled(options.use_deno_namespace),
ops::io::init(),
+ ops::io::init_stdio().enabled(options.use_deno_namespace),
+ deno_tls::init().enabled(options.use_deno_namespace),
+ 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::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),
+ // Permissions ext (worker specific state)
+ perm_ext,
];
- // Extensions providing Deno.* features
- let deno_ns_exts = if options.use_deno_namespace {
- vec![
- ops::fs_events::init(),
- ops::fs::init(),
- deno_tls::init(),
- deno_net::init::<Permissions>(
- options.root_cert_store.clone(),
- unstable,
- options.unsafely_ignore_certificate_errors.clone(),
- ),
- ops::os::init(Some(options.maybe_exit_code.expect(
- "Worker has access to OS ops but exit code was not passed.",
- ))),
- ops::permissions::init(),
- ops::process::init(),
- ops::signal::init(),
- ops::tty::init(),
- deno_http::init(),
- ops::http::init(),
- ops::io::init_stdio(),
- ]
- } else {
- vec![]
- };
-
// Append exts
- extensions.extend(runtime_exts);
- extensions.extend(deno_ns_exts); // May be empty
extensions.extend(std::mem::take(&mut options.extensions));
let mut js_runtime = JsRuntime::new(RuntimeOptions {