Skip to content

Commit

Permalink
Update to url 2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonSapin committed Aug 17, 2019
1 parent ff3f3d3 commit 9392180
Show file tree
Hide file tree
Showing 26 changed files with 74 additions and 355 deletions.
53 changes: 32 additions & 21 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion components/config/Cargo.toml
Expand Up @@ -25,7 +25,7 @@ serde_derive = "1.0"
serde_json = "1.0"
servo_geometry = {path = "../geometry"}
servo_url = {path = "../url"}
url = "1.2"
url = "2.0"
servo_config_plugins = { path = "../config_plugins" }

[dev-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion components/debugger/Cargo.toml
Expand Up @@ -14,4 +14,4 @@ crate_type = ["rlib"]
[dependencies]
crossbeam-channel = "0.3"
log = "0.4"
ws = "0.8"
ws = "0.9"
2 changes: 1 addition & 1 deletion components/malloc_size_of/Cargo.toml
Expand Up @@ -41,7 +41,7 @@ smallvec = "0.6"
string_cache = { version = "0.7", optional = true }
thin-slice = "0.1.0"
time = { version = "0.1.17", optional = true }
url = { version = "1.2", optional = true }
url = { version = "2.0", optional = true }
webrender_api = { git = "https://github.com/servo/webrender", features = ["ipc"], optional = true }
xml5ever = { version = "0.14", optional = true }
void = "1.0.2"
5 changes: 3 additions & 2 deletions components/net/Cargo.toml
Expand Up @@ -42,6 +42,7 @@ mime_guess = "2.0.0-alpha.6"
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
openssl = "0.10"
percent-encoding = "1.0"
pixels = {path = "../pixels"}
profile_traits = {path = "../profile_traits"}
rayon = "1"
Expand All @@ -55,10 +56,10 @@ tokio = "0.1"
tokio-timer = "0.2"
threadpool = "1.0"
time = "0.1.17"
url = "1.2"
url = "2.0"
uuid = {version = "0.7", features = ["v4"]}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
ws = { version = "0.8", features = ["ssl"] }
ws = { version = "0.9", features = ["ssl"] }

[dev-dependencies]
std_test_override = { path = "../std_test_override" }
Expand Down
2 changes: 1 addition & 1 deletion components/net/data_loader.rs
Expand Up @@ -4,8 +4,8 @@

use base64;
use mime::Mime;
use percent_encoding::percent_decode;
use servo_url::ServoUrl;
use url::percent_encoding::percent_decode;
use url::Position;

pub enum DecodeError {
Expand Down
3 changes: 2 additions & 1 deletion components/net_traits/Cargo.toml
Expand Up @@ -29,13 +29,14 @@ malloc_size_of_derive = "0.1"
mime = "0.3"
msg = {path = "../msg"}
num-traits = "0.2"
percent-encoding = "1.0"
pixels = {path = "../pixels"}
serde = "1.0"
servo_arc = {path = "../servo_arc"}
servo_config = {path = "../config"}
servo_url = {path = "../url"}
time = "0.1"
url = "1.2"
url = "2.0"
uuid = {version = "0.7", features = ["v4", "serde"]}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

Expand Down
7 changes: 2 additions & 5 deletions components/net_traits/lib.rs
Expand Up @@ -14,8 +14,6 @@ extern crate malloc_size_of;
extern crate malloc_size_of_derive;
#[macro_use]
extern crate serde;
#[macro_use]
extern crate url;

use crate::filemanager_thread::FileManagerThreadMsg;
use crate::request::{Request, RequestBuilder};
Expand All @@ -35,7 +33,6 @@ use msg::constellation_msg::HistoryStateId;
use servo_url::ServoUrl;
use std::error::Error;
use time::precise_time_ns;
use url::percent_encoding;

pub mod blob_url_store;
pub mod filemanager_thread;
Expand Down Expand Up @@ -656,7 +653,7 @@ pub fn trim_http_whitespace(mut slice: &[u8]) -> &[u8] {
}

pub fn http_percent_encode(bytes: &[u8]) -> String {
define_encode_set! {
percent_encoding::define_encode_set! {
// This encode set is used for HTTP header values and is defined at
// https://tools.ietf.org/html/rfc5987#section-3.2
pub HTTP_VALUE = [percent_encoding::SIMPLE_ENCODE_SET] | {
Expand All @@ -665,5 +662,5 @@ pub fn http_percent_encode(bytes: &[u8]) -> String {
}
}

url::percent_encoding::percent_encode(bytes, HTTP_VALUE).to_string()
percent_encoding::percent_encode(bytes, HTTP_VALUE).to_string()
}
3 changes: 2 additions & 1 deletion components/script/Cargo.toml
Expand Up @@ -79,6 +79,7 @@ msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
num-traits = "0.2"
parking_lot = "0.8"
percent-encoding = "1.0"
phf = "0.7"
pixels = {path = "../pixels"}
profile_traits = {path = "../profile_traits"}
Expand Down Expand Up @@ -107,7 +108,7 @@ tendril = {version = "0.4.1", features = ["encoding_rs"]}
time = "0.1.12"
typetag = "0.1"
unicode-segmentation = "1.1.0"
url = "1.6"
url = "2.0"
utf-8 = "0.7"
uuid = {version = "0.7", features = ["v4"]}
xml5ever = {version = "0.14"}
Expand Down
2 changes: 1 addition & 1 deletion components/script/dom/document.rs
Expand Up @@ -133,6 +133,7 @@ use net_traits::CookieSource::NonHTTP;
use net_traits::CoreResourceMsg::{GetCookiesForUrl, SetCookiesForUrl};
use net_traits::{FetchResponseMsg, IpcSend, ReferrerPolicy};
use num_traits::ToPrimitive;
use percent_encoding::percent_decode;
use profile_traits::ipc as profile_ipc;
use profile_traits::time::{TimerMetadata, TimerMetadataFrameType, TimerMetadataReflowType};
use ref_slice::ref_slice;
Expand Down Expand Up @@ -163,7 +164,6 @@ use style::shared_lock::SharedRwLock as StyleSharedRwLock;
use style::str::{split_html_space_chars, str_join};
use style::stylesheet_set::DocumentStylesheetSet;
use style::stylesheets::{Origin, OriginSet, Stylesheet};
use url::percent_encoding::percent_decode;
use url::Host;
use uuid::Uuid;

Expand Down
42 changes: 21 additions & 21 deletions components/script/dom/htmlformelement.rs
Expand Up @@ -63,8 +63,6 @@ use std::borrow::ToOwned;
use std::cell::Cell;
use style::attr::AttrValue;
use style::str::split_html_space_chars;
use url::form_urlencoded::Serializer;
use url::UrlQuery;

#[derive(Clone, Copy, JSTraceable, MallocSizeOf, PartialEq)]
pub struct GenerationId(u32);
Expand Down Expand Up @@ -463,13 +461,12 @@ impl HTMLFormElement {
) {
let charset = encoding.name();

self.set_encoding_override(load_data.url.as_mut_url().query_pairs_mut())
.clear()
.extend_pairs(
form_data
.into_iter()
.map(|field| (field.name.clone(), field.replace_value(charset))),
);
self.set_url_query_pairs(
&mut load_data.url,
form_data
.iter()
.map(|field| (&*field.name, field.replace_value(charset))),
);

self.plan_to_navigate(load_data, target);
}
Expand All @@ -492,13 +489,12 @@ impl HTMLFormElement {
.typed_insert(ContentType::from(mime::APPLICATION_WWW_FORM_URLENCODED));

let mut url = load_data.url.clone();
self.set_encoding_override(url.as_mut_url().query_pairs_mut())
.clear()
.extend_pairs(
form_data
.into_iter()
.map(|field| (field.name.clone(), field.replace_value(charset))),
);
self.set_url_query_pairs(
&mut url,
form_data
.iter()
.map(|field| (&*field.name, field.replace_value(charset))),
);

url.query().unwrap_or("").to_string().into_bytes()
},
Expand All @@ -521,13 +517,17 @@ impl HTMLFormElement {
self.plan_to_navigate(load_data, target);
}

fn set_encoding_override<'a>(
fn set_url_query_pairs<'a>(
&self,
mut serializer: Serializer<UrlQuery<'a>>,
) -> Serializer<UrlQuery<'a>> {
url: &mut servo_url::ServoUrl,
pairs: impl Iterator<Item = (&'a str, String)>,
) {
let encoding = self.pick_encoding();
serializer.custom_encoding_override(move |s| encoding.encode(s).0);
serializer
url.as_mut_url()
.query_pairs_mut()
.encoding_override(Some(&|s| encoding.encode(s).0))
.clear()
.extend_pairs(pairs);
}

/// [Planned navigation](https://html.spec.whatwg.org/multipage/#planned-navigation)
Expand Down
2 changes: 1 addition & 1 deletion components/script/script_thread.rs
Expand Up @@ -123,6 +123,7 @@ use net_traits::{
Metadata, NetworkError, ReferrerPolicy, ResourceFetchTiming, ResourceThreads,
ResourceTimingType,
};
use percent_encoding::percent_decode;
use profile_traits::mem::{self as profile_mem, OpaqueSender, ReportsChan};
use profile_traits::time::{self as profile_time, profile, ProfilerCategory};
use script_layout_interface::message::{self, LayoutThreadInit, Msg, ReflowGoal};
Expand Down Expand Up @@ -160,7 +161,6 @@ use std::time::{Duration, SystemTime};
use style::dom::OpaqueNode;
use style::thread_state::{self, ThreadState};
use time::{at_utc, get_time, precise_time_ns, Timespec};
use url::percent_encoding::percent_decode;
use url::Position;
use webrender_api::units::LayoutPixel;
use webrender_api::{DocumentId, RenderApiSender};
Expand Down

0 comments on commit 9392180

Please sign in to comment.