Title: [288109] trunk/Source/WebCore
- Revision
- 288109
- Author
- [email protected]
- Date
- 2022-01-17 23:35:48 -0800 (Mon, 17 Jan 2022)
Log Message
AudioMediaStreamTrackRendererUnit::reset should hop to the main thread before calling its observers
https://bugs.webkit.org/show_bug.cgi?id=235290
Reviewed by Darin Adler.
In case of doing audio rendering in WebProcess, we need to hop to main thread since the callback might get called from a background thread.
* platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:
* platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (288108 => 288109)
--- trunk/Source/WebCore/ChangeLog 2022-01-18 05:21:43 UTC (rev 288108)
+++ trunk/Source/WebCore/ChangeLog 2022-01-18 07:35:48 UTC (rev 288109)
@@ -1,3 +1,15 @@
+2022-01-17 Youenn Fablet <[email protected]>
+
+ AudioMediaStreamTrackRendererUnit::reset should hop to the main thread before calling its observers
+ https://bugs.webkit.org/show_bug.cgi?id=235290
+
+ Reviewed by Darin Adler.
+
+ In case of doing audio rendering in WebProcess, we need to hop to main thread since the callback might get called from a background thread.
+
+ * platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:
+ * platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:
+
2022-01-17 Myles C. Maxfield <[email protected]>
REGRESSION(r281389): using font-variant-ligatures causes Unicode bidi isolation control characters to render
Modified: trunk/Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp (288108 => 288109)
--- trunk/Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp 2022-01-18 05:21:43 UTC (rev 288108)
+++ trunk/Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp 2022-01-18 07:35:48 UTC (rev 288109)
@@ -141,7 +141,13 @@
void AudioMediaStreamTrackRendererUnit::reset()
{
RELEASE_LOG(WebRTC, "AudioMediaStreamTrackRendererUnit::reset");
- ASSERT(isMainThread());
+ if (!isMainThread()) {
+ callOnMainThread([weakThis = WeakPtr { this }] {
+ if (weakThis)
+ weakThis->reset();
+ });
+ return;
+ }
m_resetObservers.forEach([](auto& observer) {
observer();
Modified: trunk/Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h (288108 => 288109)
--- trunk/Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h 2022-01-18 05:21:43 UTC (rev 288108)
+++ trunk/Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h 2022-01-18 07:35:48 UTC (rev 288109)
@@ -42,7 +42,7 @@
class CAAudioStreamDescription;
class AudioMediaStreamTrackRendererInternalUnit;
-class AudioMediaStreamTrackRendererUnit : public BaseAudioMediaStreamTrackRendererUnit {
+class AudioMediaStreamTrackRendererUnit : public BaseAudioMediaStreamTrackRendererUnit, public CanMakeWeakPtr<AudioMediaStreamTrackRendererUnit, WeakPtrFactoryInitialization::Eager> {
public:
WEBCORE_EXPORT static AudioMediaStreamTrackRendererUnit& singleton();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes