diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/Cargo.toml | 23 | ||||
-rw-r--r-- | components/script/dom/htmllinkelement.rs | 7 | ||||
-rw-r--r-- | components/script/dom/htmlmediaelement.rs | 3 | ||||
-rw-r--r-- | components/script/dom/htmlscriptelement.rs | 3 | ||||
-rw-r--r-- | components/script/dom/servohtmlparser.rs | 4 | ||||
-rw-r--r-- | components/script/dom/xmlhttprequest.rs | 6 | ||||
-rw-r--r-- | components/script/lib.rs | 1 | ||||
-rw-r--r-- | components/script/script_thread.rs | 13 | ||||
-rw-r--r-- | components/script/webdriver_handlers.rs | 5 |
9 files changed, 39 insertions, 26 deletions
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index 83ae3e6ef91..717de7b380a 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -22,23 +22,24 @@ video-metadata = {git = "https://github.com/GuillaumeGomez/video-metadata-rs"} [dependencies] angle = {git = "https://github.com/servo/angle", branch = "servo"} -app_units = "0.2.5" +app_units = "0.3" bitflags = "0.7" canvas_traits = {path = "../canvas_traits"} caseless = "0.1.0" -cookie = { version = "0.2.5", features = ["serialize-serde", "serialize-rustc" ] } -cssparser = {version = "0.5.4", features = ["heap_size", "serde-serialization"]} +cookie = {version = "0.2.5", features = ["serialize-rustc"]} +cssparser = {version = "0.5.7", features = ["heap_size", "serde-serialization"]} devtools_traits = {path = "../devtools_traits"} encoding = "0.2" -euclid = "0.8.2" +euclid = "0.9" fnv = "1.0" gfx_traits = {path = "../gfx_traits"} heapsize = "0.3.6" heapsize_plugin = "0.1.2" html5ever = {version = "0.5.1", features = ["heap_size", "unstable"]} -hyper = {version = "0.9.9", features = ["serde-serialization"]} +hyper = "0.9.9" +hyper_serde = "0.1.4" image = "0.10" -ipc-channel = "0.4.0" +ipc-channel = "0.5" js = {git = "https://github.com/servo/rust-mozjs"} libc = "0.2" log = "0.3.5" @@ -47,7 +48,7 @@ mime_guess = "1.8.0" msg = {path = "../msg"} net_traits = {path = "../net_traits"} num-traits = "0.1.32" -offscreen_gl_context = "0.2.0" +offscreen_gl_context = "0.3" open = "1.1.1" phf = "0.7.16" phf_macros = "0.7.16" @@ -62,14 +63,14 @@ rustc-serialize = "0.3" script_layout_interface = {path = "../script_layout_interface"} script_traits = {path = "../script_traits"} selectors = {version = "0.8", features = ["heap_size"]} -serde = "0.7.15" +serde = "0.8" smallvec = "0.1" -string_cache = {version = "0.2.20", features = ["heap_size", "unstable"]} +string_cache = {version = "0.2.23", features = ["heap_size", "unstable"]} style = {path = "../style"} time = "0.1.12" -url = {version = "1.0.0", features = ["heap_size", "query_encoding"]} +url = {version = "1.2", features = ["heap_size", "query_encoding"]} util = {path = "../util"} -uuid = {version = "0.2", features = ["v4"]} +uuid = {version = "0.3", features = ["v4"]} websocket = "0.17" xml5ever = {version = "0.1.2", features = ["unstable"]} diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 0d5ae4ee179..9264bcb0490 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -24,6 +24,7 @@ use encoding::all::UTF_8; use hyper::header::ContentType; use hyper::http::RawStatus; use hyper::mime::{Mime, TopLevel, SubLevel}; +use hyper_serde::Serde; use ipc_channel::ipc; use ipc_channel::router::ROUTER; use net_traits::{AsyncResponseListener, AsyncResponseTarget, Metadata, NetworkError}; @@ -282,7 +283,7 @@ impl AsyncResponseListener for StylesheetContext { fn headers_available(&mut self, metadata: Result<Metadata, NetworkError>) { self.metadata = metadata.ok(); if let Some(ref meta) = self.metadata { - if let Some(ContentType(Mime(TopLevel::Text, SubLevel::Css, _))) = meta.content_type { + if let Some(Serde(ContentType(Mime(TopLevel::Text, SubLevel::Css, _)))) = meta.content_type { } else { self.elem.root().upcast::<EventTarget>().fire_simple_event("error"); } @@ -304,7 +305,7 @@ impl AsyncResponseListener for StylesheetContext { Some(meta) => meta, None => return, }; - let is_css = metadata.content_type.map_or(false, |ContentType(Mime(top, sub, _))| + let is_css = metadata.content_type.map_or(false, |Serde(ContentType(Mime(top, sub, _)))| top == TopLevel::Text && sub == SubLevel::Css); let data = if is_css { mem::replace(&mut self.data, vec!()) } else { vec!() }; @@ -334,7 +335,7 @@ impl AsyncResponseListener for StylesheetContext { document.invalidate_stylesheets(); // FIXME: Revisit once consensus is reached at: https://github.com/whatwg/html/issues/1142 - successful = metadata.status.map_or(false, |RawStatus(code, _)| code == 200); + successful = metadata.status.map_or(false, |Serde(RawStatus(code, _))| code == 200); } if elem.parser_inserted.get() { diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index 119139ae6d8..1c7a27fcef6 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -24,6 +24,7 @@ use dom::htmlsourceelement::HTMLSourceElement; use dom::mediaerror::MediaError; use dom::node::{window_from_node, document_from_node, Node, UnbindContext}; use dom::virtualmethods::VirtualMethods; +use hyper_serde::Serde; use ipc_channel::ipc; use ipc_channel::router::ROUTER; use net_traits::{AsyncResponseListener, AsyncResponseTarget, Metadata, NetworkError}; @@ -67,7 +68,7 @@ impl AsyncResponseListener for HTMLMediaElementContext { .as_ref() .and_then(|m| m.status .as_ref() - .map(|s| s.0 < 200 || s.0 >= 300)) + .map(|&Serde(ref s)| s.0 < 200 || s.0 >= 300)) .unwrap_or(false); if is_failure { // Ensure that the element doesn't receive any further notifications diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 442f3063524..6a6fe7d50b4 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -27,6 +27,7 @@ use encoding::label::encoding_from_whatwg_label; use encoding::types::{DecoderTrap, EncodingRef}; use html5ever::tree_builder::NextParserState; use hyper::http::RawStatus; +use hyper_serde::Serde; use ipc_channel::ipc; use ipc_channel::router::ROUTER; use js::jsval::UndefinedValue; @@ -158,7 +159,7 @@ impl AsyncResponseListener for ScriptContext { let status_code = self.metadata.as_ref().and_then(|m| { match m.status { - Some(RawStatus(c, _)) => Some(c), + Some(Serde(RawStatus(c, _))) => Some(c), _ => None, } }).unwrap_or(0); diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs index 09ee38a1232..d4d2cbc911a 100644 --- a/components/script/dom/servohtmlparser.rs +++ b/components/script/dom/servohtmlparser.rs @@ -28,6 +28,7 @@ use html5ever::tree_builder; use html5ever::tree_builder::{TreeBuilder, TreeBuilderOpts}; use hyper::header::ContentType; use hyper::mime::{Mime, SubLevel, TopLevel}; +use hyper_serde::Serde; use js::jsapi::JSTracer; use msg::constellation_msg::{PipelineId, SubpageId}; use net_traits::{AsyncResponseListener, Metadata, NetworkError}; @@ -98,7 +99,8 @@ impl AsyncResponseListener for ParserContext { }, Err(_) => None, }; - let content_type = metadata.clone().and_then(|meta| meta.content_type); + let content_type = + metadata.clone().and_then(|meta| meta.content_type).map(Serde::into_inner); let parser = match ScriptThread::page_headers_available(&self.id, self.subpage.as_ref(), metadata) { diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 1d58e118cf4..382e4c69faa 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -39,6 +39,7 @@ use hyper::header::{ContentLength, ContentType}; use hyper::http::RawStatus; use hyper::method::Method; use hyper::mime::{self, Mime, Attr as MimeAttr, Value as MimeValue}; +use hyper_serde::Serde; use ipc_channel::ipc; use ipc_channel::router::ROUTER; use js::jsapi::JS_ClearPendingException; @@ -875,7 +876,10 @@ impl XMLHttpRequest { *self.response_url.borrow_mut() = metadata.final_url[..Position::AfterQuery].to_owned(); // XXXManishearth Clear cache entries in case of a network error - self.process_partial_response(XHRProgress::HeadersReceived(gen_id, metadata.headers, metadata.status)); + self.process_partial_response(XHRProgress::HeadersReceived( + gen_id, + metadata.headers.map(Serde::into_inner), + metadata.status.map(Serde::into_inner))); Ok(()) } diff --git a/components/script/lib.rs b/components/script/lib.rs index 2eecac4d1b5..87abf732bc1 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -48,6 +48,7 @@ extern crate gfx_traits; extern crate heapsize; extern crate html5ever; extern crate hyper; +extern crate hyper_serde; extern crate image; extern crate ipc_channel; #[macro_use] diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index c7e7dde4ad3..4dd3a3fba7f 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -55,6 +55,7 @@ use hyper::header::{ContentType, Headers, HttpDate, LastModified}; use hyper::header::{ReferrerPolicy as ReferrerPolicyHeader}; use hyper::method::Method; use hyper::mime::{Mime, SubLevel, TopLevel}; +use hyper_serde::Serde; use ipc_channel::ipc::{self, IpcSender}; use ipc_channel::router::ROUTER; use js::glue::GetWindowProxyClass; @@ -1695,7 +1696,7 @@ impl ScriptThread { headers.get().map(|&LastModified(HttpDate(ref tm))| dom_last_modified(tm)) }); - let content_type = metadata.content_type.as_ref().and_then(|&ContentType(ref mimetype)| { + let content_type = metadata.content_type.as_ref().and_then(|&Serde(ContentType(ref mimetype))| { match *mimetype { Mime(TopLevel::Application, SubLevel::Xml, _) | Mime(TopLevel::Application, SubLevel::Ext(_), _) | @@ -1710,8 +1711,8 @@ impl ScriptThread { Some(incomplete.url.clone())); let is_html_document = match metadata.content_type { - Some(ContentType(Mime(TopLevel::Application, SubLevel::Xml, _))) | - Some(ContentType(Mime(TopLevel::Text, SubLevel::Xml, _))) => + Some(Serde(ContentType(Mime(TopLevel::Application, SubLevel::Xml, _)))) | + Some(Serde(ContentType(Mime(TopLevel::Text, SubLevel::Xml, _)))) => IsHTMLDocument::NonHTMLDocument, _ => IsHTMLDocument::HTMLDocument, }; @@ -1797,11 +1798,11 @@ impl ScriptThread { document.set_https_state(metadata.https_state); let is_xml = match metadata.content_type { - Some(ContentType(Mime(TopLevel::Application, SubLevel::Ext(ref sub_level), _))) + Some(Serde(ContentType(Mime(TopLevel::Application, SubLevel::Ext(ref sub_level), _)))) if sub_level.ends_with("+xml") => true, - Some(ContentType(Mime(TopLevel::Application, SubLevel::Xml, _))) | - Some(ContentType(Mime(TopLevel::Text, SubLevel::Xml, _))) => true, + Some(Serde(ContentType(Mime(TopLevel::Application, SubLevel::Xml, _)))) | + Some(Serde(ContentType(Mime(TopLevel::Text, SubLevel::Xml, _)))) => true, _ => false, }; diff --git a/components/script/webdriver_handlers.rs b/components/script/webdriver_handlers.rs index 74a754c36ce..2d55345d324 100644 --- a/components/script/webdriver_handlers.rs +++ b/components/script/webdriver_handlers.rs @@ -27,6 +27,7 @@ use dom::window::ScriptHelpers; use euclid::point::Point2D; use euclid::rect::Rect; use euclid::size::Size2D; +use hyper_serde::Serde; use ipc_channel::ipc::{self, IpcSender}; use js::jsapi::{JSContext, HandleValue}; use js::jsval::UndefinedValue; @@ -194,7 +195,7 @@ pub fn handle_get_active_element(context: &BrowsingContext, pub fn handle_get_cookies(context: &BrowsingContext, _pipeline: PipelineId, - reply: IpcSender<Vec<Cookie>>) { + reply: IpcSender<Vec<Serde<Cookie>>>) { let document = context.active_document(); let url = document.url(); let (sender, receiver) = ipc::channel().unwrap(); @@ -209,7 +210,7 @@ pub fn handle_get_cookies(context: &BrowsingContext, pub fn handle_get_cookie(context: &BrowsingContext, _pipeline: PipelineId, name: String, - reply: IpcSender<Vec<Cookie>>) { + reply: IpcSender<Vec<Serde<Cookie>>>) { let document = context.active_document(); let url = document.url(); let (sender, receiver) = ipc::channel().unwrap(); |