Basic Audio Service hosting mojom::SystemInfo

In this CL:
* //services/audio infrastructure
* AudioDeviceDescription type mapping - may need to be moved to //media? (Someday we want it all
to be in //audio though.)
* Build files/dependencies - please review vigorously, I'm not sure everything is fine there.
* mojom::SystemInfo interface and implementation on top of AudioManager,
* Service implementation.
* AudioSystemToMojoAdapter: client-side media::AudioSystem implementation on top of
mojom::SystemInfo
* Unit tests.
* A fix for Connector::BindInterface() when there are binder overrides available (see discussion
in PS17)

Upcoming CLs for AudioService infrastructure:
- Run in-process Audio service and
instantiate BrowserMainLoop::audio_system_ with AudioSystemToMojoAdapter, so
that audio system information is served through the service.
- UMA stats for service usage.
- Tear down the service when not in use (service side, client side)
- Out-of-process AudioService implementation + unit tests

Design doc (being updated now):
https://docs.google.com/document/d/1s_Fd1WRDdpb5n6C2MSJjeC3fis6hULZwfKMeDd4K5tI/edit?usp=sharing

Bug: 740943,792441
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Iae7f69386a6d2138c69d9566cf41655b57158b7c
Reviewed-on: https://chromium-review.googlesource.com/799791
Commit-Queue: Olga Sharonova <olka@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528714}

CrOS-Libchrome-Original-Commit: a334d5f07d2fbf48dbcf6933d00027ce16b128a5
1 file changed
tree: 69bbc7eef330c340be5be6c38695d76cb9f79bc5
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/