ladybird/Services
Luke Wilde 2dead9231d RequestServer: Handle client disappearance more gracefully
Without these fixes, RequestServer was likely to crash if the client
crashed (e.g. WebContent). This was because there was no error handling
for when writing to the client failed.

This is particularly an issue because RequestServer has shared
instances, so it would then crash every other client of RequestServer.
Then, because another RequestServer instance is not currently spun up,
it becomes impossible to start any clients that need a RequestServer
instance. Recreating a RequestServer should also be handled, but that's
not in the scope of this change.

We can tell curl that we failed to write data to the client and that
the request should be aborted by returning `CURL_WRITEFUNC_ERROR` from
the write callback.

It is also possible for requests to be destroyed with buffered data,
which is normal to happen if the client disappears
(i.e. ConnectionFromClient is destroyed) or the request is cancelled by
the client. We log a warning in case this is not expected, to assist
with debugging related issues.
2025-06-13 17:03:57 +02:00
..
ImageDecoder Everywhere: Make TransportSocket non-movable 2025-04-09 15:27:52 +02:00
RequestServer RequestServer: Handle client disappearance more gracefully 2025-06-13 17:03:57 +02:00
WebContent Everywhere: Implement persistence of localStorage using sqlite 2025-06-12 17:04:35 +02:00
WebDriver LibWebView+WebDriver+UI: Migrate headless browsing to main Ladybird exe 2025-06-10 12:04:59 -04:00
WebWorker LibWeb: Don't drop messages received before MessagePort is enabled 2025-06-08 18:26:13 +02:00
CMakeLists.txt Everywhere: Hoist the Services folder to the top-level 2024-11-10 12:50:45 +01:00