aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/xmlhttprequest.rs
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2014-11-28 10:51:44 -0700
committerbors-servo <metajack+bors@gmail.com>2014-11-28 10:51:44 -0700
commit1ac79c64da4b14f83fed6ca123a81417b9c0fc87 (patch)
tree70f3e285e35f778e1ad27ac03698bea0d3c600fd /components/script/dom/xmlhttprequest.rs
parent2d904f70801bdd709ac845520dbe1035dd6fd5db (diff)
parentf5e9ae17cfc9e5fc9b04b765f613b78085404823 (diff)
downloadservo-1ac79c64da4b14f83fed6ca123a81417b9c0fc87.tar.gz
servo-1ac79c64da4b14f83fed6ca123a81417b9c0fc87.zip
auto merge of #4000 : t29/servo/mime-sniffing, r=jdm
Issue: #3144 This PR addresses the second step of the ticket. i.e. move from a 1:1 sniffer:request task model to a shared sniffer task.
Diffstat (limited to 'components/script/dom/xmlhttprequest.rs')
-rw-r--r--components/script/dom/xmlhttprequest.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 7b43541a660..0bbc96e72c9 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -44,7 +44,7 @@ use js::jsval::{JSVal, NullValue, UndefinedValue};
use libc;
use libc::c_void;
-use net::resource_task::{ResourceTask, ResourceCORSData, Load, LoadData, Payload, Done};
+use net::resource_task::{ResourceTask, ResourceCORSData, Load, LoadData, LoadResponse, Payload, Done};
use cors::{allow_cross_origin_request, CORSRequest, CORSMode, ForcedPreflightMode};
use script_task::{ScriptChan, XHRProgressMsg, XHRReleaseMsg};
use servo_util::str::DOMString;
@@ -207,7 +207,8 @@ impl XMLHttpRequest {
fn fetch(fetch_type: &SyncOrAsync, resource_task: ResourceTask,
mut load_data: LoadData, terminate_receiver: Receiver<TerminateReason>,
- cors_request: Result<Option<CORSRequest>,()>, gen_id: GenerationId) -> ErrorResult {
+ cors_request: Result<Option<CORSRequest>,()>, gen_id: GenerationId,
+ start_port: Receiver<LoadResponse>) -> ErrorResult {
fn notify_partial_progress(fetch_type: &SyncOrAsync, msg: XHRProgress) {
match *fetch_type {
@@ -277,8 +278,7 @@ impl XMLHttpRequest {
}
// Step 10, 13
- let (start_chan, start_port) = channel();
- resource_task.send(Load(load_data, start_chan));
+ resource_task.send(Load(load_data));
let progress_port;
@@ -557,7 +557,8 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> {
let global = self.global.root();
let resource_task = global.root_ref().resource_task();
- let mut load_data = LoadData::new(self.request_url.borrow().clone().unwrap());
+ let (start_chan, start_port) = channel();
+ let mut load_data = LoadData::new(self.request_url.borrow().clone().unwrap(), start_chan);
load_data.data = extracted;
// Default headers
@@ -620,7 +621,7 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> {
let gen_id = self.generation_id.get();
if self.sync.get() {
return XMLHttpRequest::fetch(&mut Sync(self), resource_task, load_data,
- terminate_receiver, cors_request, gen_id);
+ terminate_receiver, cors_request, gen_id, start_port);
} else {
self.fetch_time.set(time::now().to_timespec().sec);
let script_chan = global.root_ref().script_chan().clone();
@@ -638,7 +639,8 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> {
load_data,
terminate_receiver,
cors_request,
- gen_id);
+ gen_id,
+ start_port);
let ScriptChan(ref chan) = script_chan;
chan.send(XHRReleaseMsg(addr));
});