summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/fetch/fs_fetch_handler.rs4
-rw-r--r--ext/fetch/lib.rs13
-rw-r--r--runtime/web_worker.rs2
-rw-r--r--runtime/worker.rs2
4 files changed, 13 insertions, 8 deletions
diff --git a/ext/fetch/fs_fetch_handler.rs b/ext/fetch/fs_fetch_handler.rs
index 82cbc4ecb..1a8fa3e6f 100644
--- a/ext/fetch/fs_fetch_handler.rs
+++ b/ext/fetch/fs_fetch_handler.rs
@@ -10,6 +10,7 @@ use deno_core::futures::FutureExt;
use deno_core::futures::TryFutureExt;
use deno_core::url::Url;
use deno_core::CancelFuture;
+use deno_core::OpState;
use reqwest::StatusCode;
use std::rc::Rc;
use tokio_util::io::ReaderStream;
@@ -21,7 +22,8 @@ pub struct FsFetchHandler;
impl FetchHandler for FsFetchHandler {
fn fetch_file(
- &mut self,
+ &self,
+ _state: &mut OpState,
url: Url,
) -> (
CancelableResponseFuture,
diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs
index 56e9ef1af..a4cff402f 100644
--- a/ext/fetch/lib.rs
+++ b/ext/fetch/lib.rs
@@ -67,7 +67,7 @@ pub struct Options {
pub request_builder_hook: Option<fn(RequestBuilder) -> RequestBuilder>,
pub unsafely_ignore_certificate_errors: Option<Vec<String>>,
pub client_cert_chain_and_key: Option<(String, String)>,
- pub file_fetch_handler: Box<dyn FetchHandler>,
+ pub file_fetch_handler: Rc<dyn FetchHandler>,
}
impl Default for Options {
@@ -79,7 +79,7 @@ impl Default for Options {
request_builder_hook: None,
unsafely_ignore_certificate_errors: None,
client_cert_chain_and_key: None,
- file_fetch_handler: Box::new(DefaultFileFetchHandler),
+ file_fetch_handler: Rc::new(DefaultFileFetchHandler),
}
}
}
@@ -134,7 +134,8 @@ pub trait FetchHandler: dyn_clone::DynClone {
// cancelable response result, the optional fetch body resource and the
// optional cancel handle.
fn fetch_file(
- &mut self,
+ &self,
+ state: &mut OpState,
url: Url,
) -> (
CancelableResponseFuture,
@@ -151,7 +152,8 @@ pub struct DefaultFileFetchHandler;
impl FetchHandler for DefaultFileFetchHandler {
fn fetch_file(
- &mut self,
+ &self,
+ _state: &mut OpState,
_url: Url,
) -> (
CancelableResponseFuture,
@@ -234,8 +236,9 @@ where
let Options {
file_fetch_handler, ..
} = state.borrow_mut::<Options>();
+ let file_fetch_handler = file_fetch_handler.clone();
let (request, maybe_request_body, maybe_cancel_handle) =
- file_fetch_handler.fetch_file(url);
+ file_fetch_handler.fetch_file(state, url);
let request_rid = state.resource_table.add(FetchRequestResource(request));
let maybe_request_body_rid =
maybe_request_body.map(|r| state.resource_table.add(r));
diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs
index b1f1784ce..f5df2f58b 100644
--- a/runtime/web_worker.rs
+++ b/runtime/web_worker.rs
@@ -371,7 +371,7 @@ impl WebWorker {
unsafely_ignore_certificate_errors: options
.unsafely_ignore_certificate_errors
.clone(),
- file_fetch_handler: Box::new(deno_fetch::FsFetchHandler),
+ file_fetch_handler: Rc::new(deno_fetch::FsFetchHandler),
..Default::default()
}),
deno_websocket::init::<Permissions>(
diff --git a/runtime/worker.rs b/runtime/worker.rs
index facbe397b..3a16b7b55 100644
--- a/runtime/worker.rs
+++ b/runtime/worker.rs
@@ -107,7 +107,7 @@ impl MainWorker {
unsafely_ignore_certificate_errors: options
.unsafely_ignore_certificate_errors
.clone(),
- file_fetch_handler: Box::new(deno_fetch::FsFetchHandler),
+ file_fetch_handler: Rc::new(deno_fetch::FsFetchHandler),
..Default::default()
}),
deno_websocket::init::<Permissions>(