[Service Manager] Get rid of dynamic service discovery
Dynamic service discovery introduces complexity and nondeterminism in
the Service Manager, and its implementation was never quite production-
ready.
This CL removes all of that support, instead requiring a static
service catalog configuration to be provided. Support remains for
dynamic manifest discovery via ManifestProvider in order to satisfy
content layering requirements.
The interesting and interdependent high-level changes covered here:
- No more Packages directory; service binaries live in root_out_dir
- Catalog no longer touches disk for any metadata
- service_manifest and catalog target settings have less redundancy
- service_manifest and catalog outputs go in the target_gen_dir now
- service_manifest_overlay behavior has been merged into service_manifest
- Service Manager may be constructed with a static catalog manifest
- BackgroundServiceManager no longer owns EDK init/shutdown
- SM::StartEmbedderService -> SM::RegisterService, more generic API
- The "service overrides" concept is no longer useful and thus removed
- All SM embedders, including test suites, are now configured with
their own static catalog manifest at runtime.
BUG=677194,672614
TEST=standalone mash_session works, chrome --mash works, mash_browser_tests, various mus and SM-related unit tests all operating normally
TBR=sky@chromium.org
TBR=xhwang@chromium.org
Review-Url: https://codereview.chromium.org/2645973006
Cr-Commit-Position: refs/heads/master@{#445678}
89 files changed