Today's Google Doodle is an animated GIF for the Fourth of July, with 72 frames. It looks like ImageDecoder tries to send back the decoded bitmaps with one fd per frame, and there is a hardcoded limit of 64 fds per transfer:
ladybird/Userland/Libraries/LibCore/Socket.cpp
Lines 372 to 373 in fce8ed1
This means that opening the Google homepage causes ImageDecoder to crash with Too many file descriptors to send
. I'm not sure the best way to fix this -- I tried locally bumping MAX_LOCAL_SOCKET_TRANSFER_FDS
to 128, which worked for the Google Doodle, but obviously doesn't fix the underlying issue (what if there was an animated gif with >128 frames....).
Here's the image if it's useful as a test case:
https://www.google.com/logos/doodles/2024/fourth-of-july-2024-6753651837110246-law.gif
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too