mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Use RequestInit instead of LoadData. Make code look like the spec.
This commit is contained in:
parent
5e49873af7
commit
8bcf54deb5
4 changed files with 94 additions and 69 deletions
|
@ -27,7 +27,7 @@ use net_traits::{AsyncResponseTarget, Metadata, ProgressMsg, ResponseAction, Cor
|
|||
use net_traits::{CoreResourceMsg, CookieSource, FetchResponseMsg, LoadConsumer};
|
||||
use net_traits::{LoadData, LoadResponse, NetworkError, ResourceId};
|
||||
use net_traits::{WebSocketCommunicate, WebSocketConnectData, ResourceThreads};
|
||||
use net_traits::request::{Referer, Request};
|
||||
use net_traits::request::{Request, RequestInit};
|
||||
use profile_traits::time::ProfilerChan;
|
||||
use rustc_serialize::json;
|
||||
use rustc_serialize::{Decodable, Encodable};
|
||||
|
@ -197,8 +197,8 @@ impl ResourceChannelManager {
|
|||
match self.from_client.recv().unwrap() {
|
||||
CoreResourceMsg::Load(load_data, consumer, id_sender) =>
|
||||
self.resource_manager.load(load_data, consumer, id_sender, control_sender.clone()),
|
||||
CoreResourceMsg::Fetch(load_data, sender) =>
|
||||
self.resource_manager.fetch(load_data, sender),
|
||||
CoreResourceMsg::Fetch(init, sender) =>
|
||||
self.resource_manager.fetch(init, sender),
|
||||
CoreResourceMsg::WebsocketConnect(connect, connect_data) =>
|
||||
self.resource_manager.websocket_connect(connect, connect_data),
|
||||
CoreResourceMsg::SetCookiesForUrl(request, cookie_list, source) =>
|
||||
|
@ -486,30 +486,13 @@ impl CoreResourceManager {
|
|||
cancel_listener));
|
||||
}
|
||||
|
||||
fn fetch(&self, load_data: LoadData, sender: IpcSender<FetchResponseMsg>) {
|
||||
spawn_named(format!("fetch thread for {}", load_data.url), move || {
|
||||
let mut request = Request::new(load_data.url,
|
||||
None, false);
|
||||
// todo handle origin
|
||||
// todo consider replacing LoadData with a direct mapping
|
||||
// to a subset of Request
|
||||
// todo set is_service_worker_global_scope
|
||||
*request.method.borrow_mut() = load_data.method;
|
||||
*request.headers.borrow_mut() = load_data.headers;
|
||||
*request.body.borrow_mut() = load_data.data.clone();
|
||||
if let Some(cors) = load_data.cors {
|
||||
request.use_cors_preflight = cors.preflight;
|
||||
}
|
||||
fn fetch(&self, init: RequestInit, sender: IpcSender<FetchResponseMsg>) {
|
||||
spawn_named(format!("fetch thread for {}", init.url), move || {
|
||||
let request = Request::from_init(init);
|
||||
// XXXManishearth: Check origin against pipeline id
|
||||
request.use_url_credentials = load_data.credentials_flag;
|
||||
// todo load context / mimesniff in fetch
|
||||
// todo referrer policy?
|
||||
if let Some(referer) = load_data.referrer_url {
|
||||
request.referer = Referer::RefererUrl(referer);
|
||||
}
|
||||
// todo worker stuff
|
||||
|
||||
|
||||
fetch(Rc::new(request), Some(Box::new(sender)));
|
||||
})
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue