diff --git a/Cargo.lock b/Cargo.lock index c69fb45df73c..0da8ef92757e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -632,7 +632,6 @@ name = "devtools" version = "0.0.1" dependencies = [ "devtools_traits 0.0.1", - "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.10.10 (registry+https://github.com/rust-lang/crates.io-index)", "hyper_serde 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/components/devtools/Cargo.toml b/components/devtools/Cargo.toml index 9b5a2164bb80..067d7750470d 100644 --- a/components/devtools/Cargo.toml +++ b/components/devtools/Cargo.toml @@ -11,7 +11,6 @@ path = "lib.rs" [dependencies] devtools_traits = {path = "../devtools_traits"} -encoding = "0.2" hyper = "0.10" hyper_serde = "0.6" ipc-channel = "0.7" diff --git a/components/devtools/actors/network_event.rs b/components/devtools/actors/network_event.rs index d05d21cc882e..0906971821a6 100644 --- a/components/devtools/actors/network_event.rs +++ b/components/devtools/actors/network_event.rs @@ -9,8 +9,6 @@ use actor::{Actor, ActorMessageStatus, ActorRegistry}; use devtools_traits::HttpRequest as DevtoolsHttpRequest; use devtools_traits::HttpResponse as DevtoolsHttpResponse; -use encoding::all::UTF_8; -use encoding::types::{DecoderTrap, Encoding}; use hyper::header::{ContentType, Cookie}; use hyper::header::Headers; use hyper::http::RawStatus; @@ -361,7 +359,7 @@ impl NetworkEventActor { pub fn add_response(&mut self, response: DevtoolsHttpResponse) { self.response.headers = response.headers.clone(); self.response.status = response.status.as_ref().map(|&(s, ref st)| { - let status_text = UTF_8.decode(st, DecoderTrap::Replace).unwrap(); + let status_text = String::from_utf8_lossy(st).into_owned(); RawStatus(s, Cow::from(status_text)) }); self.response.body = response.body.clone(); diff --git a/components/devtools/lib.rs b/components/devtools/lib.rs index 380c5c852366..25697e9410a0 100644 --- a/components/devtools/lib.rs +++ b/components/devtools/lib.rs @@ -15,7 +15,6 @@ #![feature(box_syntax)] extern crate devtools_traits; -extern crate encoding; extern crate hyper; extern crate ipc_channel; #[macro_use] diff --git a/components/script/body.rs b/components/script/body.rs index 1967d69cf505..80c9be5d49fb 100644 --- a/components/script/body.rs +++ b/components/script/body.rs @@ -11,8 +11,6 @@ use dom::blob::{Blob, BlobImpl}; use dom::formdata::FormData; use dom::globalscope::GlobalScope; use dom::promise::Promise; -use encoding::all::UTF_8; -use encoding::types::{DecoderTrap, Encoding}; use js::jsapi::JSContext; use js::jsapi::JS_ClearPendingException; use js::jsapi::JS_ParseJSON; @@ -110,14 +108,13 @@ fn run_package_data_algorithm(object: &T, } fn run_text_data_algorithm(bytes: Vec) -> Fallible { - let text = UTF_8.decode(&bytes, DecoderTrap::Replace).unwrap(); - Ok(FetchedData::Text(text)) + Ok(FetchedData::Text(String::from_utf8_lossy(&bytes).into_owned())) } #[allow(unsafe_code)] fn run_json_data_algorithm(cx: *mut JSContext, bytes: Vec) -> Fallible { - let json_text = UTF_8.decode(&bytes, DecoderTrap::Replace).unwrap(); + let json_text = String::from_utf8_lossy(&bytes); let json_text: Vec = json_text.encode_utf16().collect(); rooted!(in(cx) let mut rval = UndefinedValue()); unsafe { diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index c076282dcc14..ddf14fc80965 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -12,8 +12,6 @@ use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; use dom_struct::dom_struct; -use encoding::all::UTF_8; -use encoding::types::{EncoderTrap, Encoding}; use ipc_channel::ipc; use net_traits::{CoreResourceMsg, IpcSend}; use net_traits::blob_url_store::{BlobBuf, get_blob_origin}; @@ -337,12 +335,11 @@ pub fn blob_parts_to_bytes(blobparts: Vec) -> Result, ()> for blobpart in &blobparts { match blobpart { &BlobOrString::String(ref s) => { - let mut bytes = UTF_8.encode(s, EncoderTrap::Replace).map_err(|_|())?; - ret.append(&mut bytes); + ret.extend(s.as_bytes()); }, &BlobOrString::Blob(ref b) => { - let mut bytes = b.get_bytes().unwrap_or(vec![]); - ret.append(&mut bytes); + let bytes = b.get_bytes().unwrap_or(vec![]); + ret.extend(bytes); }, } } diff --git a/components/script/dom/textencoder.rs b/components/script/dom/textencoder.rs index 765c95ade0be..5cdbeca1dd32 100644 --- a/components/script/dom/textencoder.rs +++ b/components/script/dom/textencoder.rs @@ -11,9 +11,6 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::{DOMString, USVString}; use dom::globalscope::GlobalScope; use dom_struct::dom_struct; -use encoding::EncoderTrap; -use encoding::Encoding; -use encoding::all::UTF_8; use js::jsapi::{JSContext, JSObject}; use js::typedarray::{Uint8Array, CreateWith}; use std::ptr; @@ -45,13 +42,13 @@ impl TextEncoder { impl TextEncoderMethods for TextEncoder { // https://encoding.spec.whatwg.org/#dom-textencoder-encoding fn Encoding(&self) -> DOMString { - DOMString::from(UTF_8.name()) + DOMString::from("utf-8") } #[allow(unsafe_code)] // https://encoding.spec.whatwg.org/#dom-textencoder-encode unsafe fn Encode(&self, cx: *mut JSContext, input: USVString) -> NonZero<*mut JSObject> { - let encoded = UTF_8.encode(&input.0, EncoderTrap::Strict).unwrap(); + let encoded = input.0.as_bytes(); rooted!(in(cx) let mut js_object = ptr::null_mut()); assert!(Uint8Array::create(cx, CreateWith::Slice(&encoded), js_object.handle_mut()).is_ok());