|
| 1 | +2020-10-27 Chris Dumez < [email protected]> |
| 2 | + |
| 3 | + [GPUProcess] Use async IPC for RemoteAudioDestinationManager's StartAudioDestination / StopAudioDestination |
| 4 | + https://bugs.webkit.org/show_bug.cgi?id=218251 |
| 5 | + |
| 6 | + Reviewed by Geoffrey Garen. |
| 7 | + |
| 8 | + DefaultAudioDestinationNode::resume() / suspend() were already asynchronous operations. However, they expected |
| 9 | + AudioDestination::start() / stop() to finish synchronously and would simply call their completion handler |
| 10 | + asynchronously. Instead, we now make AudioDestination::start() / stop() asynchronous as well. This allows us |
| 11 | + to use asynchronous IPC for RemoteAudioDestinationManager's StartAudioDestination / StopAudioDestination. |
| 12 | + |
| 13 | + As a result of this change, I had to make AudioDestinationNode::startRendering() asynchronous as well since |
| 14 | + it uses AudioDestination::start() internally. |
| 15 | + |
| 16 | + As an improvement, the completion handler to AudioDestinationNode's startRendering() / resume() / suspend() |
| 17 | + is now provided with an exception in cases where they fail. This allows the call sites to properly deal |
| 18 | + with such errors instead of assuming things were successsful. |
| 19 | + |
| 20 | + No new tests, no Web-facing beahvior change. |
| 21 | + |
| 22 | + * Modules/webaudio/AudioContext.cpp: |
| 23 | + (WebCore::AudioContext::suspendRendering): |
| 24 | + (WebCore::AudioContext::resumeRendering): |
| 25 | + (WebCore::AudioContext::startRendering): |
| 26 | + (WebCore::AudioContext::mayResumePlayback): |
| 27 | + (WebCore::AudioContext::suspendPlayback): |
| 28 | + * Modules/webaudio/AudioDestinationNode.h: |
| 29 | + (WebCore::AudioDestinationNode::resume): |
| 30 | + (WebCore::AudioDestinationNode::suspend): |
| 31 | + (WebCore::AudioDestinationNode::close): |
| 32 | + * Modules/webaudio/DefaultAudioDestinationNode.cpp: |
| 33 | + (WebCore::DefaultAudioDestinationNode::startRendering): |
| 34 | + (WebCore::DefaultAudioDestinationNode::resume): |
| 35 | + (WebCore::DefaultAudioDestinationNode::suspend): |
| 36 | + (WebCore::DefaultAudioDestinationNode::close): |
| 37 | + * Modules/webaudio/DefaultAudioDestinationNode.h: |
| 38 | + * Modules/webaudio/OfflineAudioContext.cpp: |
| 39 | + (WebCore::OfflineAudioContext::startOfflineRendering): |
| 40 | + (WebCore::OfflineAudioContext::resumeOfflineRendering): |
| 41 | + * Modules/webaudio/OfflineAudioDestinationNode.cpp: |
| 42 | + (WebCore::OfflineAudioDestinationNode::startRendering): |
| 43 | + * Modules/webaudio/OfflineAudioDestinationNode.h: |
| 44 | + * platform/audio/AudioDestination.h: |
| 45 | + (WebCore::AudioDestination::start): |
| 46 | + (WebCore::AudioDestination::stop): |
| 47 | + * platform/audio/cocoa/AudioDestinationCocoa.cpp: |
| 48 | + (WebCore::AudioDestinationCocoa::start): |
| 49 | + (WebCore::AudioDestinationCocoa::stop): |
| 50 | + * platform/audio/cocoa/AudioDestinationCocoa.h: |
| 51 | + * platform/audio/gstreamer/AudioDestinationGStreamer.cpp: |
| 52 | + (WebCore::AudioDestinationGStreamer::start): |
| 53 | + (WebCore::AudioDestinationGStreamer::stop): |
| 54 | + * platform/audio/gstreamer/AudioDestinationGStreamer.h: |
| 55 | + * platform/mock/MockAudioDestinationCocoa.cpp: |
| 56 | + (WebCore::MockAudioDestinationCocoa::start): |
| 57 | + (WebCore::MockAudioDestinationCocoa::stop): |
| 58 | + * platform/mock/MockAudioDestinationCocoa.h: |
| 59 | + |
1 | 60 | 2020-10-27 Fujii Hironori < [email protected]>
|
2 | 61 |
|
3 | 62 | [TextureMapper][GTK] Test compositing/clipping/border-radius-stacking-context-clip.html is failing
|
|
0 commit comments