New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 792441 link

Starred by 14 users

Issue metadata

Status: Started
Owner:
OOO Dec 22 - Jan 8
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocked on:
issue 653871
issue 803102
issue 812557
issue 812568
issue 823640

Blocking:
issue 598069
issue 672469


Participants' hotlists:
Audio-Service


Sign in to add a comment

Implement Mojo Audio service

Project Member Reported by olka@chromium.org, Dec 6 2017

Issue description

Implement a process-agnostic service providing mojo interfaces to platform audio. 

Design doc: https://docs.google.com/document/d/1s_Fd1WRDdpb5n6C2MSJjeC3fis6hULZwfKMeDd4K5tI/edit?usp=sharing
 

Comment 1 by olka@chromium.org, Dec 6 2017

Blocking: 672469

Comment 2 by olka@chromium.org, Dec 12 2017

Blockedon: 653871
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a334d5f07d2fbf48dbcf6933d00027ce16b128a5

commit a334d5f07d2fbf48dbcf6933d00027ce16b128a5
Author: Olga Sharonova <olka@chromium.org>
Date: Thu Jan 11 19:50:12 2018

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}
[modify] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/media/audio/audio_device_description.h
[modify] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/media/audio/mock_audio_manager.cc
[modify] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[modify] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/BUILD.gn
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/BUILD.gn
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/DEPS
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/OWNERS
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/README.md
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/in_process_audio_manager_accessor.cc
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/in_process_audio_manager_accessor.h
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/manifest.json
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/cpp/BUILD.gn
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/cpp/OWNERS
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/cpp/audio_device_description.typemap
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/cpp/audio_device_description_struct_traits.cc
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/cpp/audio_device_description_struct_traits.h
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/cpp/audio_system_to_service_adapter.cc
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/cpp/audio_system_to_service_adapter.h
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/cpp/typemaps.gni
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/interfaces/BUILD.gn
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/interfaces/OWNERS
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/interfaces/audio_device_description.mojom
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/interfaces/constants.mojom
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/public/interfaces/system_info.mojom
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/service.cc
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/service.h
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/system_info.cc
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/system_info.h
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/test/OWNERS
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/test/audio_system_to_service_adapter_test.cc
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/test/in_process_service_test.cc
[add] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/audio/test/service_unittest_manifest.json
[modify] https://crrev.com/a334d5f07d2fbf48dbcf6933d00027ce16b128a5/services/service_manager/public/cpp/connector.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8cd4afa14015d6d8cf2cd90e649f36c1458a4fbf

commit 8cd4afa14015d6d8cf2cd90e649f36c1458a4fbf
Author: Daniel Cheng <dcheng@chromium.org>
Date: Thu Jan 11 20:03:35 2018

Revert "Basic Audio Service hosting mojom::SystemInfo"

This reverts commit a334d5f07d2fbf48dbcf6933d00027ce16b128a5.

Reason for revert: accidentally passed CQ without security review

Original change's description:
> 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}

TBR=dalecurtis@chromium.org,rockot@chromium.org,olka@chromium.org,maxmorin@chromium.org

Change-Id: Ib5c26464a3dacf0d2a5b3255295ebb268bd6fe20
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
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
Reviewed-on: https://chromium-review.googlesource.com/862107
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528721}
[modify] https://crrev.com/8cd4afa14015d6d8cf2cd90e649f36c1458a4fbf/media/audio/audio_device_description.h
[modify] https://crrev.com/8cd4afa14015d6d8cf2cd90e649f36c1458a4fbf/media/audio/mock_audio_manager.cc
[modify] https://crrev.com/8cd4afa14015d6d8cf2cd90e649f36c1458a4fbf/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[modify] https://crrev.com/8cd4afa14015d6d8cf2cd90e649f36c1458a4fbf/services/BUILD.gn
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/BUILD.gn
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/DEPS
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/OWNERS
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/README.md
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/in_process_audio_manager_accessor.cc
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/in_process_audio_manager_accessor.h
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/manifest.json
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/cpp/BUILD.gn
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/cpp/OWNERS
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/cpp/audio_device_description.typemap
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/cpp/audio_device_description_struct_traits.cc
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/cpp/audio_device_description_struct_traits.h
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/cpp/audio_system_to_service_adapter.cc
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/cpp/audio_system_to_service_adapter.h
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/cpp/typemaps.gni
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/interfaces/BUILD.gn
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/interfaces/OWNERS
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/interfaces/audio_device_description.mojom
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/interfaces/constants.mojom
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/public/interfaces/system_info.mojom
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/service.cc
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/service.h
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/system_info.cc
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/system_info.h
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/test/OWNERS
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/test/audio_system_to_service_adapter_test.cc
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/test/in_process_service_test.cc
[delete] https://crrev.com/e0cf8e1b851449b628d17431943b7a6c6286b5c2/services/audio/test/service_unittest_manifest.json
[modify] https://crrev.com/8cd4afa14015d6d8cf2cd90e649f36c1458a4fbf/services/service_manager/public/cpp/connector.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3caa45ea110f61dc795782963b829946714ecb38

commit 3caa45ea110f61dc795782963b829946714ecb38
Author: Olga Sharonova <olka@chromium.org>
Date: Tue Jan 16 15:37:59 2018

Reland "Basic Audio Service hosting mojom::SystemInfo":

Now with security review.
Comparing to the original CL (PS1 vs PS5), the changes are cosmetic.
The most noticeable one is that for consistency
SystemInfo::GetDeviceDescriptions(bool for_input) is replaced with
SystemInfo::GetInputDeviceDescriptions() and SystemInfo::GetOutputDeviceDescriptions().

TBR=dalecurtis@chromium.org,rockot@chromium.org

This is a reland of a334d5f07d2fbf48dbcf6933d00027ce16b128a5
Original change's description:
> 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}

Bug:  740943 , 792441
Change-Id: I2316aad895c35636a43ff990d378b6b5d97093a4
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
Reviewed-on: https://chromium-review.googlesource.com/861790
Commit-Queue: Olga Sharonova <olka@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529427}
[modify] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/media/audio/audio_device_description.h
[modify] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/media/audio/mock_audio_manager.cc
[modify] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[modify] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/BUILD.gn
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/BUILD.gn
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/DEPS
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/OWNERS
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/README.md
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/in_process_audio_manager_accessor.cc
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/in_process_audio_manager_accessor.h
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/manifest.json
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/cpp/BUILD.gn
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/cpp/OWNERS
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/cpp/audio_device_description.typemap
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/cpp/audio_device_description_struct_traits.cc
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/cpp/audio_device_description_struct_traits.h
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/cpp/audio_system_to_service_adapter.cc
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/cpp/audio_system_to_service_adapter.h
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/cpp/typemaps.gni
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/interfaces/BUILD.gn
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/interfaces/OWNERS
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/interfaces/audio_device_description.mojom
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/interfaces/constants.mojom
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/public/interfaces/system_info.mojom
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/service.cc
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/service.h
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/system_info.cc
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/system_info.h
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/test/OWNERS
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/test/audio_system_to_service_adapter_test.cc
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/test/in_process_service_test.cc
[add] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/audio/test/service_unittest_manifest.json
[modify] https://crrev.com/3caa45ea110f61dc795782963b829946714ecb38/services/service_manager/public/cpp/connector.cc

Blockedon: 803102

Comment 7 by olka@chromium.org, Jan 24 2018

Status: Started (was: Assigned)
Project Member

Comment 8 by bugdroid1@chromium.org, Jan 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d925bde7853d41a1a3cd914f2f94232d483a0ef0

commit d925bde7853d41a1a3cd914f2f94232d483a0ef0
Author: Olga Sharonova <olka@chromium.org>
Date: Thu Jan 25 06:58:24 2018

Audio service cleanup and in-process factory.

This is a spin-off from a WIP
https://chromium-review.googlesource.com/c/chromium/src/+/875927

Bug: 792441
Change-Id: I1d6e256653fa7fa81dd6c6b23edd9be9446b0640
Reviewed-on: https://chromium-review.googlesource.com/883203
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Reviewed-by: Will Harris <wfh@chromium.org>
Commit-Queue: Olga Sharonova <olka@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531833}
[modify] https://crrev.com/d925bde7853d41a1a3cd914f2f94232d483a0ef0/services/audio/BUILD.gn
[modify] https://crrev.com/d925bde7853d41a1a3cd914f2f94232d483a0ef0/services/audio/manifest.json
[modify] https://crrev.com/d925bde7853d41a1a3cd914f2f94232d483a0ef0/services/audio/public/cpp/audio_system_to_service_adapter.cc
[modify] https://crrev.com/d925bde7853d41a1a3cd914f2f94232d483a0ef0/services/audio/service.cc
[add] https://crrev.com/d925bde7853d41a1a3cd914f2f94232d483a0ef0/services/audio/service_factory.cc
[add] https://crrev.com/d925bde7853d41a1a3cd914f2f94232d483a0ef0/services/audio/service_factory.h
[modify] https://crrev.com/d925bde7853d41a1a3cd914f2f94232d483a0ef0/services/audio/test/in_process_service_test.cc
[modify] https://crrev.com/d925bde7853d41a1a3cd914f2f94232d483a0ef0/services/audio/test/service_unittest_manifest.json

Project Member

Comment 9 by bugdroid1@chromium.org, Feb 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d34513045dfd16ba3bafd6d59d65f1fec38fde39

commit d34513045dfd16ba3bafd6d59d65f1fec38fde39
Author: Olga Sharonova <olka@chromium.org>
Date: Thu Feb 01 10:15:26 2018

Test support for mocking audio::SystemInfo

This is another spin-off from WIP
https://chromium-review.googlesource.com/c/chromium/src/+/875927

See chrome/browser/chromeos/login/kiosk_browsertest.cc there for a use case.

Another (potential) use case is Speech Recognition browser tests here
https://cs.chromium.org/chromium/src/content/browser/speech/speech_recognition_browsertest.cc?type=cs&sq=package:chromium&l=132

Bug: 792441
Change-Id: I7c8b89bb1fc920ccade625dfc259e8c91edc8e94
Reviewed-on: https://chromium-review.googlesource.com/891184
Commit-Queue: Olga Sharonova <olka@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533621}
[modify] https://crrev.com/d34513045dfd16ba3bafd6d59d65f1fec38fde39/services/audio/BUILD.gn
[modify] https://crrev.com/d34513045dfd16ba3bafd6d59d65f1fec38fde39/services/audio/DEPS
[modify] https://crrev.com/d34513045dfd16ba3bafd6d59d65f1fec38fde39/services/audio/public/cpp/BUILD.gn
[add] https://crrev.com/d34513045dfd16ba3bafd6d59d65f1fec38fde39/services/audio/public/cpp/fake_system_info.cc
[add] https://crrev.com/d34513045dfd16ba3bafd6d59d65f1fec38fde39/services/audio/public/cpp/fake_system_info.h
[modify] https://crrev.com/d34513045dfd16ba3bafd6d59d65f1fec38fde39/services/audio/service_factory.cc
[modify] https://crrev.com/d34513045dfd16ba3bafd6d59d65f1fec38fde39/services/audio/service_factory.h
[modify] https://crrev.com/d34513045dfd16ba3bafd6d59d65f1fec38fde39/services/audio/test/in_process_service_test.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Feb 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6

commit 16d89d9eafaee3e34d2d32048ca69c4cf51c10e6
Author: Olga Sharonova <olka@chromium.org>
Date: Thu Feb 01 15:51:28 2018

Rename traits and interface directories in /services/audio

This change renames public/interfaces to public/mojom and *_struct_traits_*
to *_mojom_traits_* in /services/audio.

Bug: 806965, 792441
Change-Id: I64ae6176bc9a8b88b0dc5fd1cc2c0746e13c3d23
Reviewed-on: https://chromium-review.googlesource.com/897665
Reviewed-by: Max Morin <maxmorin@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533680}
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/BUILD.gn
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/cpp/BUILD.gn
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/cpp/OWNERS
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/cpp/audio_device_description.typemap
[rename] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/cpp/audio_device_description_mojom_traits.cc
[rename] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/cpp/audio_device_description_mojom_traits.h
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/cpp/audio_system_to_service_adapter.cc
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/cpp/audio_system_to_service_adapter.h
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/cpp/fake_system_info.cc
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/cpp/fake_system_info.h
[rename] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/mojom/BUILD.gn
[rename] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/mojom/OWNERS
[rename] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/mojom/audio_device_description.mojom
[rename] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/mojom/constants.mojom
[rename] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/public/mojom/system_info.mojom
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/service.h
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/system_info.h
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/test/audio_system_to_service_adapter_test.cc
[modify] https://crrev.com/16d89d9eafaee3e34d2d32048ca69c4cf51c10e6/services/audio/test/in_process_service_test.cc

Comment 11 by olka@chromium.org, Feb 15 2018

Blockedon: 812557
Blockedon: 812568
Project Member

Comment 13 by bugdroid1@chromium.org, Feb 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a234a0a1f0f351504d2e5060f047dfb46ef47799

commit a234a0a1f0f351504d2e5060f047dfb46ef47799
Author: Olga Sharonova <olka@chromium.org>
Date: Fri Feb 16 11:12:23 2018

Audio service embedded in content and AudioSystem on top of it

1) Audio service is embedded into /content. For that DeferredSequencedTaskRunner for Audio service
is introduced in BrowserMainLoop. This task runner is passed into AudioServiceContext and queues
all the requests to the Audio service and its factory until it is started. And it is started after
AudioManager is created in BrowserMainLoop::BrowserThreadsStarted().

2) audio::CreateAudioSystem() is introduced as a replacement to
media::AudioSystem::CreateInstance(). At this point it still creates media::AudioSystemImpl
instance.

This CL does not change execution path, and (hopefully)  should not be a source of regressions.
The actual switch to using Audio service and audio::AudioSystemToServiceAdapter happens in
the follow-up https://chromium-review.googlesource.com/c/chromium/src/+/918901.

So if something breaks https://chromium-review.googlesource.com/c/chromium/src/+/918901 should
be reverted first (and most likely that should be enough).

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: Ie69df7bf9f593fda6a2e85f5f57a49a90aeccdb9
Bug: 792441
Reviewed-on: https://chromium-review.googlesource.com/875927
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Olga Sharonova <olka@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537283}
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/chrome/browser/DEPS
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/chrome/browser/chromeos/login/DEPS
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/chrome/browser/chromeos/login/kiosk_browsertest.cc
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/chrome/browser/extensions/BUILD.gn
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/chrome/browser/extensions/api/virtual_keyboard_private/DEPS
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/chrome/browser/extensions/api/webrtc_audio_private/DEPS
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/chrome/test/BUILD.gn
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/content/browser/BUILD.gn
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/content/browser/browser_main_loop.cc
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/content/browser/browser_main_loop.h
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/content/browser/webrtc/webrtc_content_browsertest_base.cc
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/content/public/app/BUILD.gn
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/content/public/app/mojo/content_browser_manifest.json
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/content/test/BUILD.gn
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/media/audio/BUILD.gn
[delete] https://crrev.com/111190cb1851bfbe50816b0a62f38ee9a08fe55d/media/audio/audio_system.cc
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/media/audio/audio_system.h
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/media/audio/audio_system_impl.cc
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/media/audio/audio_system_impl.h
[modify] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/services/audio/public/cpp/BUILD.gn
[add] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/services/audio/public/cpp/audio_system_factory.cc
[add] https://crrev.com/a234a0a1f0f351504d2e5060f047dfb46ef47799/services/audio/public/cpp/audio_system_factory.h

Project Member

Comment 14 by bugdroid1@chromium.org, Feb 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ec6df0c6abb38504a555b03e37fabea0bffd55da

commit ec6df0c6abb38504a555b03e37fabea0bffd55da
Author: Olga Sharonova <olka@chromium.org>
Date: Fri Feb 16 16:56:03 2018

Switch AudioSystem to service-base implementation.

This is a follow-up CL which makes the code to use AudioService for
access to audio systeminformation.
Follow-up of
https://chromium-review.googlesource.com/c/chromium/src/+/875927
Done separatly to simplify a revert if one is required.

Bug: 792441
Change-Id: I9664b5f8b4364bb019232b10d7aa2dd93ddaf957
Reviewed-on: https://chromium-review.googlesource.com/918901
Commit-Queue: Olga Sharonova <olka@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537323}
[modify] https://crrev.com/ec6df0c6abb38504a555b03e37fabea0bffd55da/services/audio/public/cpp/audio_system_factory.cc

Comment 15 by olka@chromium.org, Mar 20 2018

Blockedon: 823640
Project Member

Comment 16 by bugdroid1@chromium.org, Mar 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/09f89fea352b87fd0904c8a92bddf8f4f92e9e89

commit 09f89fea352b87fd0904c8a92bddf8f4f92e9e89
Author: Olga Sharonova <olka@chromium.org>
Date: Mon Mar 26 16:15:19 2018

Audio service: quit with timeout if there are no incoming connections.

Bug: 792441
Change-Id: I0d715e485ce1d7f414d65e4c08291537d3d48614
Reviewed-on: https://chromium-review.googlesource.com/873351
Commit-Queue: Olga Sharonova <olka@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545808}
[modify] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/BUILD.gn
[modify] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/debug_recording.cc
[modify] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/debug_recording.h
[modify] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/debug_recording_unittest.cc
[modify] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/service.cc
[modify] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/service.h
[modify] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/service_factory.cc
[modify] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/system_info.cc
[modify] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/system_info.h
[modify] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/test/in_process_service_test.cc
[add] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/test/service_lifetime_connector_test.cc
[add] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/test/service_lifetime_test_template.h
[add] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/test/service_observer_mock.cc
[add] https://crrev.com/09f89fea352b87fd0904c8a92bddf8f4f92e9e89/services/audio/test/service_observer_mock.h

Project Member

Comment 17 by bugdroid1@chromium.org, Apr 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/acef01cbb35d643fdcdb1a22b261349dfb49fcb3

commit acef01cbb35d643fdcdb1a22b261349dfb49fcb3
Author: Olga Sharonova <olka@chromium.org>
Date: Mon Apr 09 20:10:10 2018

media::AudioSystem: disconnect from Audio service when not in use.

Also added mojo::InterfacePtr<>::IsExpectingResponse().

Bug: 672469, 792441
Change-Id: I9c508cafae84b393e226834c4236724d59641829
Reviewed-on: https://chromium-review.googlesource.com/998166
Commit-Queue: Olga Sharonova <olka@chromium.org>
Reviewed-by: Max Morin <maxmorin@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549254}
[modify] https://crrev.com/acef01cbb35d643fdcdb1a22b261349dfb49fcb3/mojo/public/cpp/bindings/interface_ptr.h
[modify] https://crrev.com/acef01cbb35d643fdcdb1a22b261349dfb49fcb3/services/audio/public/cpp/audio_system_to_service_adapter.cc
[modify] https://crrev.com/acef01cbb35d643fdcdb1a22b261349dfb49fcb3/services/audio/public/cpp/audio_system_to_service_adapter.h
[modify] https://crrev.com/acef01cbb35d643fdcdb1a22b261349dfb49fcb3/services/audio/test/audio_system_to_service_adapter_test.cc

Comment 18 by olka@chromium.org, Apr 10 2018

Cc: m...@chromium.org

Comment 19 by olka@chromium.org, Apr 18 2018

Blocking: 598069

Comment 20 by olka@chromium.org, Apr 18 2018

Components: Internals>Services

Comment 21 by olka@chromium.org, Apr 18 2018

Cc: jansson@chromium.org henrika@chromium.org olka@chromium.org tommi@chromium.org dalecur...@chromium.org julien.isorce@chromium.org grunell@chromium.org
 Issue 425368  has been merged into this issue.
Labels: M-70
Status: Fixed (was: Started)
The implementation is in services/audio, the switch to the service is rolling out under finch (now in M68-M69 Beta).
Status: Started (was: Fixed)
I'll keep it open until we fully switch to the service.

Sign in to add a comment