diff options
-rw-r--r-- | Cargo.lock | 247 | ||||
-rw-r--r-- | Cargo.toml | 1 | ||||
-rw-r--r-- | components/net/Cargo.toml | 7 | ||||
-rw-r--r-- | components/net/websocket_loader.rs | 102 | ||||
-rw-r--r-- | servo-tidy.toml | 5 |
5 files changed, 98 insertions, 264 deletions
diff --git a/Cargo.lock b/Cargo.lock index cdcd328d3c7..d96e8c5364f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -197,7 +197,7 @@ checksum = "ad445822218ce64be7a341abfb0b1ea43b5c23aa83902542a4542e78309d8e5e" dependencies = [ "async-stream-impl", "futures-core", - "pin-project-lite 0.2.8", + "pin-project-lite", ] [[package]] @@ -213,17 +213,17 @@ dependencies = [ [[package]] name = "async-tungstenite" -version = "0.9.3" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce503a5cb1e7450af7d211b86b84807791b251f335b2f43f1e26b85a416f315" +checksum = "ce01ac37fdc85f10a43c43bc582cbd566720357011578a935761075f898baf58" dependencies = [ "futures-io", "futures-util", "log", "openssl", - "pin-project", - "tokio 0.2.24", - "tokio-openssl 0.4.0", + "pin-project-lite", + "tokio", + "tokio-openssl", "tungstenite", ] @@ -394,15 +394,6 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array 0.14.4", -] - -[[package]] -name = "block-buffer" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" @@ -577,12 +568,6 @@ dependencies = [ [[package]] name = "bytes" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" - -[[package]] -name = "bytes" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" @@ -1067,12 +1052,6 @@ dependencies = [ ] [[package]] -name = "cpuid-bool" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" - -[[package]] name = "crc32fast" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1263,6 +1242,12 @@ dependencies = [ ] [[package]] +name = "data-encoding" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" + +[[package]] name = "data-url" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1388,15 +1373,6 @@ dependencies = [ [[package]] name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.4", -] - -[[package]] -name = "digest" version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" @@ -1897,7 +1873,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.8", + "pin-project-lite", "pin-utils", "slab", ] @@ -2587,7 +2563,7 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 1.25.0", + "tokio", "tokio-util", "tracing", ] @@ -2648,7 +2624,7 @@ dependencies = [ "http", "httpdate", "mime", - "sha-1 0.10.0", + "sha-1 0.10.1", ] [[package]] @@ -2723,7 +2699,7 @@ checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" dependencies = [ "bytes 1.1.0", "http", - "pin-project-lite 0.2.8", + "pin-project-lite", ] [[package]] @@ -2760,9 +2736,9 @@ dependencies = [ "httparse", "httpdate", "itoa 1.0.1", - "pin-project-lite 0.2.8", + "pin-project-lite", "socket2", - "tokio 1.25.0", + "tokio", "tower-service", "tracing", "want", @@ -2781,8 +2757,8 @@ dependencies = [ "openssl", "openssl-sys", "parking_lot 0.12.0", - "tokio 1.25.0", - "tokio-openssl 0.6.3", + "tokio", + "tokio-openssl", "tower-layer", ] @@ -2878,15 +2854,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67f0347836f3f6362c1e7efdadde2b1c4b4556d211310b70631bae7eb692070b" [[package]] -name = "input_buffer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a8a95243d5a0398cae618ec29477c6e3cb631152be5c19481f80bc71559754" -dependencies = [ - "bytes 0.5.6", -] - -[[package]] name = "instant" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3526,7 +3493,7 @@ dependencies = [ "string_cache", "thin-slice", "time 0.1.45", - "tokio 1.25.0", + "tokio", "url", "uuid", "void", @@ -3882,24 +3849,6 @@ dependencies = [ ] [[package]] -name = "native-tls" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] name = "ndk" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3978,9 +3927,8 @@ dependencies = [ "sha2", "std_test_override", "time 0.1.45", - "tokio 0.2.24", - "tokio 1.25.0", - "tokio-openssl 0.6.3", + "tokio", + "tokio-openssl", "tokio-stream", "tokio-test", "tungstenite", @@ -4296,12 +4244,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] name = "openssl" version = "0.10.50" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -4328,12 +4270,6 @@ dependencies = [ ] [[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] name = "openssl-sys" version = "0.9.85" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -4664,12 +4600,6 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" - -[[package]] -name = "pin-project-lite" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" @@ -5160,15 +5090,6 @@ dependencies = [ ] [[package]] -name = "schannel" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" -dependencies = [ - "windows-sys 0.42.0", -] - -[[package]] name = "scoped-tls" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -5387,29 +5308,6 @@ dependencies = [ ] [[package]] -name = "security-framework" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69" -dependencies = [ - "bitflags", - "core-foundation 0.9.3", - "core-foundation-sys 0.8.3", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b" -dependencies = [ - "core-foundation-sys 0.8.3", - "libc", -] - -[[package]] name = "selectors" version = "0.24.0" dependencies = [ @@ -5847,27 +5745,25 @@ dependencies = [ "block-buffer 0.7.3", "digest 0.8.1", "fake-simd", - "opaque-debug 0.2.3", + "opaque-debug", ] [[package]] name = "sha-1" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "block-buffer 0.9.0", - "cfg-if 0.1.10", - "cpuid-bool", - "digest 0.9.0", - "opaque-debug 0.3.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.6", ] [[package]] -name = "sha-1" -version = "0.10.0" +name = "sha1" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -6578,23 +6474,6 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48" -dependencies = [ - "bytes 0.5.6", - "fnv", - "iovec", - "lazy_static", - "mio 0.6.22", - "num_cpus", - "pin-project-lite 0.1.11", - "slab", - "tokio-macros 0.2.6", -] - -[[package]] -name = "tokio" version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" @@ -6605,28 +6484,17 @@ dependencies = [ "memchr", "mio 0.8.6", "num_cpus", - "pin-project-lite 0.2.8", + "pin-project-lite", "socket2", - "tokio-macros 1.7.0", + "tokio-macros", "windows-sys 0.42.0", ] [[package]] name = "tokio-macros" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-macros" -version = "1.7.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", @@ -6635,16 +6503,6 @@ dependencies = [ [[package]] name = "tokio-openssl" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c4b08c5f4208e699ede3df2520aca2e82401b2de33f45e96696a074480be594" -dependencies = [ - "openssl", - "tokio 0.2.24", -] - -[[package]] -name = "tokio-openssl" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08f9ffb7809f1b20c1b398d92acf4cc719874b3b2b2d9ea2f09b4a80350878a" @@ -6652,7 +6510,7 @@ dependencies = [ "futures-util", "openssl", "openssl-sys", - "tokio 1.25.0", + "tokio", ] [[package]] @@ -6662,8 +6520,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6edf2d6bc038a43d31353570e27270603f4648d18f5ed10c0e179abe43255af" dependencies = [ "futures-core", - "pin-project-lite 0.2.8", - "tokio 1.25.0", + "pin-project-lite", + "tokio", ] [[package]] @@ -6675,7 +6533,7 @@ dependencies = [ "async-stream", "bytes 1.1.0", "futures-core", - "tokio 1.25.0", + "tokio", "tokio-stream", ] @@ -6688,8 +6546,8 @@ dependencies = [ "bytes 1.1.0", "futures-core", "futures-sink", - "pin-project-lite 0.2.8", - "tokio 1.25.0", + "pin-project-lite", + "tokio", "tracing", ] @@ -6722,7 +6580,7 @@ checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ "cfg-if 1.0.0", "log", - "pin-project-lite 0.2.8", + "pin-project-lite", "tracing-core", ] @@ -6764,20 +6622,19 @@ checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633" [[package]] name = "tungstenite" -version = "0.11.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0308d80d86700c5878b9ef6321f020f29b1bb9d5ff3cab25e75e23f3a492a23" +checksum = "15fba1a6d6bb030745759a9a2a588bfe8490fc8b4751a277db3a0be1c9ebbf67" dependencies = [ - "base64 0.12.0", "byteorder", - "bytes 0.5.6", + "bytes 1.1.0", + "data-encoding", "http", "httparse", - "input_buffer", "log", - "native-tls", - "rand 0.7.3", - "sha-1 0.9.1", + "rand 0.8.5", + "sha1", + "thiserror", "url", "utf-8", ] @@ -6984,7 +6841,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "tokio 1.25.0", + "tokio", "tokio-stream", "tokio-util", "tower-service", @@ -7173,7 +7030,7 @@ dependencies = [ "serde_derive", "serde_json", "time 0.3.21", - "tokio 1.25.0", + "tokio", "tokio-stream", "unicode-segmentation", "url", diff --git a/Cargo.toml b/Cargo.toml index b3d10eae1ea..9e7b7265ddb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,7 +73,6 @@ surfman-chains-api = "0.2" thin-slice = "0.1.0" time = "0.1.41" tokio = "1" -tokio2 = "0.2" unicode-bidi = "0.3.4" unicode-script = "0.5" url = "2.0" diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml index 5e9481fa599..773546efa7f 100644 --- a/components/net/Cargo.toml +++ b/components/net/Cargo.toml @@ -16,7 +16,7 @@ doctest = false [dependencies] async-recursion = "0.3.2" -async-tungstenite = { version = "0.9", features = ["tokio-openssl"] } +async-tungstenite = { version = "0.22", features = ["tokio-openssl"] } base64 = { workspace = true } brotli = "3" bytes = "1" @@ -60,10 +60,9 @@ servo_config = { path = "../config" } servo_url = { path = "../url" } sha2 = "0.10" time = { workspace = true } -tokio = { version = "1", package = "tokio", features = ["sync", "macros", "rt-multi-thread"] } -tokio2 = { version = "0.2", package = "tokio", features = ["sync", "macros", "rt-threaded", "tcp"] } +tokio = { workspace = true, features = ["sync", "macros", "rt-multi-thread"] } tokio-stream = "0.1" -tungstenite = "0.11" +tungstenite = "0.19" url = { workspace = true } uuid = { workspace = true } webrender_api = { git = "https://github.com/servo/webrender" } diff --git a/components/net/websocket_loader.rs b/components/net/websocket_loader.rs index a73b48e1f41..cc9016cfa7b 100644 --- a/components/net/websocket_loader.rs +++ b/components/net/websocket_loader.rs @@ -22,7 +22,7 @@ use embedder_traits::resources::{self, Resource}; use futures::future::TryFutureExt; use futures::sink::SinkExt; use futures::stream::StreamExt; -use http::header::{HeaderMap, HeaderName, HeaderValue}; +use http::header::{self, HeaderName, HeaderValue}; use ipc_channel::ipc::{IpcReceiver, IpcSender}; use ipc_channel::router::ROUTER; use net_traits::request::{RequestBuilder, RequestMode}; @@ -33,14 +33,13 @@ use servo_url::ServoUrl; use std::fs; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::{Arc, Mutex}; -use tokio2::net::TcpStream; -use tokio2::runtime::Runtime; -use tokio2::select; -use tokio2::sync::mpsc::{unbounded_channel, UnboundedReceiver}; -use tungstenite::error::Error; +use tokio::net::TcpStream; +use tokio::runtime::Runtime; +use tokio::select; +use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver}; use tungstenite::error::Result as WebSocketResult; +use tungstenite::error::{Error, ProtocolError, UrlError}; use tungstenite::handshake::client::{Request, Response}; -use tungstenite::http::header::{self as WSHeader, HeaderValue as WSHeaderValue}; use tungstenite::protocol::CloseFrame; use tungstenite::Message; use url::Url; @@ -65,20 +64,32 @@ fn create_request( ) -> WebSocketResult<Request> { let mut builder = Request::get(resource_url.as_str()); let headers = builder.headers_mut().unwrap(); - headers.insert("Origin", WSHeaderValue::from_str(origin)?); + headers.insert("Origin", HeaderValue::from_str(origin)?); + + let origin = resource_url.origin(); + let host = format!( + "{}", + origin + .host() + .ok_or_else(|| Error::Url(UrlError::NoHostName))? + ); + headers.insert("Host", HeaderValue::from_str(&host)?); + headers.insert("Connection", HeaderValue::from_static("upgrade")); + headers.insert("Upgrade", HeaderValue::from_static("websocket")); + headers.insert("Sec-Websocket-Version", HeaderValue::from_static("13")); + + let key = HeaderValue::from_str(&tungstenite::handshake::client::generate_key()).unwrap(); + headers.insert("Sec-WebSocket-Key", key); if !protocols.is_empty() { let protocols = protocols.join(","); - headers.insert( - "Sec-WebSocket-Protocol", - WSHeaderValue::from_str(&protocols)?, - ); + headers.insert("Sec-WebSocket-Protocol", HeaderValue::from_str(&protocols)?); } let mut cookie_jar = http_state.cookie_jar.write().unwrap(); cookie_jar.remove_expired_cookies_for_url(resource_url); if let Some(cookie_list) = cookie_jar.cookies_for_url(resource_url, CookieSource::HTTP) { - headers.insert("Cookie", WSHeaderValue::from_str(&cookie_list)?); + headers.insert("Cookie", HeaderValue::from_str(&cookie_list)?); } if resource_url.password().is_some() || resource_url.username() != "" { @@ -89,7 +100,7 @@ fn create_request( )); headers.insert( "Authorization", - WSHeaderValue::from_str(&format!("Basic {}", basic))?, + HeaderValue::from_str(&format!("Basic {}", basic))?, ); } @@ -110,18 +121,18 @@ fn process_ws_response( trace!("processing websocket http response for {}", resource_url); let mut protocol_in_use = None; if let Some(protocol_name) = response.headers().get("Sec-WebSocket-Protocol") { - let protocol_name = protocol_name.to_str().unwrap(); + let protocol_name = protocol_name.to_str().unwrap_or(""); if !protocols.is_empty() && !protocols.iter().any(|p| protocol_name == (*p)) { - return Err(Error::Protocol( - "Protocol in use not in client-supplied protocol list".into(), - )); + return Err(Error::Protocol(ProtocolError::InvalidHeader( + HeaderName::from_static("sec-websocket-protocol"), + ))); } protocol_in_use = Some(protocol_name.to_string()); } let mut jar = http_state.cookie_jar.write().unwrap(); // TODO(eijebong): Replace thise once typed headers settled on a cookie impl - for cookie in response.headers().get_all(WSHeader::SET_COOKIE) { + for cookie in response.headers().get_all(header::SET_COOKIE) { if let Ok(s) = std::str::from_utf8(cookie.as_bytes()) { if let Some(cookie) = Cookie::from_cookie_string(s.into(), resource_url, CookieSource::HTTP) @@ -131,23 +142,11 @@ fn process_ws_response( } } - // We need to make a new header map here because tungstenite depends on - // a more recent version of http than the rest of the network stack, so the - // HeaderMap types are incompatible. - let mut headers = HeaderMap::new(); - for (key, value) in response.headers().iter() { - if let (Ok(key), Ok(value)) = ( - HeaderName::from_bytes(key.as_ref()), - HeaderValue::from_bytes(value.as_ref()), - ) { - headers.insert(key, value); - } - } http_state .hsts_list .write() .unwrap() - .update_hsts_list_from_response(resource_url, &headers); + .update_hsts_list_from_response(resource_url, &response.headers()); Ok(protocol_in_use) } @@ -283,6 +282,10 @@ async fn run_ws_loop( )); break; } + + Message::Frame(_) => { + warn!("Unexpected websocket frame message"); + } } } } @@ -309,20 +312,20 @@ async fn start_websocket( let host_str = client .uri() .host() - .ok_or_else(|| Error::Url("No host string".into()))?; + .ok_or_else(|| Error::Url(UrlError::NoHostName))?; let host = replace_host(host_str); - let mut net_url = - Url::parse(&client.uri().to_string()).map_err(|e| Error::Url(e.to_string().into()))?; + let mut net_url = Url::parse(&client.uri().to_string()) + .map_err(|e| Error::Url(UrlError::UnableToConnect(e.to_string())))?; net_url .set_host(Some(&host)) - .map_err(|e| Error::Url(e.to_string().into()))?; + .map_err(|e| Error::Url(UrlError::UnableToConnect(e.to_string())))?; let domain = net_url .host() - .ok_or_else(|| Error::Url("No host string".into()))?; + .ok_or_else(|| Error::Url(UrlError::NoHostName))?; let port = net_url .port_or_known_default() - .ok_or_else(|| Error::Url("Unknown port".into()))?; + .ok_or_else(|| Error::Url(UrlError::UnableToConnect("Unknown port".into())))?; let try_socket = TcpStream::connect((&*domain.to_string(), port)).await; let socket = try_socket.map_err(Error::Io)?; @@ -366,32 +369,13 @@ fn connect( }; // https://fetch.spec.whatwg.org/#websocket-opening-handshake - // By standard, we should work with an http(s):// URL (req_url), - // but as ws-rs expects to be called with a ws(s):// URL (net_url) - // we upgrade ws to wss, so we don't have to convert http(s) back to ws(s). http_state .hsts_list .read() .unwrap() .apply_hsts_rules(&mut req_builder.url); - let scheme = req_builder.url.scheme(); - let mut req_url = req_builder.url.clone(); - match scheme { - "ws" => { - req_url - .as_mut_url() - .set_scheme("http") - .map_err(|()| "couldn't replace scheme".to_string())?; - }, - "wss" => { - req_url - .as_mut_url() - .set_scheme("https") - .map_err(|()| "couldn't replace scheme".to_string())?; - }, - _ => {}, - } + let req_url = req_builder.url.clone(); if should_be_blocked_due_to_bad_port(&req_url) { return Err("Port blocked".to_string()); @@ -403,7 +387,7 @@ fn connect( }; let client = match create_request( - &req_builder.url, + &req_url, &req_builder.origin.ascii_serialization(), &protocols, &*http_state, diff --git a/servo-tidy.toml b/servo-tidy.toml index 43bed5a0b93..1c67e86c387 100644 --- a/servo-tidy.toml +++ b/servo-tidy.toml @@ -59,10 +59,6 @@ packages = [ "bytes", "futures", "mio", - "pin-project-lite", - "tokio", - "tokio-macros", - "tokio-openssl", # https://github.com/servo/servo/pull/23288#issuecomment-494687746 "gl_generator", @@ -79,7 +75,6 @@ packages = [ "block-buffer", "digest", "generic-array", - "opaque-debug", "sha-1", # Duplicated by winit/surfman update. |