diff --git a/Cargo.lock b/Cargo.lock index dac7d22d8ad..d0cdaf14f78 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -79,7 +79,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c77a0045eda8b888c76ea473c2b0515ba6f471d318f8927c5c72240937035a6" dependencies = [ "android-properties", - "bitflags", + "bitflags 1.3.2", "cc", "jni-sys", "libc", @@ -305,9 +305,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "binary-space-partition" @@ -331,7 +331,7 @@ version = "0.62.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6720a8b7b2d39dd533285ed438d458f65b31b5c257e6ac7bb3d7e82844dd722" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cexpr", "clang-sys", "lazy_static", @@ -374,6 +374,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6776fc96284a0bb647b615056fc496d1fe1644a7ab01829818a6d91cae888b84" + [[package]] name = "block" version = "0.1.6" @@ -433,7 +439,7 @@ dependencies = [ name = "bluetooth" version = "0.0.1" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bluetooth_traits", "device", "embedder_traits", @@ -610,7 +616,7 @@ dependencies = [ name = "canvas" version = "0.0.1" dependencies = [ - "bitflags", + "bitflags 1.3.2", "byteorder", "canvas_traits", "crossbeam-channel 0.4.4", @@ -767,7 +773,7 @@ checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ "ansi_term", "atty", - "bitflags", + "bitflags 1.3.2", "strsim", "textwrap", "unicode-width", @@ -811,7 +817,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "cocoa-foundation", "core-foundation 0.9.3", @@ -827,7 +833,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "core-foundation 0.9.3", "core-graphics-types", @@ -935,12 +941,12 @@ dependencies = [ [[package]] name = "content-security-policy" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1780f19455c4d346013dc4fb3e9c329c64c7c300b0ebeff786743f4b9f34ec0e" +checksum = "754c060c4a3342c5824d14caeba6c588716e9327f50558532685ef56718e0461" dependencies = [ - "base64 0.13.0", - "bitflags", + "base64 0.21.2", + "bitflags 2.3.1", "once_cell", "percent-encoding", "regex", @@ -1012,7 +1018,7 @@ version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation 0.9.3", "core-graphics-types", "foreign-types", @@ -1025,7 +1031,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e92f5d519093a4178296707dbaa3880eae85a5ef5386675f361a1cf25376e93c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation 0.9.3", "foreign-types", "libc", @@ -1203,7 +1209,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc7ed48e89905e5e146bcc1951cc3facb9e44aea9adf5dc01078cda1bd24b662" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libloading 0.5.2", "winapi", ] @@ -1350,7 +1356,7 @@ dependencies = [ name = "devtools_traits" version = "0.0.1" dependencies = [ - "bitflags", + "bitflags 1.3.2", "headers", "http", "ipc-channel", @@ -1669,7 +1675,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21fe28504d371085fae9ac7a3450f0b289ab71e07c8e57baa3fb68b9e57d6ce5" dependencies = [ - "bitflags", + "bitflags 1.3.2", "byteorder", "core-foundation 0.9.3", "core-graphics", @@ -1755,7 +1761,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" dependencies = [ - "bitflags", + "bitflags 1.3.2", "fuchsia-zircon-sys", ] @@ -1944,7 +1950,7 @@ name = "gfx" version = "0.0.1" dependencies = [ "app_units", - "bitflags", + "bitflags 1.3.2", "byteorder", "core-foundation 0.9.3", "core-graphics", @@ -1999,7 +2005,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54b43f06089866bdffe59b5a6801022c86b74d2c1dd28940a9cf301d3d014fbc" dependencies = [ "arrayvec 0.5.2", - "bitflags", + "bitflags 1.3.2", "gfx-auxil", "gfx-hal", "libloading 0.6.1", @@ -2022,7 +2028,7 @@ checksum = "375014deed24d76b03604736dd899f0925158a1a96db90cbefb9cce070f71af7" dependencies = [ "arrayvec 0.5.2", "bit-set", - "bitflags", + "bitflags 1.3.2", "d3d12", "gfx-auxil", "gfx-hal", @@ -2052,7 +2058,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "273d60d5207f96d99e0d11d0718995f67e56533a9df1444d83baf787f4c3cb32" dependencies = [ "arrayvec 0.5.2", - "bitflags", + "bitflags 1.3.2", "block", "cocoa-foundation", "copyless", @@ -2109,7 +2115,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18d0754f5b7a43915fd7466883b2d1bb0800d7cc4609178d0b27bf143b9e5123" dependencies = [ - "bitflags", + "bitflags 1.3.2", "raw-window-handle 0.3.3", ] @@ -2190,7 +2196,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "futures-channel", "futures-core", "futures-executor", @@ -2254,7 +2260,7 @@ version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce8664a114cd6ec16bece783d5eee59496919915b1f6884400ba4a953274a163" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 0.1.10", "futures-channel", "futures-core", @@ -2276,7 +2282,7 @@ version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "789784e8d42f5add1e1e965cf9f7e2d09e21dd0756bae6148f971db9a761d6a9" dependencies = [ - "bitflags", + "bitflags 1.3.2", "futures-core", "futures-sink", "glib", @@ -2310,7 +2316,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b0d857debf3abd07b85ec9ce59f0473009d8e3b00092ad9d3b9dafe44b10a01" dependencies = [ "array-init", - "bitflags", + "bitflags 1.3.2", "glib", "glib-sys", "gobject-sys", @@ -2342,7 +2348,7 @@ version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42552f75cc6c260b0be180d5c955f4cd74bd170289c622404c25f1210b521c12" dependencies = [ - "bitflags", + "bitflags 1.3.2", "glib", "glib-sys", "gobject-sys", @@ -2371,7 +2377,7 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7af26f75082a835541e09a347df10bf433533302e454487e532011e3c96d1d52" dependencies = [ - "bitflags", + "bitflags 1.3.2", "byteorder", "glib", "glib-sys", @@ -2407,7 +2413,7 @@ version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04b3497c644f0e4fa92195930801baabbae74ddb208a2a9f2127f36bf4d8f698" dependencies = [ - "bitflags", + "bitflags 1.3.2", "glib", "glib-sys", "gobject-sys", @@ -2477,7 +2483,7 @@ version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ad7e69a940246d41428c72072a376785716b3669da333cbee1156fd90574dc9" dependencies = [ - "bitflags", + "bitflags 1.3.2", "futures-channel", "futures-util", "glib", @@ -2603,7 +2609,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" dependencies = [ "base64 0.13.0", - "bitflags", + "bitflags 1.3.2", "bytes 1.1.0", "headers-core", "http", @@ -2994,7 +3000,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7668b7cff6a51fe61cdde64cd27c8a220786f399501b57ebe36f7d8112fd68" dependencies = [ - "bitflags", + "bitflags 1.3.2", "serde", "unicode-segmentation", ] @@ -3011,7 +3017,7 @@ version = "0.0.1" dependencies = [ "app_units", "atomic_refcell", - "bitflags", + "bitflags 1.3.2", "canvas_traits", "embedder_traits", "euclid", @@ -3056,7 +3062,7 @@ version = "0.0.1" dependencies = [ "app_units", "atomic_refcell", - "bitflags", + "bitflags 1.3.2", "canvas_traits", "cssparser", "embedder_traits", @@ -3562,7 +3568,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c4e8a431536529327e28c9ba6992f2cb0c15d4222f0602a16e6d7695ff3bccf" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "cocoa-foundation", "foreign-types", @@ -3576,7 +3582,7 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "core-graphics-types", "foreign-types", @@ -3800,7 +3806,7 @@ name = "naga" version = "0.2.0" source = "git+https://github.com/gfx-rs/naga?rev=b278e10ea7c144b2387585c4e81c1d86db8e2def#b278e10ea7c144b2387585c4e81c1d86db8e2def" dependencies = [ - "bitflags", + "bitflags 1.3.2", "fxhash", "log", "num-traits", @@ -3824,7 +3830,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "jni-sys", "ndk-sys", "num_enum", @@ -3853,7 +3859,7 @@ version = "0.0.1" dependencies = [ "async-recursion", "async-tungstenite", - "base64 0.10.1", + "base64 0.21.2", "brotli", "bytes 1.1.0", "content-security-policy", @@ -3963,7 +3969,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cc", "cfg-if 0.1.10", "libc", @@ -3976,7 +3982,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "libc", "memoffset", @@ -3989,7 +3995,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" dependencies = [ "autocfg", - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "libc", "memoffset", @@ -4228,7 +4234,7 @@ version = "0.10.50" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e30d8bc91859781f0a943411186324d580f2bbeb71b452fe91ae344806af3f1" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "foreign-types", "libc", @@ -4563,7 +4569,7 @@ version = "0.16.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crc32fast", "deflate", "miniz_oxide 0.3.7", @@ -4575,7 +4581,7 @@ version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crc32fast", "flate2", "miniz_oxide 0.6.2", @@ -4855,7 +4861,7 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -4864,7 +4870,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb02a9aee8e8c7ad8d86890f1e16b49e0bbbffc9961ff3788c31d57c98bcbf03" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -4914,7 +4920,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ece421e0c4129b90e4a35b6f625e472e96c552136f5093a2f4fa2bbb75a62d5" dependencies = [ "base64 0.10.1", - "bitflags", + "bitflags 1.3.2", "serde", ] @@ -4925,7 +4931,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86018df177b1beef6c7c8ef949969c4f7cb9a9344181b92486b23c79995bdaa4" dependencies = [ "base64 0.13.0", - "bitflags", + "bitflags 1.3.2", "serde", ] @@ -4956,7 +4962,7 @@ version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", @@ -4970,7 +4976,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", ] [[package]] @@ -5015,8 +5021,8 @@ dependencies = [ "arrayvec 0.7.1", "atomic_refcell", "backtrace", - "base64 0.10.1", - "bitflags", + "base64 0.21.2", + "bitflags 1.3.2", "bluetooth_traits", "canvas_traits", "chrono", @@ -5163,7 +5169,7 @@ dependencies = [ name = "script_traits" version = "0.0.1" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bluetooth_traits", "canvas_traits", "cookie 0.12.0", @@ -5217,7 +5223,7 @@ dependencies = [ name = "selectors" version = "0.24.0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cssparser", "derive_more", "fxhash", @@ -5802,7 +5808,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454" dependencies = [ - "bitflags", + "bitflags 1.3.2", "calloop", "dlib", "lazy_static", @@ -5866,7 +5872,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f5b132530b1ac069df335577e3581765995cba5a13995cdbbdbc8fb057c532c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "num-traits", ] @@ -5938,7 +5944,7 @@ dependencies = [ "arrayvec 0.7.1", "atomic_refcell", "bindgen", - "bitflags", + "bitflags 1.3.2", "byteorder", "cssparser", "derive_more", @@ -6025,7 +6031,7 @@ name = "style_traits" version = "0.0.1" dependencies = [ "app_units", - "bitflags", + "bitflags 1.3.2", "cssparser", "euclid", "lazy_static", @@ -6047,7 +6053,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4ebdfa54ba49e91f713e232973ca44ac493aa98e6fbf1366772ffdf9b9ddb3f" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "cgl", "cocoa", @@ -6818,7 +6824,7 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" dependencies = [ - "bitflags", + "bitflags 1.3.2", "downcast-rs", "libc", "nix 0.24.3", @@ -6857,7 +6863,7 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "wayland-client", "wayland-commons", "wayland-scanner", @@ -6933,7 +6939,7 @@ dependencies = [ name = "webdriver_server" version = "0.0.1" dependencies = [ - "base64 0.10.1", + "base64 0.21.2", "compositing", "cookie 0.12.0", "crossbeam-channel 0.4.4", @@ -6983,7 +6989,7 @@ dependencies = [ "backtrace", "base64 0.10.1", "bincode", - "bitflags", + "bitflags 1.3.2", "build-parallel", "byteorder", "cfg-if 0.1.10", @@ -7024,7 +7030,7 @@ name = "webrender_api" version = "0.61.0" dependencies = [ "app_units", - "bitflags", + "bitflags 1.3.2", "byteorder", "core-foundation 0.9.3", "core-graphics", @@ -7043,7 +7049,7 @@ dependencies = [ name = "webrender_build" version = "0.0.1" dependencies = [ - "bitflags", + "bitflags 1.3.2", "lazy_static", ] @@ -7108,7 +7114,7 @@ version = "0.6.0" source = "git+https://github.com/gfx-rs/wgpu?rev=e72724a6e393503c73f37e86aa9317a5c62e32b8#e72724a6e393503c73f37e86aa9317a5c62e32b8" dependencies = [ "arrayvec 0.5.2", - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "copyless", "fxhash", @@ -7135,7 +7141,7 @@ name = "wgpu-types" version = "0.6.0" source = "git+https://github.com/gfx-rs/wgpu?rev=e72724a6e393503c73f37e86aa9317a5c62e32b8#e72724a6e393503c73f37e86aa9317a5c62e32b8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "serde", ] @@ -7254,7 +7260,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f504e8c117b9015f618774f8d58cd4781f5a479bc41079c064f974cbb253874" dependencies = [ "android-activity", - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "core-foundation 0.9.3", "core-graphics", diff --git a/Cargo.toml b/Cargo.toml index db89ad5fa9b..2d262b86eea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ app_units = "0.7" atomic_refcell = "0.1.6" arrayvec = "0.7" backtrace = "0.3" -base64 = "0.10.1" +base64 = "0.21.2" bitflags = "1.0" byteorder = "1.0" encoding_rs = "0.8" diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs index cf99b0d8adb..fb40d40ac19 100644 --- a/components/net/fetch/methods.rs +++ b/components/net/fetch/methods.rs @@ -9,6 +9,7 @@ use crate::filemanager_thread::{FileManager, FILE_CHUNK_SIZE}; use crate::http_loader::{determine_requests_referrer, http_fetch, HttpState}; use crate::http_loader::{set_default_accept, set_default_accept_language}; use crate::subresource_integrity::is_response_integrity_valid; +use base64::Engine; use content_security_policy as csp; use crossbeam_channel::Sender; use devtools_traits::DevtoolsControlMsg; @@ -659,7 +660,8 @@ async fn scheme_fetch( if let Some((secret, bytes)) = data { let secret = str::from_utf8(secret).ok().and_then(|s| s.parse().ok()); if secret == Some(*net_traits::PRIVILEGED_SECRET) { - if let Ok(bytes) = base64::decode(&bytes[1..]) { + if let Ok(bytes) = base64::engine::general_purpose::STANDARD.decode(&bytes[1..]) + { context.state.extra_certs.add(bytes); } } diff --git a/components/net/subresource_integrity.rs b/components/net/subresource_integrity.rs index a823d3787c8..b0c8a431972 100644 --- a/components/net/subresource_integrity.rs +++ b/components/net/subresource_integrity.rs @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -use base64; +use base64::Engine; use generic_array::ArrayLength; use net_traits::response::{Response, ResponseBody, ResponseType}; use sha2::{Digest, Sha256, Sha384, Sha512}; @@ -123,7 +123,7 @@ fn apply_algorithm_to_response, D: Digest>( if let ResponseBody::Done(ref vec) = *body { hasher.update(vec); let response_digest = hasher.finalize(); //Now hash - base64::encode(&response_digest) + base64::engine::general_purpose::STANDARD.encode(&response_digest) } else { unreachable!("Tried to calculate digest of incomplete response body") } diff --git a/components/net/websocket_loader.rs b/components/net/websocket_loader.rs index cc9016cfa7b..1bdb8faec10 100644 --- a/components/net/websocket_loader.rs +++ b/components/net/websocket_loader.rs @@ -18,6 +18,7 @@ use crate::hosts::replace_host; use crate::http_loader::HttpState; use async_tungstenite::tokio::{client_async_tls_with_connector_and_config, ConnectStream}; use async_tungstenite::WebSocketStream; +use base64::Engine; use embedder_traits::resources::{self, Resource}; use futures::future::TryFutureExt; use futures::sink::SinkExt; @@ -93,7 +94,7 @@ fn create_request( } if resource_url.password().is_some() || resource_url.username() != "" { - let basic = base64::encode(&format!( + let basic = base64::engine::general_purpose::STANDARD.encode(&format!( "{}:{}", resource_url.username(), resource_url.password().unwrap_or("") diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index 5a1a880c274..5e0740c557f 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -25,7 +25,7 @@ use crate::realms::enter_realm; use crate::script_runtime::JSContext; use crate::task_source::file_reading::FileReadingTask; use crate::task_source::{TaskSource, TaskSourceName}; -use base64; +use base64::Engine; use dom_struct::dom_struct; use encoding_rs::{Encoding, UTF_8}; use js::jsapi::Heap; @@ -89,7 +89,7 @@ pub struct FileReaderSharedFunctionality; impl FileReaderSharedFunctionality { pub fn dataurl_format(blob_contents: &[u8], blob_type: String) -> DOMString { - let base64 = base64::encode(&blob_contents); + let base64 = base64::engine::general_purpose::STANDARD.encode(&blob_contents); let dataurl = if blob_type.is_empty() { format!("data:base64,{}", base64) diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index d12a7847d02..d18c87172d4 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -31,7 +31,7 @@ use crate::dom::virtualmethods::VirtualMethods; use crate::dom::webgl2renderingcontext::WebGL2RenderingContext; use crate::dom::webglrenderingcontext::WebGLRenderingContext; use crate::script_runtime::JSContext; -use base64; +use base64::Engine; use canvas_traits::canvas::{CanvasId, CanvasMsg, FromScriptMsg}; use canvas_traits::webgl::{GLContextAttributes, WebGLVersion}; use dom_struct::dom_struct; @@ -434,7 +434,7 @@ impl HTMLCanvasElementMethods for HTMLCanvasElement { let mut url = "data:image/png;base64,".to_owned(); // FIXME(nox): Should this use base64::URL_SAFE? // FIXME(nox): https://github.com/marshallpierce/rust-base64/pull/56 - base64::encode_config_buf(&png, base64::STANDARD, &mut url); + base64::engine::general_purpose::STANDARD.encode_string(&png, &mut url); Ok(USVString(url)) } diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 9b60272f6e7..705d976c97e 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -77,7 +77,7 @@ use crate::webdriver_handlers::jsval_to_webdriver; use crate::window_named_properties; use app_units::Au; use backtrace::Backtrace; -use base64; +use base64::Engine; use bluetooth_traits::BluetoothRequest; use canvas_traits::webgl::WebGLChan; use crossbeam_channel::{unbounded, Sender, TryRecvError}; @@ -577,7 +577,10 @@ pub fn base64_btoa(input: DOMString) -> Fallible { // "and then must apply the base64 algorithm to that sequence of // octets, and return the result. [RFC4648]" - Ok(DOMString::from(base64::encode(&octets))) + let config = + base64::engine::general_purpose::GeneralPurposeConfig::new().with_encode_padding(true); + let engine = base64::engine::GeneralPurpose::new(&base64::alphabet::STANDARD, config); + Ok(DOMString::from(engine.encode(&octets))) } } @@ -624,8 +627,12 @@ pub fn base64_atob(input: DOMString) -> Fallible { return Err(Error::InvalidCharacter); } - let data = base64::decode_config(&input, base64::STANDARD.decode_allow_trailing_bits(true)) - .map_err(|_| Error::InvalidCharacter)?; + let config = base64::engine::general_purpose::GeneralPurposeConfig::new() + .with_decode_padding_mode(base64::engine::DecodePaddingMode::RequireNone) + .with_decode_allow_trailing_bits(true); + let engine = base64::engine::GeneralPurpose::new(&base64::alphabet::STANDARD, config); + + let data = engine.decode(&input).map_err(|_| Error::InvalidCharacter)?; Ok(data.iter().map(|&b| b as char).collect::().into()) } diff --git a/components/webdriver_server/lib.rs b/components/webdriver_server/lib.rs index 49011af3283..7f03dd54244 100644 --- a/components/webdriver_server/lib.rs +++ b/components/webdriver_server/lib.rs @@ -17,7 +17,7 @@ mod actions; mod capabilities; use crate::actions::{InputSourceState, PointerInputState}; -use base64; +use base64::Engine; use capabilities::ServoCapabilities; use compositing::ConstellationMsg; use crossbeam_channel::{after, unbounded, Receiver, Sender}; @@ -1603,7 +1603,7 @@ impl Handler { .write_to(&mut png_data, ImageFormat::Png) .unwrap(); - Ok(base64::encode(png_data.get_ref())) + Ok(base64::engine::general_purpose::STANDARD.encode(png_data.get_ref())) } fn handle_take_screenshot(&self) -> WebDriverResult { diff --git a/servo-tidy.toml b/servo-tidy.toml index 88c1b553971..18b8180f810 100644 --- a/servo-tidy.toml +++ b/servo-tidy.toml @@ -48,6 +48,7 @@ packages = [ "time", "wasi", "wayland-sys", + "bitflags", # https://github.com/servo/servo/issues/26933 "bytes",