ladybird/Services/RequestServer
Aliaksandr Kalenik 4ea4d63008 Everywhere: Replace Unix socket IPC transport with Mach ports on macOS
On macOS, use Mach port messaging instead of Unix domain sockets for
all IPC transport. This makes the transport capable of carrying Mach
port rights as message attachments, which is a prerequisite for sending
IOSurface handles over the main IPC channel (currently sent via a
separate out-of-band path). It also avoids the need for the FD
acknowledgement protocol that TransportSocket requires, since Mach port
right transfers are atomic in the kernel.

Three connection establishment patterns:

- Spawned helper processes (WebContent, RequestServer, etc.) use the
  existing MachPortServer: the child sends its task port with a reply
  port, and the parent responds with a pre-created port pair.

- Socket-bootstrapped connections (WebDriver, BrowserProcess) exchange
  Mach port names over the socket, then drop the socket.

- Pre-created pairs for IPC tests and in-message transport transfer.

Attachment on macOS now wraps a MachPort instead of a file descriptor,
converting between the two via fileport_makeport()/fileport_makefd().

The LibIPC socket transport tests are disabled on macOS since they are
socket-specific.
2026-03-23 18:50:48 +01:00
..
CacheLevel.h Everywhere: Hoist the Services folder to the top-level 2024-11-10 12:50:45 +01:00
CMakeLists.txt RequestServer: Add --resource-map option for URL-to-file substitution 2026-01-19 10:23:26 +01:00
ConnectionFromClient.cpp LibIPC: Return TransportHandle directly from create_paired() 2026-03-14 18:25:18 +01:00
ConnectionFromClient.h LibIPC+LibWeb+LibWebView+Services: Add IPC::TransportHandle 2026-03-12 20:32:55 +01:00
CURL.cpp LibRequests+RequestServer: Add an error code for CURLE_PARTIAL_FILE 2026-01-08 11:59:12 +01:00
CURL.h RequestServer: Move some cURL utilities to their own file 2025-10-28 11:52:51 +01:00
Forward.h LibHTTP+RequestServer: Move the HTTP cache implementation to LibHTTP 2025-11-29 08:35:02 -05:00
main.cpp Everywhere: Replace Unix socket IPC transport with Mach ports on macOS 2026-03-23 18:50:48 +01:00
Request.cpp RequestServer: Check for curl errors before sending headers 2026-03-12 13:17:18 -04:00
Request.h LibWeb+RequestServer: Attach HTTP cookie headers from RequestServer 2026-02-10 12:21:20 +01:00
RequestClient.ipc LibWeb+RequestServer: Attach HTTP cookie headers from RequestServer 2026-02-10 12:21:20 +01:00
RequestPipe.cpp RequestServer: Increase RequestPipe socket buffer sizes 2026-03-15 09:06:06 -04:00
RequestPipe.h LibCore+RequestServer: Return size_t from system read/write functions 2025-12-01 16:29:48 +01:00
RequestServer.ipc LibIPC+LibWeb+LibWebView+Services: Add IPC::TransportHandle 2026-03-12 20:32:55 +01:00
Resolver.cpp RequestServer: Move Resolver (and related structures) to its own file 2025-10-28 11:52:51 +01:00
Resolver.h RequestServer: Move Resolver (and related structures) to its own file 2025-10-28 11:52:51 +01:00
ResourceSubstitutionMap.cpp RequestServer: Add --resource-map option for URL-to-file substitution 2026-01-19 10:23:26 +01:00
ResourceSubstitutionMap.h RequestServer: Add --resource-map option for URL-to-file substitution 2026-01-19 10:23:26 +01:00
WebSocketImplCurl.cpp LibWebSocket+RequestServer: Handle connection drop during closing 2026-03-13 17:28:06 +01:00
WebSocketImplCurl.h RequestServer: Enable in Windows CI 2025-08-23 16:04:36 -06:00