diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2018-11-26 09:15:18 +0100 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2018-11-26 09:34:14 +0100 |
commit | 4561a97309d1b4c6e56dc9bfd51782f40a9c6cba (patch) | |
tree | 1d047ddb14b4a1648c92d2f614a053acb511ee60 /components/net/filemanager_thread.rs | |
parent | ef57ecbdb7864d924322f59a80ebd3c8c947b50e (diff) | |
download | servo-4561a97309d1b4c6e56dc9bfd51782f40a9c6cba.tar.gz servo-4561a97309d1b4c6e56dc9bfd51782f40a9c6cba.zip |
Use crossbeam channel instead of servo channel. Fix rebase issues and add comment
Diffstat (limited to 'components/net/filemanager_thread.rs')
-rw-r--r-- | components/net/filemanager_thread.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/components/net/filemanager_thread.rs b/components/net/filemanager_thread.rs index dce6da0ed0f..f0779df632b 100644 --- a/components/net/filemanager_thread.rs +++ b/components/net/filemanager_thread.rs @@ -3,6 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use crate::fetch::methods::{CancellationListener, Data, RangeRequestBounds}; +use crossbeam_channel::Sender; use embedder_traits::{EmbedderMsg, EmbedderProxy, FilterPattern}; use headers_ext::{ContentLength, ContentType, HeaderMap, HeaderMapExt}; use http::header::{self, HeaderValue}; @@ -17,7 +18,6 @@ use net_traits::filemanager_thread::{ use net_traits::http_percent_encode; use net_traits::response::{Response, ResponseBody}; use servo_arc::Arc as ServoArc; -use servo_channel; use servo_config::prefs::PREFS; use std::collections::HashMap; use std::fs::File; @@ -107,7 +107,7 @@ impl FileManager { // in a separate thread. pub fn fetch_file( &self, - done_sender: &servo_channel::Sender<Data>, + done_sender: &Sender<Data>, cancellation_listener: Arc<Mutex<CancellationListener>>, id: Uuid, check_url_validity: bool, @@ -526,7 +526,7 @@ impl FileManagerStore { fn fetch_blob_buf( &self, - done_sender: &servo_channel::Sender<Data>, + done_sender: &Sender<Data>, cancellation_listener: Arc<Mutex<CancellationListener>>, id: &Uuid, origin_in: &FileOrigin, @@ -794,7 +794,7 @@ fn read_file_in_chunks( } pub fn fetch_file_in_chunks( - done_sender: servo_channel::Sender<Data>, + done_sender: Sender<Data>, mut reader: BufReader<File>, res_body: ServoArc<Mutex<ResponseBody>>, cancellation_listener: Arc<Mutex<CancellationListener>>, @@ -816,6 +816,9 @@ pub fn fetch_file_in_chunks( let offset = usize::min( { if let Some(end) = range.end { + // HTTP Range requests are specified with closed ranges, + // while Rust uses half-open ranges. We add +1 here so + // we don't skip the last requested byte. let remaining_bytes = end as usize - range.start as usize - body.len() + 1; if remaining_bytes <= FILE_CHUNK_SIZE { |