From 11234f5370631550e925e6357881ac0dea11a120 Mon Sep 17 00:00:00 2001 From: Mathieu Agopian Date: Fri, 18 Dec 2015 17:02:41 +0100 Subject: [PATCH] Use Url.join instead of UrlParser.base_url(...).parse (#9002) --- components/compositing/Cargo.toml | 2 +- components/devtools/Cargo.toml | 2 +- components/devtools_traits/Cargo.toml | 2 +- components/gfx/Cargo.toml | 2 +- components/layout/Cargo.toml | 2 +- components/layout_traits/Cargo.toml | 2 +- components/msg/Cargo.toml | 2 +- components/net/Cargo.toml | 2 +- components/net/fetch/request.rs | 4 ++-- components/net/http_loader.rs | 4 ++-- components/net_traits/Cargo.toml | 2 +- components/plugins/Cargo.toml | 2 +- components/script/Cargo.toml | 2 +- components/script/dom/element.rs | 3 +-- components/script/dom/htmlanchorelement.rs | 3 +-- components/script/dom/htmlbaseelement.rs | 4 ++-- components/script/dom/htmlbodyelement.rs | 4 ++-- components/script/dom/htmlformelement.rs | 3 +-- components/script/dom/htmliframeelement.rs | 5 ++--- components/script/dom/htmlimageelement.rs | 4 ++-- components/script/dom/htmllinkelement.rs | 6 +++--- components/script/dom/htmlscriptelement.rs | 4 ++-- components/script/dom/location.rs | 6 +++--- components/script/dom/worker.rs | 3 +-- components/script/dom/workerglobalscope.rs | 5 ++--- components/script/dom/xmlhttprequest.rs | 6 +++--- components/script/script_task.rs | 4 ++-- components/script_traits/Cargo.toml | 2 +- components/servo/Cargo.toml | 2 +- components/style/Cargo.toml | 2 +- components/style/font_face.rs | 4 ++-- components/style/parser.rs | 4 ++-- components/style_traits/Cargo.toml | 2 +- components/util/Cargo.toml | 2 +- components/webdriver_server/Cargo.toml | 2 +- ports/cef/Cargo.toml | 2 +- ports/glutin/Cargo.toml | 2 +- ports/gonk/Cargo.toml | 2 +- tests/unit/net/Cargo.toml | 2 +- tests/unit/plugin/Cargo.toml | 2 +- tests/unit/style/Cargo.toml | 2 +- 41 files changed, 58 insertions(+), 64 deletions(-) diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml index f4ab907b1ee..f49d15ba2c3 100644 --- a/components/compositing/Cargo.toml +++ b/components/compositing/Cargo.toml @@ -78,7 +78,7 @@ gleam = "0.2" euclid = {version = "0.4", features = ["plugins"]} serde = "0.6" serde_macros = "0.6" -url = "0.5" +url = "0.5.2" [target.x86_64-apple-darwin.dependencies] core-graphics = "0.2" diff --git a/components/devtools/Cargo.toml b/components/devtools/Cargo.toml index e0ed7c5fbf4..318e17dcb86 100644 --- a/components/devtools/Cargo.toml +++ b/components/devtools/Cargo.toml @@ -29,4 +29,4 @@ time = "0.1" rustc-serialize = "0.3" serde = "0.6" serde_macros = "0.6" -url = "0.5" +url = "0.5.2" diff --git a/components/devtools_traits/Cargo.toml b/components/devtools_traits/Cargo.toml index f7dca5197c3..07b9fb7e8f3 100644 --- a/components/devtools_traits/Cargo.toml +++ b/components/devtools_traits/Cargo.toml @@ -26,5 +26,5 @@ rustc-serialize = "0.3" bitflags = "0.3" serde = "0.6" serde_macros = "0.6" -url = "0.5" +url = "0.5.2" diff --git a/components/gfx/Cargo.toml b/components/gfx/Cargo.toml index 4a29c9ea89d..e163fb7e7bf 100644 --- a/components/gfx/Cargo.toml +++ b/components/gfx/Cargo.toml @@ -25,7 +25,7 @@ smallvec = "0.1" string_cache = "0.2" time = "0.1.12" unicode-script = { version = "0.1", features = ["harfbuzz"] } -url = "0.5" +url = "0.5.2" servo-skia = "0.20130412.0" [dependencies.plugins] diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml index 87433b41cd6..0a88c7fa866 100644 --- a/components/layout/Cargo.toml +++ b/components/layout/Cargo.toml @@ -75,4 +75,4 @@ serde_json = "0.5" time = "0.1" unicode-bidi = "0.2" unicode-script = { version = "0.1", features = ["harfbuzz"] } -url = "0.5" +url = "0.5.2" diff --git a/components/layout_traits/Cargo.toml b/components/layout_traits/Cargo.toml index 9bfaafa228e..499715bc7b0 100644 --- a/components/layout_traits/Cargo.toml +++ b/components/layout_traits/Cargo.toml @@ -32,4 +32,4 @@ git = "https://github.com/servo/ipc-channel" euclid = {version = "0.4", features = ["plugins"]} serde = "0.6" serde_macros = "0.6" -url = "0.5" +url = "0.5.2" diff --git a/components/msg/Cargo.toml b/components/msg/Cargo.toml index 18c92809975..1d859502785 100644 --- a/components/msg/Cargo.toml +++ b/components/msg/Cargo.toml @@ -33,7 +33,7 @@ rustc-serialize = "0.3.4" euclid = {version = "0.4", features = ["plugins"]} serde = "0.6" serde_macros = "0.6" -url = "0.5" +url = "0.5.2" [target.x86_64-apple-darwin.dependencies] core-foundation = "0.2" diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml index 8e87cee1361..d53d78f3032 100644 --- a/components/net/Cargo.toml +++ b/components/net/Cargo.toml @@ -39,5 +39,5 @@ mime_guess = "1.1.1" flate2 = "0.2.0" uuid = "0.1.16" euclid = {version = "0.4", features = ["plugins"]} -url = "0.5" +url = "0.5.2" websocket = "0.14.0" diff --git a/components/net/fetch/request.rs b/components/net/fetch/request.rs index 861729f5ebf..99337e5b37c 100644 --- a/components/net/fetch/request.rs +++ b/components/net/fetch/request.rs @@ -17,7 +17,7 @@ use std::ascii::AsciiExt; use std::cell::RefCell; use std::rc::Rc; use std::str::FromStr; -use url::{Url, UrlParser}; +use url::Url; use util::task::spawn_named; /// A [request context](https://fetch.spec.whatwg.org/#concept-request-context) @@ -367,7 +367,7 @@ impl Request { _ => return Response::network_error(), }; // Step 5 - let location_url = UrlParser::new().base_url(self.url_list.last().unwrap()).parse(&*location); + let location_url = self.url_list.last().unwrap().join(&*location); // Step 6 let location_url = match location_url { Ok(ref url) if url.scheme == "data" => { return Response::network_error(); } diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index 9e96f686323..d222e6fb11d 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -37,7 +37,7 @@ use std::error::Error; use std::io::{self, Read, Write}; use std::sync::mpsc::Sender; use std::sync::{Arc, RwLock}; -use url::{Url, UrlParser}; +use url::Url; use util::resource_files::resources_dir_path; use util::task::spawn_named; use uuid; @@ -700,7 +700,7 @@ pub fn load(load_data: LoadData, } } - let new_doc_url = match UrlParser::new().base_url(&doc_url).parse(&new_url) { + let new_doc_url = match doc_url.join(&new_url) { Ok(u) => u, Err(e) => { return Err(LoadError::InvalidRedirect(doc_url, e.to_string())); diff --git a/components/net_traits/Cargo.toml b/components/net_traits/Cargo.toml index 296ca750b57..7da3d281771 100644 --- a/components/net_traits/Cargo.toml +++ b/components/net_traits/Cargo.toml @@ -29,5 +29,5 @@ hyper = { version = "0.7", features = [ "serde-serialization" ] } image = "0.5.0" serde = "0.6" serde_macros = "0.6" -url = "0.5" +url = "0.5.2" websocket = "0.14.0" diff --git a/components/plugins/Cargo.toml b/components/plugins/Cargo.toml index 03f002376eb..b4900f101d9 100644 --- a/components/plugins/Cargo.toml +++ b/components/plugins/Cargo.toml @@ -17,7 +17,7 @@ branch = "servo" optional = true [dependencies] -url = "0.5" +url = "0.5.2" [features] default = [] diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index 135a62ccc07..b24c6287691 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -87,5 +87,5 @@ rand = "0.3" serde = "0.6" caseless = "0.1.0" image = "0.5.0" -url = "0.5" +url = "0.5.2" ref_slice = "0.1.0" diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 340337d96e1..0293281892d 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -81,7 +81,6 @@ use style::properties::longhands::{self, background_image, border_spacing, font_ use style::properties::{PropertyDeclaration, PropertyDeclarationBlock, parse_style_attribute}; use style::values::CSSFloat; use style::values::specified::{self, CSSColor, CSSRGBA, LengthOrPercentage}; -use url::UrlParser; use util::mem::HeapSizeOf; use util::str::{DOMString, LengthOrPercentageOrAuto}; @@ -1051,7 +1050,7 @@ impl Element { let base = doc.url(); // https://html.spec.whatwg.org/multipage/#reflect // XXXManishearth this doesn't handle `javascript:` urls properly - match UrlParser::new().base_url(&base).parse(&url) { + match base.join(&url) { Ok(parsed) => DOMString::from(parsed.serialize()), Err(_) => DOMString::from(""), } diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs index 33fbdca845b..0a1e15ef193 100644 --- a/components/script/dom/htmlanchorelement.rs +++ b/components/script/dom/htmlanchorelement.rs @@ -25,7 +25,6 @@ use dom::virtualmethods::VirtualMethods; use num::ToPrimitive; use std::default::Default; use string_cache::Atom; -use url::UrlParser; use util::str::DOMString; #[dom_struct] @@ -187,7 +186,7 @@ fn follow_hyperlink(subject: &Element, hyperlink_suffix: Option) { // Step 4-5. let document = document_from_node(subject); - let url = match UrlParser::new().base_url(&document.url()).parse(&href) { + let url = match document.url().join(&href) { Ok(url) => url, Err(_) => return, }; diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs index e35469d5038..c281d1269ad 100644 --- a/components/script/dom/htmlbaseelement.rs +++ b/components/script/dom/htmlbaseelement.rs @@ -12,7 +12,7 @@ use dom::htmlelement::HTMLElement; use dom::node::{Node, document_from_node}; use dom::virtualmethods::VirtualMethods; use string_cache::Atom; -use url::{Url, UrlParser}; +use url::Url; use util::str::DOMString; #[dom_struct] @@ -42,7 +42,7 @@ impl HTMLBaseElement { that have a base url."); let document = document_from_node(self); let base = document.fallback_base_url(); - let parsed = UrlParser::new().base_url(&base).parse(&href.value()); + let parsed = base.join(&href.value()); parsed.unwrap_or(base) } diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs index 79c549fd55d..f107d201969 100644 --- a/components/script/dom/htmlbodyelement.rs +++ b/components/script/dom/htmlbodyelement.rs @@ -22,7 +22,7 @@ use script_traits::ScriptMsg as ConstellationMsg; use std::rc::Rc; use string_cache::Atom; use time; -use url::{Url, UrlParser}; +use url::Url; use util::str::DOMString; /// How long we should wait before performing the initial reflow after `` is parsed, in @@ -157,7 +157,7 @@ impl VirtualMethods for HTMLBodyElement { *self.background.borrow_mut() = mutation.new_value(attr).and_then(|value| { let document = document_from_node(self); let base = document.url(); - UrlParser::new().base_url(&base).parse(&value).ok() + base.join(&value).ok() }); true }, diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index a5c21fff47d..f3c98dec0d9 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -35,7 +35,6 @@ use script_task::{MainThreadScriptMsg, ScriptChan}; use std::borrow::ToOwned; use std::cell::Cell; use string_cache::Atom; -use url::UrlParser; use url::form_urlencoded::serialize; use util::str::DOMString; @@ -200,7 +199,7 @@ impl HTMLFormElement { action = DOMString::from(base.serialize()); } // Step 9-11 - let action_components = match UrlParser::new().base_url(base).parse(&action) { + let action_components = match base.join(&action) { Ok(url) => url, Err(_) => return }; diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index c7fdb9eb075..34d668d7c80 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -32,7 +32,7 @@ use script_traits::ScriptMsg as ConstellationMsg; use std::ascii::AsciiExt; use std::cell::Cell; use string_cache::Atom; -use url::{Url, UrlParser}; +use url::Url; use util::prefs; use util::str::DOMString; use util::str::{self, LengthOrPercentageOrAuto}; @@ -74,8 +74,7 @@ impl HTMLIFrameElement { None } else { let window = window_from_node(self); - UrlParser::new().base_url(&window.get_url()) - .parse(&url).ok() + window.get_url().join(&url).ok() } }) } diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 02df6d10dec..de25eb87369 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -27,7 +27,7 @@ use script_task::ScriptTaskEventCategory::UpdateReplacedElement; use script_task::{CommonScriptMsg, Runnable, ScriptChan}; use std::sync::Arc; use string_cache::Atom; -use url::{Url, UrlParser}; +use url::Url; use util::str::DOMString; #[dom_struct] @@ -101,7 +101,7 @@ impl HTMLImageElement { *self.image.borrow_mut() = None; } Some((src, base_url)) => { - let img_url = UrlParser::new().base_url(&base_url).parse(&src); + let img_url = base_url.join(&src); // FIXME: handle URL parse errors more gracefully. let img_url = img_url.unwrap(); *self.url.borrow_mut() = Some(img_url.clone()); diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 60ab9627714..b3005be343d 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -37,7 +37,7 @@ use std::sync::{Arc, Mutex}; use string_cache::Atom; use style::media_queries::{MediaQueryList, parse_media_query_list}; use style::stylesheets::{Origin, Stylesheet}; -use url::{Url, UrlParser}; +use url::Url; use util::str::{DOMString, HTML_SPACE_CHARACTERS}; no_jsmanaged_fields!(Stylesheet); @@ -182,7 +182,7 @@ impl HTMLLinkElement { fn handle_stylesheet_url(&self, href: &str) { let window = window_from_node(self); let window = window.r(); - match UrlParser::new().base_url(&window.get_url()).parse(href) { + match window.get_url().join(href) { Ok(url) => { let element = self.upcast::(); @@ -232,7 +232,7 @@ impl HTMLLinkElement { fn handle_favicon_url(&self, rel: &str, href: &str, sizes: &Option) { let window = window_from_node(self); let window = window.r(); - match UrlParser::new().base_url(&window.get_url()).parse(href) { + match window.get_url().join(href) { Ok(url) => { let ConstellationChan(ref chan) = window.constellation_chan(); let event = ConstellationMsg::NewFavicon(url.clone()); diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 7105f573ac5..5a08c7c04b0 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -41,7 +41,7 @@ use std::cell::Cell; use std::mem; use std::sync::{Arc, Mutex}; use string_cache::Atom; -use url::{Url, UrlParser}; +use url::Url; use util::str::{DOMString, HTML_SPACE_CHARACTERS, StaticStringVec}; #[dom_struct] @@ -263,7 +263,7 @@ impl HTMLScriptElement { } // Step 15.3 - match UrlParser::new().base_url(&base_url).parse(&src) { + match base_url.join(&src) { Err(_) => { // Step 15.4 error!("error parsing URL for script {}", &**src); diff --git a/components/script/dom/location.rs b/components/script/dom/location.rs index bae61d36c99..0457da58618 100644 --- a/components/script/dom/location.rs +++ b/components/script/dom/location.rs @@ -10,7 +10,7 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::USVString; use dom::urlhelper::UrlHelper; use dom::window::Window; -use url::{Url, UrlParser}; +use url::Url; use util::str::DOMString; #[dom_struct] @@ -51,7 +51,7 @@ impl LocationMethods for Location { // TODO: per spec, we should use the _API base URL_ specified by the // _entry settings object_. let base_url = self.window.get_url(); - if let Ok(url) = UrlParser::new().base_url(&base_url).parse(&url.0) { + if let Ok(url) = base_url.join(&url.0) { self.window.load_url(url); } } @@ -98,7 +98,7 @@ impl LocationMethods for Location { // https://html.spec.whatwg.org/multipage/#dom-location-href fn SetHref(&self, value: USVString) { - if let Ok(url) = UrlParser::new().base_url(&self.window.get_url()).parse(&value.0) { + if let Ok(url) = self.window.get_url().join(&value.0) { self.window.load_url(url); } } diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs index 74baa38ea28..2253d5e6dfb 100644 --- a/components/script/dom/worker.rs +++ b/components/script/dom/worker.rs @@ -26,7 +26,6 @@ use js::jsapi::{JSAutoCompartment, JSAutoRequest}; use js::jsval::UndefinedValue; use script_task::{Runnable, ScriptChan}; use std::sync::mpsc::{Sender, channel}; -use url::UrlParser; use util::str::DOMString; pub type TrustedWorkerAddress = Trusted; @@ -64,7 +63,7 @@ impl Worker { // https://html.spec.whatwg.org/multipage/#dom-worker pub fn Constructor(global: GlobalRef, script_url: DOMString) -> Fallible> { // Step 2-4. - let worker_url = match UrlParser::new().base_url(&global.get_url()).parse(&script_url) { + let worker_url = match global.get_url().join(&script_url) { Ok(url) => url, Err(_) => return Err(Error::Syntax), }; diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index 7df9b312df5..dba4c7882ed 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -31,7 +31,7 @@ use std::default::Default; use std::rc::Rc; use std::sync::mpsc::Receiver; use timers::{ActiveTimers, IsInterval, ScheduledCallback, TimerCallback, TimerHandle}; -use url::{Url, UrlParser}; +use url::Url; use util::str::DOMString; #[derive(Copy, Clone, PartialEq)] @@ -195,8 +195,7 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope { fn ImportScripts(&self, url_strings: Vec) -> ErrorResult { let mut urls = Vec::with_capacity(url_strings.len()); for url in url_strings { - let url = UrlParser::new().base_url(&self.worker_url) - .parse(&url); + let url = self.worker_url.join(&url); match url { Ok(url) => urls.push(url), Err(_) => return Err(Error::Syntax), diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index ebb1ef50051..4118bf7fa2b 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -60,7 +60,7 @@ use std::sync::{Arc, Mutex}; use string_cache::Atom; use time; use timers::{ScheduledCallback, TimerHandle}; -use url::{Url, UrlParser}; +use url::Url; use util::mem::HeapSizeOf; use util::str::DOMString; @@ -326,7 +326,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { // Step 6 let base = self.global.root().r().get_url(); - let parsed_url = match UrlParser::new().base_url(&base).parse(&url) { + let parsed_url = match base.join(&url) { Ok(parsed) => parsed, Err(_) => return Err(Error::Syntax) // Step 7 }; @@ -1109,7 +1109,7 @@ impl XMLHttpRequest { let doc = doc.r(); let docloader = DocumentLoader::new(&*doc.loader()); let base = self.global.root().r().get_url(); - let parsed_url = match UrlParser::new().base_url(&base).parse(&self.ResponseURL()) { + let parsed_url = match base.join(&self.ResponseURL()) { Ok(parsed) => Some(parsed), Err(_) => None // Step 7 }; diff --git a/components/script/script_task.rs b/components/script/script_task.rs index 4af59aa1603..ccba560e83b 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -98,7 +98,7 @@ use std::sync::atomic::{Ordering, AtomicBool}; use std::sync::mpsc::{Receiver, Select, Sender, channel}; use std::sync::{Arc, Mutex}; use time::{Tm, now}; -use url::{Url, UrlParser}; +use url::Url; use util::opts; use util::str::DOMString; use util::task; @@ -1840,7 +1840,7 @@ impl ScriptTask { .and_then(|href| { let value = href.value(); let url = document.url(); - UrlParser::new().base_url(&url).parse(&value).map(|url| url.serialize()).ok() + url.join(&value).map(|url| url.serialize()).ok() }); let event = ConstellationMsg::NodeStatus(status); let ConstellationChan(ref chan) = self.constellation_chan; diff --git a/components/script_traits/Cargo.toml b/components/script_traits/Cargo.toml index c0017f26bf8..36ea9b5d274 100644 --- a/components/script_traits/Cargo.toml +++ b/components/script_traits/Cargo.toml @@ -45,4 +45,4 @@ euclid = {version = "0.4", features = ["plugins"]} serde = "0.6" serde_macros = "0.6" time = "0.1.12" -url = "0.5" +url = "0.5.2" diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml index 4c7795fe4fe..917e7d1de1d 100644 --- a/components/servo/Cargo.toml +++ b/components/servo/Cargo.toml @@ -145,5 +145,5 @@ env_logger = "0.3" time = "0.1.12" bitflags = "0.3" libc = "0.2" -url = {version = "0.5", features = ["serde_serialization", "query_encoding"]} +url = {version = "0.5.2", features = ["serde_serialization", "query_encoding"]} euclid = {version = "0.4", features = ["plugins"]} diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml index 27d0e8a5fb1..b39bc4d759a 100644 --- a/components/style/Cargo.toml +++ b/components/style/Cargo.toml @@ -38,5 +38,5 @@ string_cache = "0.2" euclid = {version = "0.4", features = ["plugins"]} serde = "0.6" serde_macros = "0.6" -url = "0.5" +url = "0.5.2" diff --git a/components/style/font_face.rs b/components/style/font_face.rs index 394eed1ebdd..d1d1bdda022 100644 --- a/components/style/font_face.rs +++ b/components/style/font_face.rs @@ -8,7 +8,7 @@ use parser::{ParserContext, log_css_error}; use properties::longhands::font_family::parse_one_family; use std::ascii::AsciiExt; use string_cache::Atom; -use url::{Url, UrlParser}; +use url::Url; use util::mem::HeapSizeOf; #[derive(Clone, Debug, HeapSizeOf, PartialEq, Eq, Deserialize, Serialize)] @@ -111,7 +111,7 @@ fn parse_one_src(context: &ParserContext, input: &mut Parser) -> Result { pub stylesheet_origin: Origin, @@ -33,7 +33,7 @@ impl<'a> ParserContext<'a> { impl<'a> ParserContext<'a> { pub fn parse_url(&self, input: &str) -> Url { - UrlParser::new().base_url(self.base_url).parse(input) + self.base_url.join(input) .unwrap_or_else(|_| url!("about:invalid")) } } diff --git a/components/style_traits/Cargo.toml b/components/style_traits/Cargo.toml index 6c15fda31e1..760bd97a844 100644 --- a/components/style_traits/Cargo.toml +++ b/components/style_traits/Cargo.toml @@ -23,5 +23,5 @@ rustc-serialize = "0.3" selectors = "0.2" serde = "0.6" serde_macros = "0.6" -url = "0.5" +url = "0.5.2" diff --git a/components/util/Cargo.toml b/components/util/Cargo.toml index 5d7b325080b..c8923d5372e 100644 --- a/components/util/Cargo.toml +++ b/components/util/Cargo.toml @@ -52,5 +52,5 @@ string_cache = "0.2" lazy_static = "0.1" getopts = "0.2.11" hyper = "0.7" -url = "0.5" +url = "0.5.2" uuid = "0.1.17" diff --git a/components/webdriver_server/Cargo.toml b/components/webdriver_server/Cargo.toml index 3b034f1b3da..c32c3a137f1 100644 --- a/components/webdriver_server/Cargo.toml +++ b/components/webdriver_server/Cargo.toml @@ -31,5 +31,5 @@ log = "0.3" hyper = "0.7" rustc-serialize = "0.3.4" regex = "0.1.33" -url = "0.5" +url = "0.5.2" uuid = "0.1" diff --git a/ports/cef/Cargo.toml b/ports/cef/Cargo.toml index 99068dbf8c5..aea6e20498c 100644 --- a/ports/cef/Cargo.toml +++ b/ports/cef/Cargo.toml @@ -10,7 +10,7 @@ crate-type = ["dylib"] [dependencies] log = "0.3" -url = "0.5" +url = "0.5.2" libc = "0.2" euclid = {version = "0.4", features = ["plugins"]} gleam = "0.2" diff --git a/ports/glutin/Cargo.toml b/ports/glutin/Cargo.toml index e2441bb8111..e11aa094ded 100644 --- a/ports/glutin/Cargo.toml +++ b/ports/glutin/Cargo.toml @@ -15,7 +15,7 @@ headless = ["servo-glutin/headless"] time = "0.1.12" bitflags = "0.3" libc = "0.2" -url = "0.5" +url = "0.5.2" gleam = "0.2" euclid = {version = "0.4", features = ["plugins"]} servo-glutin = "0.4" diff --git a/ports/gonk/Cargo.toml b/ports/gonk/Cargo.toml index a9cf3d993e1..645cf9b480a 100644 --- a/ports/gonk/Cargo.toml +++ b/ports/gonk/Cargo.toml @@ -42,7 +42,7 @@ path = "../../components/util" [dependencies] env_logger = "0.3" -url = "0.5" +url = "0.5.2" time = "0.1.17" errno = "0.1" libc = "0.2" diff --git a/tests/unit/net/Cargo.toml b/tests/unit/net/Cargo.toml index 28045b73721..9ce4cb04368 100644 --- a/tests/unit/net/Cargo.toml +++ b/tests/unit/net/Cargo.toml @@ -32,6 +32,6 @@ git = "https://github.com/servo/ipc-channel" [dependencies] cookie = "0.2" hyper = "0.7" -url = "0.5" +url = "0.5.2" time = "0.1" flate2 = "0.2.0" diff --git a/tests/unit/plugin/Cargo.toml b/tests/unit/plugin/Cargo.toml index 0289202e72d..adb1fdc7dac 100644 --- a/tests/unit/plugin/Cargo.toml +++ b/tests/unit/plugin/Cargo.toml @@ -12,4 +12,4 @@ doctest = false path = "../../../components/plugins" [dependencies] -url = "0.5" +url = "0.5.2" diff --git a/tests/unit/style/Cargo.toml b/tests/unit/style/Cargo.toml index 0db53235f76..bd577d29599 100644 --- a/tests/unit/style/Cargo.toml +++ b/tests/unit/style/Cargo.toml @@ -25,7 +25,7 @@ path = "../../../components/util" [dependencies] app_units = {version = "0.1", features = ["plugins"]} -url = "0.5" +url = "0.5.2" cssparser = "0.4" selectors = "0.2" string_cache = "0.2"