diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 7b0e4e95eef..e2b2dc0edb0 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -15,11 +15,14 @@ use dom::bindings::refcounted::Trusted; use dom::document::Document; use dom::domtokenlist::DOMTokenList; use dom::element::{AttributeMutation, Element, ElementCreator}; +use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{Node, document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; use encoding::EncodingRef; use encoding::all::UTF_8; +use hyper::header::ContentType; +use hyper::mime::{Mime, TopLevel, SubLevel}; use ipc_channel::ipc; use ipc_channel::router::ROUTER; use layout_interface::{LayoutChan, Msg}; @@ -272,6 +275,12 @@ impl PreInvoke for StylesheetContext {} impl AsyncResponseListener for StylesheetContext { fn headers_available(&mut self, metadata: Result) { self.metadata = metadata.ok(); + if let Some(ref meta) = self.metadata { + if let Some(ContentType(Mime(TopLevel::Text, SubLevel::Css, _))) = meta.content_type { + } else { + self.elem.root().upcast::().fire_simple_event("error"); + } + } } fn data_available(&mut self, payload: Vec) { @@ -279,7 +288,11 @@ impl AsyncResponseListener for StylesheetContext { self.data.append(&mut payload); } - fn response_complete(&mut self, _status: Result<(), NetworkError>) { + fn response_complete(&mut self, status: Result<(), NetworkError>) { + if status.is_err() { + self.elem.root().upcast::().fire_simple_event("error"); + return; + } let data = mem::replace(&mut self.data, vec!()); let metadata = match self.metadata.take() { Some(meta) => meta, diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-link-element/link-style-error-01.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-link-element/link-style-error-01.html.ini deleted file mode 100644 index 1ab57decdcb..00000000000 --- a/tests/wpt/metadata/html/semantics/document-metadata/the-link-element/link-style-error-01.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[link-style-error-01.html] - type: testharness - expected: TIMEOUT - [Should get an error event for a text/plain response.] - expected: TIMEOUT -