The CUPS Proxy Daemon is responsible for parsing HTTP(S) requests from the VM’s file socket (/run/cups_proxy/cups.sock) and passing that to the CupsProxyService in Ash Chrome via Mojo. It also relays the HTTP(S) response generated by CupsProxyService back to Plugin VM.
The control flow is as follows:
The Mojo IPC channel is bootstrapped via the org.chromium.CupsProxyDaemon D-Bus service.
libmicrohttpd is used to parse (and validate) HTTP(S) requests.
The HTTP(S) requests are actually IPP(S) requests - validation of the IPP(S) part of the protocol is performed by the CUPS Proxy Service.