M65: Give "service" process its own Service Manager(s)

The cloud print proxy process (i.e. legacy "service" process) may launch
utility processes to do some out-of-process work. These utility
processes behave much like utility processes launched by the browser
process, and occasionally they request an interface from the browser in
order to get some work done.

Font caching behavior on Windows is exposed by the browser and is
sometimes needed from utility processes launched by the cloud print
process, but we don't currently have any way for the cloud print process
to expose interfaces back to utility processes. Such interface requests
will instead be silently ignored.

This CL gives every ServiceUtilityProcessHost its own isolated Service
Manager instance which knows how to route interface requests between the
service process and the single utility process launched by that host.
This in turn allows us to reuse common host interface registration
code to expose some interfaces from the service process.


Bug: 813101
Change-Id: I763033215d13535ba545ded7ef7e22fe5484b414
Reviewed-on: https://chromium-review.googlesource.com/924985
Commit-Queue: Ken Rockot <rockot@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#538617}
Reviewed-on: https://chromium-review.googlesource.com/933873
Cr-Commit-Position: refs/branch-heads/3325@{#598}
Cr-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369}
12 files changed