aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/net/about_loader.rs2
-rw-r--r--components/net/http_loader.rs7
-rw-r--r--components/net/resource_task.rs4
-rw-r--r--components/script/dom/xmlhttprequest.rs9
-rw-r--r--tests/wpt/metadata/XMLHttpRequest/send-redirect-bogus.htm.ini14
5 files changed, 14 insertions, 22 deletions
diff --git a/components/net/about_loader.rs b/components/net/about_loader.rs
index 4eca1d7819a..27824d89a1f 100644
--- a/components/net/about_loader.rs
+++ b/components/net/about_loader.rs
@@ -19,7 +19,7 @@ pub fn factory(mut load_data: LoadData, start_chan: Sender<LoadResponse>) {
content_type: Some(("text".to_string(), "html".to_string())),
charset: Some("utf-8".to_string()),
headers: None,
- status: StatusOk,
+ status: Some(StatusOk),
});
chan.send(Done(Ok(())));
return
diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs
index 787375d5306..50327f3a00c 100644
--- a/components/net/http_loader.rs
+++ b/components/net/http_loader.rs
@@ -17,7 +17,10 @@ pub fn factory(load_data: LoadData, start_chan: Sender<LoadResponse>) {
}
fn send_error(url: Url, err: String, start_chan: Sender<LoadResponse>) {
- match start_sending_opt(start_chan, Metadata::default(url)) {
+ let mut metadata = Metadata::default(url);
+ metadata.status = None;
+
+ match start_sending_opt(start_chan, metadata) {
Ok(p) => p.send(Done(Err(err))),
_ => {}
};
@@ -133,7 +136,7 @@ fn load(load_data: LoadData, start_chan: Sender<LoadResponse>) {
let mut metadata = Metadata::default(url);
metadata.set_content_type(&response.headers.content_type);
metadata.headers = Some(response.headers.clone());
- metadata.status = response.status.clone();
+ metadata.status = Some(response.status.clone());
let progress_chan = match start_sending_opt(start_chan, metadata) {
Ok(p) => p,
diff --git a/components/net/resource_task.rs b/components/net/resource_task.rs
index 802b44afd75..74d8d1b959d 100644
--- a/components/net/resource_task.rs
+++ b/components/net/resource_task.rs
@@ -72,7 +72,7 @@ pub struct Metadata {
pub headers: Option<ResponseHeaderCollection>,
/// HTTP Status
- pub status: Status
+ pub status: Option<Status>
}
impl Metadata {
@@ -83,7 +83,7 @@ impl Metadata {
content_type: None,
charset: None,
headers: None,
- status: StatusOk // http://fetch.spec.whatwg.org/#concept-response-status-message
+ status: Some(StatusOk) // http://fetch.spec.whatwg.org/#concept-response-status-message
}
}
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index c40a11c5593..7b43541a660 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -88,7 +88,7 @@ pub struct GenerationId(uint);
pub enum XHRProgress {
/// Notify that headers have been received
- HeadersReceivedMsg(GenerationId, Option<ResponseHeaderCollection>, Status),
+ HeadersReceivedMsg(GenerationId, Option<ResponseHeaderCollection>, Option<Status>),
/// Partial progress (after receiving headers), containing portion of the response
LoadingMsg(GenerationId, ByteString),
/// Loading is done
@@ -874,8 +874,11 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
// Part of step 13, send() (processing response)
// XXXManishearth handle errors, if any (substep 1)
// Substep 2
- *self.status_text.borrow_mut() = ByteString::new(status.reason().into_bytes());
- self.status.set(status.code());
+ let status_text = status.as_ref().map_or(vec![], |s| s.reason().into_bytes());
+ let status_code = status.as_ref().map_or(0, |s| s.code());
+
+ *self.status_text.borrow_mut() = ByteString::new(status_text);
+ self.status.set(status_code);
match headers {
Some(ref h) => {
*self.response_headers.borrow_mut() = h.clone();
diff --git a/tests/wpt/metadata/XMLHttpRequest/send-redirect-bogus.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-redirect-bogus.htm.ini
deleted file mode 100644
index d67d1277d87..00000000000
--- a/tests/wpt/metadata/XMLHttpRequest/send-redirect-bogus.htm.ini
+++ /dev/null
@@ -1,14 +0,0 @@
-[send-redirect-bogus.htm]
- type: testharness
- [XMLHttpRequest: send() - Redirects (bogus Location header) (302: http://example.not)]
- expected: FAIL
-
- [XMLHttpRequest: send() - Redirects (bogus Location header) (302: mailto:someone@example.org)]
- expected: FAIL
-
- [XMLHttpRequest: send() - Redirects (bogus Location header) (303: http://example.not)]
- expected: FAIL
-
- [XMLHttpRequest: send() - Redirects (bogus Location header) (303: foobar:someone@example.org)]
- expected: FAIL
-