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

Issue 788687 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Changes to default device are not tracked

Project Member Reported by guidou@chromium.org, Nov 27 2017

Issue description

Media device enumerations currently use a cache that is invalidated on notifications sent by base::SystemMonitor. However, base::SystemMonitor is not currently producing all the notifications that should cause a cache invalidation.

On Windows/Mac the group ID property is supported. Changing the default device may cause a change to the group ID of the "default" device, and this is not tracked by base::SystemMonitor until after a browser restart.

On Linux, base::SystemMonitor does not track devices being enabled/disabled by pulseaudio.
 

Comment 1 by guidou@chromium.org, Nov 27 2017

I will first land a patch disabling system-monitor caching so that changes are tracked upon new enumerations.
Then will work on specific patches for each platform.

Comment 2 by guidou@chromium.org, Nov 27 2017

Cc: maxmorin@chromium.org olka@chromium.org
Components: Blink>WebRTC>Audio
Project Member

Comment 3 by bugdroid1@chromium.org, Nov 27 2017

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

commit 2430a3cd0414107f13b785204cdc2c1481b5acc5
Author: Guido Urdaneta <guidou@chromium.org>
Date: Mon Nov 27 19:29:20 2017

Disable caching of device enumerations and introduce flag to enable it

This CL changes the default caching policy from SYSTEM_MONITOR to
NO_CACHE even on platforms where we have a SystemMonitor.

The reason is that SystemMonitor is missing some events that should
invalidate the cache on all platforms, such as changing the default
audio devices.

Bug: 788687
Change-Id: Ic211fa62e3c3c2da04162ef7c4c76304675bdeb4
Reviewed-on: https://chromium-review.googlesource.com/789864
Reviewed-by: Max Morin <maxmorin@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519364}
[modify] https://crrev.com/2430a3cd0414107f13b785204cdc2c1481b5acc5/content/browser/renderer_host/media/media_devices_manager.cc
[modify] https://crrev.com/2430a3cd0414107f13b785204cdc2c1481b5acc5/content/public/common/content_features.cc
[modify] https://crrev.com/2430a3cd0414107f13b785204cdc2c1481b5acc5/content/public/common/content_features.h

Project Member

Comment 4 by bugdroid1@chromium.org, Dec 7 2017

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

commit c57ee457bd68b3df962dc3b109fc0535e83be502
Author: Guido Urdaneta <guidou@chromium.org>
Date: Thu Dec 07 20:14:10 2017

Improve audio-device monitoring on Mac

Before this CL, base::SystemMonitor on Mac only reported addition and
removal of input devices.

With this patch, the following events are reported:
* Addition and removal of output-only devices.
* Changes to the default input or output device.

With this change, it is safe to enable the SYSTEM_MONITOR caching
policy for MediaDevicesManager.

Bug: 788687,  648173 
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: I57549eb586716a3739d652c386f7740875521be8
Reviewed-on: https://chromium-review.googlesource.com/803218
Reviewed-by: Max Morin <maxmorin@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522524}
[modify] https://crrev.com/c57ee457bd68b3df962dc3b109fc0535e83be502/content/public/common/content_features.cc
[modify] https://crrev.com/c57ee457bd68b3df962dc3b109fc0535e83be502/media/audio/mac/audio_device_listener_mac.cc
[modify] https://crrev.com/c57ee457bd68b3df962dc3b109fc0535e83be502/media/audio/mac/audio_device_listener_mac.h
[modify] https://crrev.com/c57ee457bd68b3df962dc3b109fc0535e83be502/media/audio/mac/audio_device_listener_mac_unittest.cc
[modify] https://crrev.com/c57ee457bd68b3df962dc3b109fc0535e83be502/media/device_monitors/device_monitor_mac.h
[modify] https://crrev.com/c57ee457bd68b3df962dc3b109fc0535e83be502/media/device_monitors/device_monitor_mac.mm

Project Member

Comment 5 by bugdroid1@chromium.org, Dec 13 2017

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

commit 782d382349a9c57ee66b50a94eb5ea0e5395b201
Author: Guido Urdaneta <guidou@chromium.org>
Date: Wed Dec 13 07:48:24 2017

Report changes to default/communications audio devices on Windows

With this change, it is safe to enable the SYSTEM_MONITOR caching
policy for MediaDevicesManager.

Bug: 788687
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: I3b067a566e825c5a8219705bc75ee4b66c198787
Reviewed-on: https://chromium-review.googlesource.com/822935
Reviewed-by: Max Morin <maxmorin@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523716}
[modify] https://crrev.com/782d382349a9c57ee66b50a94eb5ea0e5395b201/content/public/common/content_features.cc
[modify] https://crrev.com/782d382349a9c57ee66b50a94eb5ea0e5395b201/media/audio/win/audio_device_listener_win.cc

Sign in to add a comment