servo: Merge #2908 - Ignore spaces in base64 data URLs. Fix #1268 (from SimonSapin:base64-space)

Source-Repo: https://github.com/servo/servo
Source-Revision: 8521f7c7526e0e5bcda51211743c756718ff91e0
This commit is contained in:
Simon Sapin 2014-07-23 20:10:29 +01:00
parent da2cce1fcb
commit b38c151c70

View File

@ -64,6 +64,9 @@ fn load(load_data: LoadData, start_chan: Sender<LoadResponse>) {
let bytes = percent_decode(parts.get(1).as_bytes());
if is_base64 {
// FIXME(#2909): Its unclear what to do with non-alphabet characters,
// but Acid 3 apparently depends on spaces being ignored.
let bytes = bytes.move_iter().filter(|&b| b != ' ' as u8).collect::<Vec<u8>>();
// FIXME(#2877): use bytes.as_slice().from_base64() when we upgrade to a Rust version
// that includes https://github.com/rust-lang/rust/pull/15810
let fake_utf8 = unsafe { str::raw::from_utf8(bytes.as_slice()) };