mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Use Url.join instead of UrlParser.base_url(...).parse (#9002)
This commit is contained in:
parent
6764cf0ee9
commit
11234f5370
41 changed files with 58 additions and 64 deletions
|
@ -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(""),
|
||||
}
|
||||
|
|
|
@ -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<String>) {
|
|||
|
||||
// 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,
|
||||
};
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
@ -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 `<body>` 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
|
||||
},
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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::<Element>();
|
||||
|
||||
|
@ -232,7 +232,7 @@ impl HTMLLinkElement {
|
|||
fn handle_favicon_url(&self, rel: &str, href: &str, sizes: &Option<String>) {
|
||||
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());
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<Worker>;
|
||||
|
@ -64,7 +63,7 @@ impl Worker {
|
|||
// https://html.spec.whatwg.org/multipage/#dom-worker
|
||||
pub fn Constructor(global: GlobalRef, script_url: DOMString) -> Fallible<Root<Worker>> {
|
||||
// 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),
|
||||
};
|
||||
|
|
|
@ -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<DOMString>) -> 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),
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue