mirror of
https://github.com/RGBCube/serenity
synced 2025-06-01 11:48:13 +00:00
![]() Parsing 'data:' URLs took it's own route. It never set standard URL fields like path, query or fragment (except for scheme) and instead gave us separate methods called `data_payload()`, `data_mime_type()`, and `data_payload_is_base64()`. Because parsing 'data:' didn't use standard fields, running the following JS code: new URL('#a', 'data:text/plain,hello').toString() not only cleared the path as URLParser doesn't check for data from data_payload() function (making the result be 'data:#a'), but it also crashes the program because we forbid having an empty MIME type when we serialize to string. With this change, 'data:' URLs will be parsed like every other URLs. To decode the 'data:' URL contents, one needs to call process_data_url() on a URL, which will return a struct containing MIME type with already decoded data! :^) |
||
---|---|---|
.. | ||
Fetching | ||
Infrastructure | ||
Body.cpp | ||
Body.h | ||
Body.idl | ||
BodyInit.cpp | ||
BodyInit.h | ||
BodyInit.idl | ||
Enums.cpp | ||
Enums.h | ||
FetchMethod.cpp | ||
FetchMethod.h | ||
Headers.cpp | ||
Headers.h | ||
Headers.idl | ||
HeadersIterator.cpp | ||
HeadersIterator.h | ||
Request.cpp | ||
Request.h | ||
Request.idl | ||
Response.cpp | ||
Response.h | ||
Response.idl |