aboutsummaryrefslogtreecommitdiffstats
path: root/components/net/filemanager_thread.rs
diff options
context:
space:
mode:
authorFernando Jiménez Moreno <ferjmoreno@gmail.com>2018-11-26 09:15:18 +0100
committerFernando Jiménez Moreno <ferjmoreno@gmail.com>2018-11-26 09:34:14 +0100
commit4561a97309d1b4c6e56dc9bfd51782f40a9c6cba (patch)
tree1d047ddb14b4a1648c92d2f614a053acb511ee60 /components/net/filemanager_thread.rs
parentef57ecbdb7864d924322f59a80ebd3c8c947b50e (diff)
downloadservo-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.rs11
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 {