net: Refactor Decoder (#33611)

* Refactor Decoder to be fully async

Signed-off-by: crbrz <cristianb@gmail.com>

* Update WPT results

Signed-off-by: crbrz <cristianb@gmail.com>

* Fix deflate unit test

Signed-off-by: crbrz <cristianb@gmail.com>

* Add compressed response update count test

Signed-off-by: crbrz <cristianb@gmail.com>

* Fix typo

Signed-off-by: crbrz <cristianb@gmail.com>

* Source error check without conversion to String

Signed-off-by: crbrz <cristianb@gmail.com>

* Simplify error check

Signed-off-by: crbrz <cristianb@gmail.com>

* Fix variable name

Signed-off-by: crbrz <cristianb@gmail.com>

* Added TODO note for network.tls.ignore_unexpected_eof

Signed-off-by: crbrz <cristianb@gmail.com>

---------

Signed-off-by: crbrz <cristianb@gmail.com>
This commit is contained in:
Cristian Brinza 2024-10-02 19:59:31 +03:00 committed by GitHub
parent c682172440
commit c7a4e4f627
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 278 additions and 457 deletions

View file

@ -15,11 +15,11 @@ test = false
doctest = false
[dependencies]
async-compression = { version = "0.4.12", default-features = false, features = ["tokio", "brotli", "gzip", "zlib"] }
async-recursion = "1.1"
async-tungstenite = { workspace = true }
base = { workspace = true }
base64 = { workspace = true }
brotli = "3"
bytes = "1"
content-security-policy = { workspace = true }
cookie = { workspace = true }
@ -27,8 +27,9 @@ crossbeam-channel = { workspace = true }
data-url = { workspace = true }
devtools_traits = { workspace = true }
embedder_traits = { workspace = true }
flate2 = "1"
futures = { version = "0.3", package = "futures" }
futures-core = { version = "0.3.30", default-features = false }
futures-util = { version = "0.3.30", default-features = false }
generic-array = "0.14"
headers = { workspace = true }
http = { workspace = true }
@ -37,7 +38,6 @@ hyper-rustls = { workspace = true }
hyper_serde = { workspace = true }
imsz = { workspace = true }
ipc-channel = { workspace = true }
libflate = "0.1"
log = { workspace = true }
malloc_size_of = { workspace = true }
malloc_size_of_derive = { workspace = true }
@ -60,6 +60,7 @@ sha2 = "0.10"
chrono = { workspace = true }
time_03 = { workspace = true }
tokio = { workspace = true, features = ["sync", "macros", "rt-multi-thread"] }
tokio-util = { version = "0.7.12", default-features = false, features = ["codec", "io"] }
tokio-rustls = { workspace = true }
tokio-stream = "0.1"
tungstenite = { workspace = true }
@ -70,6 +71,7 @@ webrender_traits = { workspace = true }
webpki-roots = { workspace = true }
[dev-dependencies]
flate2 = "1"
futures = { version = "0.3", features = ["compat"] }
tokio-test = "0.4"
tokio-stream = { version = "0.1", features = ["net"] }