Build an out of process IPP request validator outside of Chrome. This needs to be out of process to prevent bugs from compromising the Chrome process.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7f7c617584d1d34fc9e8971a87ed09252b99364c commit 7f7c617584d1d34fc9e8971a87ed09252b99364c Author: Luum Habtemariam <luum@chromium.org> Date: Wed Jul 18 00:41:18 2018 ARC CUPS API IPP request (oop)Validation service This service will serve the ARC CUPS API by accepting an IPP request via mojom calls, validate its format in a heavily restricted/jailed process, and return the result. This change just contains the scaffolding for the service, validation/jailing to follow soon. Test: WIP Bug: chromium:831913 Change-Id: I5cd88b82746d999743e3ebddfc6aef15e408506d Reviewed-on: https://chromium-review.googlesource.com/1121108 Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Ken Rockot <rockot@chromium.org> Commit-Queue: Luum Habtemariam <luum@chromium.org> Cr-Commit-Position: refs/heads/master@{#575877} [modify] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/app/BUILD.gn [modify] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/app/generated_resources.grd [modify] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/browser/DEPS [modify] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/browser/chrome_content_browser_client.cc [modify] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/browser/chrome_content_browser_manifest_overlay.json [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/BUILD.gn [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/OWNERS [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/cups_ipp_validator_service.cc [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/cups_ipp_validator_service.h [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/ipp_validator.cc [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/ipp_validator.h [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/manifest.json [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/public/mojom/BUILD.gn [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/public/mojom/OWNERS [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/public/mojom/constants.mojom [add] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/services/cups_ipp_validator/public/mojom/ipp_validator.mojom [modify] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/utility/BUILD.gn [modify] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/utility/DEPS [modify] https://crrev.com/7f7c617584d1d34fc9e8971a87ed09252b99364c/chrome/utility/chrome_content_utility_client.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8534f5dfa171e0091524ddae918c529325c1d0df commit 8534f5dfa171e0091524ddae918c529325c1d0df Author: Luum Habtemariam <luum@chromium.org> Date: Tue Aug 14 17:00:55 2018 Moving ScopedIppPtr to cups_ipp_util Move motivated by IppValidator chrome service that needs it. Bug: chromium:831913 Test: base_unitttests pass and manual printing succeeds Change-Id: Ia333819b30b2ea5953d1e219be799e89105e29cb Reviewed-on: https://chromium-review.googlesource.com/1164538 Reviewed-by: Sean Kau <skau@chromium.org> Commit-Queue: Luum Habtemariam <luum@chromium.org> Cr-Commit-Position: refs/heads/master@{#582948} [modify] https://crrev.com/8534f5dfa171e0091524ddae918c529325c1d0df/printing/backend/cups_ipp_util.cc [modify] https://crrev.com/8534f5dfa171e0091524ddae918c529325c1d0df/printing/backend/cups_ipp_util.h [modify] https://crrev.com/8534f5dfa171e0091524ddae918c529325c1d0df/printing/backend/cups_jobs.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fd11538737843611859d7b40a1a037e2e1781309 commit fd11538737843611859d7b40a1a037e2e1781309 Author: Luum Habtemariam <luum@chromium.org> Date: Tue Dec 18 02:31:36 2018 Add ParseIpp method to IppParser Chrome service Adding in IPP Parsing method and implementation to corresponding Chrome service. Parses arbitrary byte-buffers into rigorously formatted IPP requests to be validated later. To be used by ARC CUPS printing API, go/cros-cups-in-arc++ Bug: chromium:831913 Test: WIP Change-Id: I692e520e3a96a9ed35ef82c86f314589544404ee Reviewed-on: https://chromium-review.googlesource.com/c/1279300 Reviewed-by: Will Harris <wfh@chromium.org> Reviewed-by: Mattias Nissler <mnissler@chromium.org> Reviewed-by: Sean Kau <skau@chromium.org> Commit-Queue: Luum Habtemariam <luum@chromium.org> Cr-Commit-Position: refs/heads/master@{#617353} [modify] https://crrev.com/fd11538737843611859d7b40a1a037e2e1781309/chrome/services/cups_ipp_parser/BUILD.gn [add] https://crrev.com/fd11538737843611859d7b40a1a037e2e1781309/chrome/services/cups_ipp_parser/fake_ipp_parser.cc [modify] https://crrev.com/fd11538737843611859d7b40a1a037e2e1781309/chrome/services/cups_ipp_parser/ipp_parser.cc [modify] https://crrev.com/fd11538737843611859d7b40a1a037e2e1781309/chrome/services/cups_ipp_parser/ipp_parser.h [add] https://crrev.com/fd11538737843611859d7b40a1a037e2e1781309/chrome/services/cups_ipp_parser/ipp_parser_util.cc [add] https://crrev.com/fd11538737843611859d7b40a1a037e2e1781309/chrome/services/cups_ipp_parser/ipp_parser_util.h [modify] https://crrev.com/fd11538737843611859d7b40a1a037e2e1781309/chrome/services/cups_ipp_parser/public/mojom/ipp_parser.mojom
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c5f12aa2ca927d11c691fed3f3fc14523875e628 commit c5f12aa2ca927d11c691fed3f3fc14523875e628 Author: Luum Habtemariam <luum@chromium.org> Date: Thu Dec 20 01:32:20 2018 Nitpick: Adding quality of life using statement Somehow missed this in last CL(crrev.com/c/1328044). Bug: chromium:831913 Test: In following CL. Change-Id: Iecd964fb01c40c8590806c63f9443db591e04ed1 Reviewed-on: https://chromium-review.googlesource.com/c/1383309 Reviewed-by: Sean Kau <skau@chromium.org> Commit-Queue: Luum Habtemariam <luum@chromium.org> Cr-Commit-Position: refs/heads/master@{#618065} [modify] https://crrev.com/c5f12aa2ca927d11c691fed3f3fc14523875e628/chrome/services/cups_ipp_parser/ipp_parser.cc
Comment 1 by skau@chromium.org
, Apr 12 2018