⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 280936 in webkit


Ignore:
Timestamp:
Aug 11, 2021, 3:54:12 PM (5 years ago)
Author:
Peng Liu
Message:

[BigSur] TestWebKitAPI.AudioRoutingArbitration.Updating fails after r280726
https://bugs.webkit.org/show_bug.cgi?id=228966

Reviewed by Eric Carlson.

Add an IPC message RemoteAudioSessionProxy::SetIsPlayingToBluetoothOverride
for testing purpose, so that the test AudioRoutingArbitration.Updating will
work as expected when "Media in GPU Process" is enabled.

No new tests. Fix an API test failure.

  • GPUProcess/media/RemoteAudioSessionProxy.cpp:

(WebKit::RemoteAudioSessionProxy::setCategory):
(WebKit::RemoteAudioSessionProxy::setIsPlayingToBluetoothOverride):

  • GPUProcess/media/RemoteAudioSessionProxy.h:
  • GPUProcess/media/RemoteAudioSessionProxy.messages.in:
  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::setCategory):
(WebKit::RemoteAudioSession::setIsPlayingToBluetoothOverride):

  • WebProcess/GPU/media/RemoteAudioSession.h:
Location:
trunk/Source/WebKit
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r280935 r280936  
     12021-08-11  Peng Liu  <peng.liu6@apple.com>
     2
     3        [BigSur] TestWebKitAPI.AudioRoutingArbitration.Updating fails after r280726
     4        https://bugs.webkit.org/show_bug.cgi?id=228966
     5
     6        Reviewed by Eric Carlson.
     7
     8        Add an IPC message `RemoteAudioSessionProxy::SetIsPlayingToBluetoothOverride`
     9        for testing purpose, so that the test `AudioRoutingArbitration.Updating` will
     10        work as expected when "Media in GPU Process" is enabled.
     11
     12        No new tests. Fix an API test failure.
     13
     14        * GPUProcess/media/RemoteAudioSessionProxy.cpp:
     15        (WebKit::RemoteAudioSessionProxy::setCategory):
     16        (WebKit::RemoteAudioSessionProxy::setIsPlayingToBluetoothOverride):
     17        * GPUProcess/media/RemoteAudioSessionProxy.h:
     18        * GPUProcess/media/RemoteAudioSessionProxy.messages.in:
     19        * WebProcess/GPU/media/RemoteAudioSession.cpp:
     20        (WebKit::RemoteAudioSession::setCategory):
     21        (WebKit::RemoteAudioSession::setIsPlayingToBluetoothOverride):
     22        * WebProcess/GPU/media/RemoteAudioSession.h:
     23
    1242021-08-11  David Kilzer  <ddkilzer@apple.com>
    225
  • trunk/Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.cpp

    r280664 r280936  
    7474void RemoteAudioSessionProxy::setCategory(AudioSession::CategoryType category, RouteSharingPolicy policy)
    7575{
    76     if (m_category == category && m_routeSharingPolicy == policy)
     76    if (m_category == category && m_routeSharingPolicy == policy && !m_isPlayingToBluetoothOverrideChanged)
    7777        return;
    7878
    7979    m_category = category;
    8080    m_routeSharingPolicy = policy;
     81    m_isPlayingToBluetoothOverrideChanged = false;
    8182    audioSessionManager().updateCategory();
    8283}
     
    9293    m_active = audioSessionManager().tryToSetActiveForProcess(*this, active);
    9394    completion(m_active);
     95}
     96
     97void RemoteAudioSessionProxy::setIsPlayingToBluetoothOverride(std::optional<bool>&& value)
     98{
     99    m_isPlayingToBluetoothOverrideChanged = true;
     100    audioSessionManager().session().setIsPlayingToBluetoothOverride(WTFMove(value));
    94101}
    95102
  • trunk/Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.h

    r280664 r280936  
    7575    using SetActiveCompletion = CompletionHandler<void(bool)>;
    7676    void tryToSetActive(bool, SetActiveCompletion&&);
     77    void setIsPlayingToBluetoothOverride(std::optional<bool>&& value);
    7778
    7879    RemoteAudioSessionProxyManager& audioSessionManager();
     
    8485    size_t m_preferredBufferSize { 0 };
    8586    bool m_active { false };
     87    bool m_isPlayingToBluetoothOverrideChanged { false };
    8688};
    8789
  • trunk/Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.messages.in

    r257936 r280936  
    3030    SetPreferredBufferSize(uint64_t preferredBufferSize)
    3131    TryToSetActive(bool active) -> (bool suceeded) Synchronous
     32    SetIsPlayingToBluetoothOverride(std::optional<bool> value)
    3233}
    3334
  • trunk/Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp

    r280664 r280936  
    9595{
    9696#if PLATFORM(COCOA)
    97     if (type == m_category && policy == m_routeSharingPolicy)
     97    if (type == m_category && policy == m_routeSharingPolicy && !m_isPlayingToBluetoothOverrideChanged)
    9898        return;
    9999
    100100    m_category = type;
    101101    m_routeSharingPolicy = policy;
     102    m_isPlayingToBluetoothOverrideChanged = false;
    102103
    103104    ensureConnection().send(Messages::RemoteAudioSessionProxy::SetCategory(type, policy), { });
     
    133134}
    134135
     136#if ENABLE(ROUTING_ARBITRATION)
     137void RemoteAudioSession::setIsPlayingToBluetoothOverride(std::optional<bool> value)
     138{
     139    m_isPlayingToBluetoothOverrideChanged = true;
     140    ensureConnection().send(Messages::RemoteAudioSessionProxy::SetIsPlayingToBluetoothOverride(value), { });
     141}
     142#endif
     143
    135144AudioSession::CategoryType RemoteAudioSession::category() const
    136145{
  • trunk/Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.h

    r280664 r280936  
    7272    void removeConfigurationChangeObserver(ConfigurationChangeObserver&);
    7373
     74#if ENABLE(ROUTING_ARBITRATION)
     75    void setIsPlayingToBluetoothOverride(std::optional<bool>) final;
     76#endif
     77
    7478    const RemoteAudioSessionConfiguration& configuration() const;
    7579    RemoteAudioSessionConfiguration& configuration();
     
    9296    CategoryType m_category { CategoryType::None };
    9397    WebCore::RouteSharingPolicy m_routeSharingPolicy { WebCore::RouteSharingPolicy::Default };
     98    bool m_isPlayingToBluetoothOverrideChanged { false };
    9499    std::optional<RemoteAudioSessionConfiguration> m_configuration;
    95100    WeakPtr<GPUProcessConnection> m_gpuProcessConnection;
Note: See TracChangeset for help on using the changeset viewer.