tree: 3284febb8e7a9404447b50325c18f38db81dd48d [path history] [tgz]
  1. dbus/
  2. docs/
  3. init/
  4. mojom/
  5. seccomp/
  6. tmpfiles.d/
  7. BUILD.gn
  8. daemon.cc
  9. daemon.h
  10. DIR_METADATA
  11. main.cc
  12. mhd_http_request.cc
  13. mhd_http_request.h
  14. mhd_http_request_test.cc
  15. mhd_util.cc
  16. mhd_util.h
  17. mojo_handler.cc
  18. mojo_handler.h
  19. OWNERS
  20. README.md
cups_proxy/README.md

CUPS Proxy Daemon

Summary

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:

Control Flow Diagram

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.

Design docs