diff options
Diffstat (limited to 'runtime/web_worker.rs')
-rw-r--r-- | runtime/web_worker.rs | 61 |
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 { |