mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Fetch cancellation: Add cancel_chan to FetchContext
This commit is contained in:
parent
b5a205d92e
commit
1dfb125cc9
10 changed files with 22 additions and 16 deletions
|
@ -342,7 +342,7 @@ pub enum WebSocketNetworkEvent {
|
|||
#[derive(Deserialize, Serialize)]
|
||||
/// IPC channels to communicate with the script thread about network or DOM events.
|
||||
pub enum FetchChannels {
|
||||
ResponseMsg(IpcSender<FetchResponseMsg>),
|
||||
ResponseMsg(IpcSender<FetchResponseMsg>, /* cancel_chan */ Option<IpcReceiver<()>>),
|
||||
WebSocket {
|
||||
event_sender: IpcSender<WebSocketNetworkEvent>,
|
||||
action_receiver: IpcReceiver<WebSocketDomAction>,
|
||||
|
@ -353,7 +353,7 @@ pub enum FetchChannels {
|
|||
pub enum CoreResourceMsg {
|
||||
Fetch(RequestInit, FetchChannels),
|
||||
/// Initiate a fetch in response to processing a redirection
|
||||
FetchRedirect(RequestInit, ResponseInit, IpcSender<FetchResponseMsg>),
|
||||
FetchRedirect(RequestInit, ResponseInit, IpcSender<FetchResponseMsg>, /* cancel_chan */ Option<IpcReceiver<()>>),
|
||||
/// Store a cookie for a given originating URL
|
||||
SetCookieForUrl(ServoUrl, Serde<Cookie<'static>>, CookieSource),
|
||||
/// Store a set of cookies for a given originating URL
|
||||
|
@ -383,7 +383,7 @@ pub fn fetch_async<F>(request: RequestInit, core_resource_thread: &CoreResourceT
|
|||
ROUTER.add_route(action_receiver.to_opaque(),
|
||||
Box::new(move |message| f(message.to().unwrap())));
|
||||
core_resource_thread.send(
|
||||
CoreResourceMsg::Fetch(request, FetchChannels::ResponseMsg(action_sender))).unwrap();
|
||||
CoreResourceMsg::Fetch(request, FetchChannels::ResponseMsg(action_sender, None))).unwrap();
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, MallocSizeOf, Serialize)]
|
||||
|
@ -478,7 +478,7 @@ pub fn load_whole_resource(request: RequestInit,
|
|||
-> Result<(Metadata, Vec<u8>), NetworkError> {
|
||||
let (action_sender, action_receiver) = ipc::channel().unwrap();
|
||||
core_resource_thread.send(
|
||||
CoreResourceMsg::Fetch(request, FetchChannels::ResponseMsg(action_sender))).unwrap();
|
||||
CoreResourceMsg::Fetch(request, FetchChannels::ResponseMsg(action_sender, None))).unwrap();
|
||||
|
||||
let mut buf = vec![];
|
||||
let mut metadata = None;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue