Convert audio focus switches to features.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/39fa39db06ee34188d5f75fe411758cec242f608 commit 39fa39db06ee34188d5f75fe411758cec242f608 Author: Becca Hughes <beccahughes@chromium.org> Date: Tue Jan 08 20:10:57 2019 [Audio Focus] Add enforcement mode Add an enforcement mode to AudioFocusManager which will configure how audio focus is enforced. There are three types of enforcement: kSingleSession (only one session at a time), kSingleGroup (only one group at a time) and kNone (no enforcement). Also uses this new method to set audio focus to kSingleSession when ChromeVox is enabled. At the moment this is done through adding the |kEnableAudioFocus| switch which we wish to replace with a base::Feature. BUG= 919628 Change-Id: I8d4f38bba8e55a26cc0676f2a0cf894c378e3fe8 Reviewed-on: https://chromium-review.googlesource.com/c/1399294 Reviewed-by: Tommy Steimel <steimel@chromium.org> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Commit-Queue: Becca Hughes <beccahughes@chromium.org> Cr-Commit-Position: refs/heads/master@{#620852} [modify] https://crrev.com/39fa39db06ee34188d5f75fe411758cec242f608/chrome/browser/chromeos/accessibility/accessibility_manager.cc [modify] https://crrev.com/39fa39db06ee34188d5f75fe411758cec242f608/chrome/browser/chromeos/accessibility/accessibility_manager.h [modify] https://crrev.com/39fa39db06ee34188d5f75fe411758cec242f608/services/media_session/audio_focus_manager.cc [modify] https://crrev.com/39fa39db06ee34188d5f75fe411758cec242f608/services/media_session/audio_focus_manager.h [modify] https://crrev.com/39fa39db06ee34188d5f75fe411758cec242f608/services/media_session/audio_focus_manager_unittest.cc [modify] https://crrev.com/39fa39db06ee34188d5f75fe411758cec242f608/services/media_session/media_controller_unittest.cc [modify] https://crrev.com/39fa39db06ee34188d5f75fe411758cec242f608/services/media_session/public/mojom/audio_focus.mojom
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ac86cd44a90114e79936ea908c063ec9cabafb47 commit ac86cd44a90114e79936ea908c063ec9cabafb47 Author: Becca Hughes <beccahughes@chromium.org> Date: Wed Jan 09 23:49:54 2019 [Audio Focus] Convert switches to features Converts the existing audio focus / media session switches to the following features: - AudioFocusDuckFlash - InternalMediaSession will switch on the media session layer without switching on the service. This should only be used for Android and Cast specific bits that do not use the service. - MediaSessionService will switch on the media session code in content as well as the service, but we will not enforce single session audio focus. This should be on by default for on Chrome OS for ChromeVox. - AudioFocusEnforcement will enforce single session audio focus. - AudioFocusSessionGrouping will allow sessions with the same group id to share focus. This will only be used for Chrome OS browser level audio focus. Features that directly modulate the behavior of the service will be in media_session, all others will be in media_switches. BUG= 919628 Change-Id: I5be92c1b83ac23bf4cb1dc5ba6606eee487deac4 Reviewed-on: https://chromium-review.googlesource.com/c/1395063 Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: Becca Hughes <beccahughes@chromium.org> Cr-Commit-Position: refs/heads/master@{#621374} [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chrome/browser/about_flags.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chrome/browser/chromeos/accessibility/accessibility_manager.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chrome/browser/flag-metadata.json [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chrome/browser/flag_descriptions.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chrome/browser/flag_descriptions.h [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chrome/browser/web_applications/extensions/web_app_audio_focus_browsertest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chromecast/browser/cast_browser_main_parts.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chromecast/browser/cast_content_browser_client.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chromecast/browser/cast_feature_list_creator.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chromecast/browser/cast_feature_list_creator.h [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/chromeos/services/assistant/media_session/assistant_media_session.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/components/arc/media_session/arc_media_session_bridge.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/media_internals_unittest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/audio_focus_delegate_default.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/audio_focus_delegate_default_browsertest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/media_session_browsertest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/media_session_controller_unittest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/media_session_controllers_manager.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/media_session_controllers_manager_unittest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/media_session_impl_service_routing_unittest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/media_session_impl_uma_unittest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/media_session_impl_unittest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/media_session_impl_visibility_browsertest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/pepper_playback_observer.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/media/session/pepper_player_delegate.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/content/browser/service_manager/service_manager_context.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/media/base/media_switches.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/media/base/media_switches.h [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/services/media_session/audio_focus_manager.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/services/media_session/audio_focus_manager_unittest.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/services/media_session/public/cpp/BUILD.gn [add] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/services/media_session/public/cpp/features.cc [add] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/services/media_session/public/cpp/features.h [delete] https://crrev.com/29fa93958937e4324a35ec332f3ee8d06c3df2ff/services/media_session/public/cpp/switches.cc [delete] https://crrev.com/29fa93958937e4324a35ec332f3ee8d06c3df2ff/services/media_session/public/cpp/switches.h [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/services/media_session/public/cpp/test/mock_media_session.cc [modify] https://crrev.com/ac86cd44a90114e79936ea908c063ec9cabafb47/tools/metrics/histograms/enums.xml
Comment 1 by bugdroid1@chromium.org
, Jan 8