summaryrefslogtreecommitdiff
path: root/ext/fetch/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/fetch/lib.rs')
-rw-r--r--ext/fetch/lib.rs47
1 files changed, 3 insertions, 44 deletions
diff --git a/ext/fetch/lib.rs b/ext/fetch/lib.rs
index c419180c5..70ed40358 100644
--- a/ext/fetch/lib.rs
+++ b/ext/fetch/lib.rs
@@ -26,7 +26,6 @@ use deno_core::ZeroCopyBuf;
use deno_tls::create_http_client;
use deno_tls::rustls::RootCertStore;
use deno_tls::Proxy;
-use deno_web::BlobStore;
use http::header::CONTENT_LENGTH;
use reqwest::header::HeaderName;
use reqwest::header::HeaderValue;
@@ -275,49 +274,9 @@ where
(request_rid, None, None)
}
"blob" => {
- let blob_store = state.try_borrow::<BlobStore>().ok_or_else(|| {
- type_error("Blob URLs are not supported in this context.")
- })?;
-
- let blob = blob_store
- .get_object_url(url)?
- .ok_or_else(|| type_error("Blob for the given URL not found."))?;
-
- if method != "GET" {
- return Err(type_error("Blob URL fetch only supports GET method."));
- }
-
- let cancel_handle = CancelHandle::new_rc();
- let cancel_handle_ = cancel_handle.clone();
-
- let fut = async move {
- // TODO(lucacsonato): this should be a stream!
- let chunk = match blob.read_all().or_cancel(cancel_handle_).await? {
- Ok(chunk) => chunk,
- Err(err) => return Ok(Err(err)),
- };
-
- let res = http::Response::builder()
- .status(http::StatusCode::OK)
- .header(http::header::CONTENT_LENGTH, chunk.len())
- .header(http::header::CONTENT_TYPE, blob.media_type.clone())
- .body(reqwest::Body::from(chunk))
- .map_err(|err| type_error(err.to_string()));
-
- match res {
- Ok(response) => Ok(Ok(Response::from(response))),
- Err(err) => Ok(Err(err)),
- }
- };
-
- let request_rid = state
- .resource_table
- .add(FetchRequestResource(Box::pin(fut)));
-
- let cancel_handle_rid =
- state.resource_table.add(FetchCancelHandle(cancel_handle));
-
- (request_rid, None, Some(cancel_handle_rid))
+ // Blob URL resolution happens in the JS side of fetch. If we got here is
+ // because the URL isn't an object URL.
+ return Err(type_error("Blob for the given URL not found."));
}
_ => return Err(type_error(format!("scheme '{}' not supported", scheme))),
};