Changeset 280936 in webkit
- Timestamp:
- Aug 11, 2021, 3:54:12 PM (5 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 6 edited
-
ChangeLog (modified) (1 diff)
-
GPUProcess/media/RemoteAudioSessionProxy.cpp (modified) (2 diffs)
-
GPUProcess/media/RemoteAudioSessionProxy.h (modified) (2 diffs)
-
GPUProcess/media/RemoteAudioSessionProxy.messages.in (modified) (1 diff)
-
WebProcess/GPU/media/RemoteAudioSession.cpp (modified) (2 diffs)
-
WebProcess/GPU/media/RemoteAudioSession.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r280935 r280936 1 2021-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 1 24 2021-08-11 David Kilzer <ddkilzer@apple.com> 2 25 -
trunk/Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.cpp
r280664 r280936 74 74 void RemoteAudioSessionProxy::setCategory(AudioSession::CategoryType category, RouteSharingPolicy policy) 75 75 { 76 if (m_category == category && m_routeSharingPolicy == policy )76 if (m_category == category && m_routeSharingPolicy == policy && !m_isPlayingToBluetoothOverrideChanged) 77 77 return; 78 78 79 79 m_category = category; 80 80 m_routeSharingPolicy = policy; 81 m_isPlayingToBluetoothOverrideChanged = false; 81 82 audioSessionManager().updateCategory(); 82 83 } … … 92 93 m_active = audioSessionManager().tryToSetActiveForProcess(*this, active); 93 94 completion(m_active); 95 } 96 97 void RemoteAudioSessionProxy::setIsPlayingToBluetoothOverride(std::optional<bool>&& value) 98 { 99 m_isPlayingToBluetoothOverrideChanged = true; 100 audioSessionManager().session().setIsPlayingToBluetoothOverride(WTFMove(value)); 94 101 } 95 102 -
trunk/Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.h
r280664 r280936 75 75 using SetActiveCompletion = CompletionHandler<void(bool)>; 76 76 void tryToSetActive(bool, SetActiveCompletion&&); 77 void setIsPlayingToBluetoothOverride(std::optional<bool>&& value); 77 78 78 79 RemoteAudioSessionProxyManager& audioSessionManager(); … … 84 85 size_t m_preferredBufferSize { 0 }; 85 86 bool m_active { false }; 87 bool m_isPlayingToBluetoothOverrideChanged { false }; 86 88 }; 87 89 -
trunk/Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.messages.in
r257936 r280936 30 30 SetPreferredBufferSize(uint64_t preferredBufferSize) 31 31 TryToSetActive(bool active) -> (bool suceeded) Synchronous 32 SetIsPlayingToBluetoothOverride(std::optional<bool> value) 32 33 } 33 34 -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp
r280664 r280936 95 95 { 96 96 #if PLATFORM(COCOA) 97 if (type == m_category && policy == m_routeSharingPolicy )97 if (type == m_category && policy == m_routeSharingPolicy && !m_isPlayingToBluetoothOverrideChanged) 98 98 return; 99 99 100 100 m_category = type; 101 101 m_routeSharingPolicy = policy; 102 m_isPlayingToBluetoothOverrideChanged = false; 102 103 103 104 ensureConnection().send(Messages::RemoteAudioSessionProxy::SetCategory(type, policy), { }); … … 133 134 } 134 135 136 #if ENABLE(ROUTING_ARBITRATION) 137 void RemoteAudioSession::setIsPlayingToBluetoothOverride(std::optional<bool> value) 138 { 139 m_isPlayingToBluetoothOverrideChanged = true; 140 ensureConnection().send(Messages::RemoteAudioSessionProxy::SetIsPlayingToBluetoothOverride(value), { }); 141 } 142 #endif 143 135 144 AudioSession::CategoryType RemoteAudioSession::category() const 136 145 { -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.h
r280664 r280936 72 72 void removeConfigurationChangeObserver(ConfigurationChangeObserver&); 73 73 74 #if ENABLE(ROUTING_ARBITRATION) 75 void setIsPlayingToBluetoothOverride(std::optional<bool>) final; 76 #endif 77 74 78 const RemoteAudioSessionConfiguration& configuration() const; 75 79 RemoteAudioSessionConfiguration& configuration(); … … 92 96 CategoryType m_category { CategoryType::None }; 93 97 WebCore::RouteSharingPolicy m_routeSharingPolicy { WebCore::RouteSharingPolicy::Default }; 98 bool m_isPlayingToBluetoothOverrideChanged { false }; 94 99 std::optional<RemoteAudioSessionConfiguration> m_configuration; 95 100 WeakPtr<GPUProcessConnection> m_gpuProcessConnection;
Note:
See TracChangeset
for help on using the changeset viewer.