mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 19:08:15 +00:00
perf: lazily create RootCertStore (#18938)
This commit is contained in:
parent
ecc70eb58f
commit
913176313b
23 changed files with 344 additions and 173 deletions
|
@ -32,7 +32,7 @@ async fn main() -> Result<(), AnyError> {
|
|||
extensions: vec![],
|
||||
startup_snapshot: None,
|
||||
unsafely_ignore_certificate_errors: None,
|
||||
root_cert_store: None,
|
||||
root_cert_store_provider: None,
|
||||
seed: None,
|
||||
source_map_getter: None,
|
||||
format_js_error_fn: None,
|
||||
|
|
|
@ -8,7 +8,6 @@ use deno_core::op;
|
|||
use deno_core::url::Url;
|
||||
use deno_core::OpState;
|
||||
use deno_fetch::data_url::DataUrl;
|
||||
use deno_fetch::reqwest;
|
||||
use deno_web::BlobStore;
|
||||
use deno_websocket::DomExceptionNetworkError;
|
||||
use hyper::body::Bytes;
|
||||
|
@ -41,7 +40,7 @@ pub fn op_worker_sync_fetch(
|
|||
let handle = state.borrow::<WebWorkerInternalHandle>().clone();
|
||||
assert_eq!(handle.worker_type, WebWorkerType::Classic);
|
||||
|
||||
let client = state.borrow::<reqwest::Client>().clone();
|
||||
let client = deno_fetch::get_or_create_client_from_state(state)?;
|
||||
|
||||
// TODO(andreubotella) It's not good to throw an exception related to blob
|
||||
// URLs when none of the script URLs use the blob scheme.
|
||||
|
|
|
@ -37,7 +37,7 @@ use deno_core::SourceMapGetter;
|
|||
use deno_fs::StdFs;
|
||||
use deno_io::Stdio;
|
||||
use deno_kv::sqlite::SqliteDbHandler;
|
||||
use deno_tls::rustls::RootCertStore;
|
||||
use deno_tls::RootCertStoreProvider;
|
||||
use deno_web::create_entangled_message_port;
|
||||
use deno_web::BlobStore;
|
||||
use deno_web::MessagePort;
|
||||
|
@ -329,7 +329,7 @@ pub struct WebWorkerOptions {
|
|||
pub extensions: Vec<Extension>,
|
||||
pub startup_snapshot: Option<Snapshot>,
|
||||
pub unsafely_ignore_certificate_errors: Option<Vec<String>>,
|
||||
pub root_cert_store: Option<RootCertStore>,
|
||||
pub root_cert_store_provider: Option<Arc<dyn RootCertStoreProvider>>,
|
||||
pub seed: Option<u64>,
|
||||
pub module_loader: Rc<dyn ModuleLoader>,
|
||||
pub node_fs: Option<Arc<dyn deno_node::NodeFs>>,
|
||||
|
@ -407,7 +407,7 @@ impl WebWorker {
|
|||
deno_fetch::deno_fetch::init_ops::<PermissionsContainer>(
|
||||
deno_fetch::Options {
|
||||
user_agent: options.bootstrap.user_agent.clone(),
|
||||
root_cert_store: options.root_cert_store.clone(),
|
||||
root_cert_store_provider: options.root_cert_store_provider.clone(),
|
||||
unsafely_ignore_certificate_errors: options
|
||||
.unsafely_ignore_certificate_errors
|
||||
.clone(),
|
||||
|
@ -418,7 +418,7 @@ impl WebWorker {
|
|||
deno_cache::deno_cache::init_ops::<SqliteBackedCache>(create_cache),
|
||||
deno_websocket::deno_websocket::init_ops::<PermissionsContainer>(
|
||||
options.bootstrap.user_agent.clone(),
|
||||
options.root_cert_store.clone(),
|
||||
options.root_cert_store_provider.clone(),
|
||||
options.unsafely_ignore_certificate_errors.clone(),
|
||||
),
|
||||
deno_webstorage::deno_webstorage::init_ops(None).disable(),
|
||||
|
@ -429,7 +429,7 @@ impl WebWorker {
|
|||
),
|
||||
deno_ffi::deno_ffi::init_ops::<PermissionsContainer>(unstable),
|
||||
deno_net::deno_net::init_ops::<PermissionsContainer>(
|
||||
options.root_cert_store.clone(),
|
||||
options.root_cert_store_provider.clone(),
|
||||
unstable,
|
||||
options.unsafely_ignore_certificate_errors.clone(),
|
||||
),
|
||||
|
|
|
@ -33,7 +33,7 @@ use deno_core::SourceMapGetter;
|
|||
use deno_fs::StdFs;
|
||||
use deno_io::Stdio;
|
||||
use deno_kv::sqlite::SqliteDbHandler;
|
||||
use deno_tls::rustls::RootCertStore;
|
||||
use deno_tls::RootCertStoreProvider;
|
||||
use deno_web::BlobStore;
|
||||
use log::debug;
|
||||
|
||||
|
@ -84,7 +84,7 @@ pub struct WorkerOptions {
|
|||
/// V8 snapshot that should be loaded on startup.
|
||||
pub startup_snapshot: Option<Snapshot>,
|
||||
pub unsafely_ignore_certificate_errors: Option<Vec<String>>,
|
||||
pub root_cert_store: Option<RootCertStore>,
|
||||
pub root_cert_store_provider: Option<Arc<dyn RootCertStoreProvider>>,
|
||||
pub seed: Option<u64>,
|
||||
|
||||
/// Implementation of `ModuleLoader` which will be
|
||||
|
@ -163,7 +163,7 @@ impl Default for WorkerOptions {
|
|||
cache_storage_dir: Default::default(),
|
||||
broadcast_channel: Default::default(),
|
||||
source_map_getter: Default::default(),
|
||||
root_cert_store: Default::default(),
|
||||
root_cert_store_provider: Default::default(),
|
||||
node_fs: Default::default(),
|
||||
npm_resolver: Default::default(),
|
||||
blob_store: Default::default(),
|
||||
|
@ -228,7 +228,7 @@ impl MainWorker {
|
|||
deno_fetch::deno_fetch::init_ops::<PermissionsContainer>(
|
||||
deno_fetch::Options {
|
||||
user_agent: options.bootstrap.user_agent.clone(),
|
||||
root_cert_store: options.root_cert_store.clone(),
|
||||
root_cert_store_provider: options.root_cert_store_provider.clone(),
|
||||
unsafely_ignore_certificate_errors: options
|
||||
.unsafely_ignore_certificate_errors
|
||||
.clone(),
|
||||
|
@ -239,7 +239,7 @@ impl MainWorker {
|
|||
deno_cache::deno_cache::init_ops::<SqliteBackedCache>(create_cache),
|
||||
deno_websocket::deno_websocket::init_ops::<PermissionsContainer>(
|
||||
options.bootstrap.user_agent.clone(),
|
||||
options.root_cert_store.clone(),
|
||||
options.root_cert_store_provider.clone(),
|
||||
options.unsafely_ignore_certificate_errors.clone(),
|
||||
),
|
||||
deno_webstorage::deno_webstorage::init_ops(
|
||||
|
@ -252,7 +252,7 @@ impl MainWorker {
|
|||
),
|
||||
deno_ffi::deno_ffi::init_ops::<PermissionsContainer>(unstable),
|
||||
deno_net::deno_net::init_ops::<PermissionsContainer>(
|
||||
options.root_cert_store.clone(),
|
||||
options.root_cert_store_provider.clone(),
|
||||
unstable,
|
||||
options.unsafely_ignore_certificate_errors.clone(),
|
||||
),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue