diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2018-11-10 11:57:47 +0100 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2018-11-26 09:33:35 +0100 |
commit | a84442864d64242903a2b55c170b7f889ab4ab32 (patch) | |
tree | 1bf28997d93190f923bcaceccdb794e28d64840c /components/net/blob_loader.rs | |
parent | 8538634210988adabd5d75c8ff28cabd59a06baa (diff) | |
download | servo-a84442864d64242903a2b55c170b7f889ab4ab32.tar.gz servo-a84442864d64242903a2b55c170b7f889ab4ab32.zip |
Add support fo byte range requests for blob URLs
Diffstat (limited to 'components/net/blob_loader.rs')
-rw-r--r-- | components/net/blob_loader.rs | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/components/net/blob_loader.rs b/components/net/blob_loader.rs deleted file mode 100644 index ae8f09879a4..00000000000 --- a/components/net/blob_loader.rs +++ /dev/null @@ -1,41 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -use crate::fetch::methods::{Data, DoneChannel}; -use crate::filemanager_thread::FileManager; -use net_traits::blob_url_store::parse_blob_url; -use net_traits::response::{Response, ResponseBody}; -use net_traits::{NetworkError, ResourceFetchTiming}; -use servo_channel::channel; -use servo_url::ServoUrl; - -// TODO: Check on GET -// https://w3c.github.io/FileAPI/#requestResponseModel - -/// https://fetch.spec.whatwg.org/#concept-basic-fetch (partial) -pub fn load_blob_async( - url: ServoUrl, - filemanager: FileManager, - done_chan: &mut DoneChannel, -) -> Response { - let (id, origin) = match parse_blob_url(&url) { - Ok((id, origin)) => (id, origin), - Err(()) => { - return Response::network_error(NetworkError::Internal("Invalid blob url".into())); - }, - }; - - let mut response = Response::new(url, ResourceFetchTiming::new(request.timing_type())); - let (sender, receiver) = channel(); - *done_chan = Some((sender.clone(), receiver)); - *response.body.lock().unwrap() = ResponseBody::Receiving(vec![]); - let check_url_validity = true; - if let Err(err) = filemanager.fetch_file(&sender, id, check_url_validity, origin, &mut response) - { - let _ = sender.send(Data::Done); - return Response::network_error(NetworkError::Internal(err)); - }; - - response -} |