mirror of
https://github.com/servo/servo.git
synced 2025-08-04 05:00:08 +01:00
Use crossbeam channel instead of servo channel. Fix rebase issues and add comment
This commit is contained in:
parent
ef57ecbdb7
commit
4561a97309
3 changed files with 11 additions and 9 deletions
|
@ -640,7 +640,7 @@ fn scheme_fetch(
|
||||||
|
|
||||||
// Setup channel to receive cross-thread messages about the file fetch
|
// Setup channel to receive cross-thread messages about the file fetch
|
||||||
// operation.
|
// operation.
|
||||||
let (done_sender, done_receiver) = channel();
|
let (done_sender, done_receiver) = unbounded();
|
||||||
*done_chan = Some((done_sender.clone(), done_receiver));
|
*done_chan = Some((done_sender.clone(), done_receiver));
|
||||||
*response.body.lock().unwrap() = ResponseBody::Receiving(vec![]);
|
*response.body.lock().unwrap() = ResponseBody::Receiving(vec![]);
|
||||||
|
|
||||||
|
@ -687,12 +687,12 @@ fn scheme_fetch(
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut response = Response::new(url);
|
let mut response = Response::new(url, ResourceFetchTiming::new(request.timing_type()));
|
||||||
if is_range_request {
|
if is_range_request {
|
||||||
partial_content(&mut response);
|
partial_content(&mut response);
|
||||||
}
|
}
|
||||||
|
|
||||||
let (done_sender, done_receiver) = channel();
|
let (done_sender, done_receiver) = unbounded();
|
||||||
*done_chan = Some((done_sender.clone(), done_receiver));
|
*done_chan = Some((done_sender.clone(), done_receiver));
|
||||||
*response.body.lock().unwrap() = ResponseBody::Receiving(vec![]);
|
*response.body.lock().unwrap() = ResponseBody::Receiving(vec![]);
|
||||||
let check_url_validity = true;
|
let check_url_validity = true;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
use crate::fetch::methods::{CancellationListener, Data, RangeRequestBounds};
|
use crate::fetch::methods::{CancellationListener, Data, RangeRequestBounds};
|
||||||
|
use crossbeam_channel::Sender;
|
||||||
use embedder_traits::{EmbedderMsg, EmbedderProxy, FilterPattern};
|
use embedder_traits::{EmbedderMsg, EmbedderProxy, FilterPattern};
|
||||||
use headers_ext::{ContentLength, ContentType, HeaderMap, HeaderMapExt};
|
use headers_ext::{ContentLength, ContentType, HeaderMap, HeaderMapExt};
|
||||||
use http::header::{self, HeaderValue};
|
use http::header::{self, HeaderValue};
|
||||||
|
@ -17,7 +18,6 @@ use net_traits::filemanager_thread::{
|
||||||
use net_traits::http_percent_encode;
|
use net_traits::http_percent_encode;
|
||||||
use net_traits::response::{Response, ResponseBody};
|
use net_traits::response::{Response, ResponseBody};
|
||||||
use servo_arc::Arc as ServoArc;
|
use servo_arc::Arc as ServoArc;
|
||||||
use servo_channel;
|
|
||||||
use servo_config::prefs::PREFS;
|
use servo_config::prefs::PREFS;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
|
@ -107,7 +107,7 @@ impl FileManager {
|
||||||
// in a separate thread.
|
// in a separate thread.
|
||||||
pub fn fetch_file(
|
pub fn fetch_file(
|
||||||
&self,
|
&self,
|
||||||
done_sender: &servo_channel::Sender<Data>,
|
done_sender: &Sender<Data>,
|
||||||
cancellation_listener: Arc<Mutex<CancellationListener>>,
|
cancellation_listener: Arc<Mutex<CancellationListener>>,
|
||||||
id: Uuid,
|
id: Uuid,
|
||||||
check_url_validity: bool,
|
check_url_validity: bool,
|
||||||
|
@ -526,7 +526,7 @@ impl FileManagerStore {
|
||||||
|
|
||||||
fn fetch_blob_buf(
|
fn fetch_blob_buf(
|
||||||
&self,
|
&self,
|
||||||
done_sender: &servo_channel::Sender<Data>,
|
done_sender: &Sender<Data>,
|
||||||
cancellation_listener: Arc<Mutex<CancellationListener>>,
|
cancellation_listener: Arc<Mutex<CancellationListener>>,
|
||||||
id: &Uuid,
|
id: &Uuid,
|
||||||
origin_in: &FileOrigin,
|
origin_in: &FileOrigin,
|
||||||
|
@ -794,7 +794,7 @@ fn read_file_in_chunks(
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn fetch_file_in_chunks(
|
pub fn fetch_file_in_chunks(
|
||||||
done_sender: servo_channel::Sender<Data>,
|
done_sender: Sender<Data>,
|
||||||
mut reader: BufReader<File>,
|
mut reader: BufReader<File>,
|
||||||
res_body: ServoArc<Mutex<ResponseBody>>,
|
res_body: ServoArc<Mutex<ResponseBody>>,
|
||||||
cancellation_listener: Arc<Mutex<CancellationListener>>,
|
cancellation_listener: Arc<Mutex<CancellationListener>>,
|
||||||
|
@ -816,6 +816,9 @@ pub fn fetch_file_in_chunks(
|
||||||
let offset = usize::min(
|
let offset = usize::min(
|
||||||
{
|
{
|
||||||
if let Some(end) = range.end {
|
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 =
|
let remaining_bytes =
|
||||||
end as usize - range.start as usize - body.len() + 1;
|
end as usize - range.start as usize - body.len() + 1;
|
||||||
if remaining_bytes <= FILE_CHUNK_SIZE {
|
if remaining_bytes <= FILE_CHUNK_SIZE {
|
||||||
|
|
|
@ -38,7 +38,6 @@ use net_traits::response::{CacheState, Response, ResponseBody, ResponseType};
|
||||||
use net_traits::{
|
use net_traits::{
|
||||||
FetchTaskTarget, IncludeSubdomains, NetworkError, ReferrerPolicy, ResourceFetchTiming, ResourceTimingType,
|
FetchTaskTarget, IncludeSubdomains, NetworkError, ReferrerPolicy, ResourceFetchTiming, ResourceTimingType,
|
||||||
};
|
};
|
||||||
use servo_channel::{channel, Sender};
|
|
||||||
use servo_url::{ImmutableOrigin, ServoUrl};
|
use servo_url::{ImmutableOrigin, ServoUrl};
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
@ -169,7 +168,7 @@ fn test_fetch_blob() {
|
||||||
|
|
||||||
let mut request = Request::new(url, Some(Origin::Origin(origin.origin())), None);
|
let mut request = Request::new(url, Some(Origin::Origin(origin.origin())), None);
|
||||||
|
|
||||||
let (sender, receiver) = channel();
|
let (sender, receiver) = unbounded();
|
||||||
|
|
||||||
let mut target = FetchResponseCollector {
|
let mut target = FetchResponseCollector {
|
||||||
sender,
|
sender,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue