ladybird/Userland/Libraries/LibWeb/Fetch
Timothy Flynn bfc9dc447f AK+LibWeb: Replace our home-grown base64 encoder/decoders with simdutf
We currently have 2 base64 coders: one in AK, another in LibWeb for a
"forgiving" implementation. ECMA-262 has an upcoming proposal which will
require a third implementation.

Instead, let's use the base64 implementation that is used by Node.js and
recommended by the upcoming proposal. It handles forgiving decoding as
well.

Our users of AK's implementation should be fine with the forgiving
implementation. The AK impl originally had naive forgiving behavior, but
that was removed solely for performance reasons.

Using http://mattmahoney.net/dc/enwik8.zip (100MB unzipped) as a test,
performance of our old home-grown implementations vs. the simdutf
implementation (on Linux x64):

                Encode    Decode
AK base64       0.226s    0.169s
LibWeb base64   N/A       1.244s
simdutf         0.161s    0.047s
2024-07-16 10:27:39 +02:00
..
Fetching LibWeb/Fetch: Use correct header for prefetch requests 2024-07-14 12:08:20 +02:00
Infrastructure AK+LibWeb: Replace our home-grown base64 encoder/decoders with simdutf 2024-07-16 10:27:39 +02:00
Body.cpp LibWeb: Change Fetch's ProcessBodyError to accept a plain JS value 2024-05-20 16:57:52 -04:00
Body.h LibWeb/Fetch: Implement Body::bytes() 2024-05-19 16:25:50 +02:00
Body.idl LibWeb/Fetch: Implement Body::bytes() 2024-05-19 16:25:50 +02:00
BodyInit.cpp LibWeb: Enqueue body chunks in Fetch::extract_body() 2024-05-20 16:57:52 -04:00
BodyInit.h LibWeb: Rename URL platform object to DOMURL 2024-02-25 08:54:31 +01:00
BodyInit.idl LibWeb: Rename URL platform object to DOMURL 2024-02-25 08:54:31 +01:00
Enums.cpp LibWeb/Fetch: Support setting request priority from JS 2024-05-07 17:27:37 -06:00
Enums.h LibWeb/Fetch: Support setting request priority from JS 2024-05-07 17:27:37 -06:00
FetchMethod.cpp LibWeb/Fetch: Don't crash when a fetch request times out 2024-04-14 13:36:25 +02:00
FetchMethod.h LibWeb/HTML: Port Window.fetch() to IDL 2023-03-07 23:33:34 +00:00
Headers.cpp LibWeb: Remove OOM propagation from Fetch::Headers 2024-04-28 12:32:04 +02:00
Headers.h LibWeb: Remove OOM propagation from Fetch::Headers 2024-04-28 12:32:04 +02:00
Headers.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
HeadersIterator.cpp LibWeb: Remove OOM propagation from Fetch::Infrastructure::Headers 2024-04-27 07:08:14 +02:00
HeadersIterator.h LibWeb: Remove OOM propagation from Fetch::Infrastructure::Headers 2024-04-27 07:08:14 +02:00
Request.cpp LibWeb/Fetch: Support setting request priority from JS 2024-05-07 17:27:37 -06:00
Request.h LibWeb/Fetch: Support setting request priority from JS 2024-05-07 17:27:37 -06:00
Request.idl LibWeb/Fetch: Support setting request priority from JS 2024-05-07 17:27:37 -06:00
Response.cpp LibWeb: Assign the Content-Type fetch response header as appropriate 2024-04-28 12:32:04 +02:00
Response.h LibWeb: Remove OOM propagation from Fetch::Response 2024-04-28 12:32:04 +02:00
Response.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00