Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8ba228b0d3a92520e4939e946d80d053c296c05a
https://github.com/WebKit/WebKit/commit/8ba228b0d3a92520e4939e946d80d053c296c05a
Author: Chris Dumez <[email protected]>
Date: 2025-12-16 (Tue, 16 Dec 2025)
Changed paths:
M Source/WebCore/Modules/webaudio/BaseAudioContext.cpp
Log Message:
-----------
Regression(303383@main) fast/mediastream/getUserMedia-webaudio.html is a
flaky crash
https://bugs.webkit.org/show_bug.cgi?id=304227
Reviewed by Jer Noble.
The crash was happening because m_renderingAutomaticPullNodes would sometimes
contain a CheckedPtr to an AudioNode that was already destroyed when
`BaseAudioContext::uninitialize()` gets called. To address the issue, we
now remove the AudioNode directly from m_renderingAutomaticPullNodes in
BaseAudioContext::removeAutomaticPullNode() when m_isAudioThreadFinished
is set. Normally, we keep the node in m_renderingAutomaticPullNodes and
set m_automaticPullNodesNeedUpdating so the vector gets updated at the end
of the next rendering quantum. We do this for thread safety, since the audio
thread uses this vector. However, if the audio thread is finished already,
there is no thread safety issue and there will be no next rendering
quantum to update the vector.
No new tests, covered by fast/mediastream/getUserMedia-webaudio.html which
was flakily crashing (or the following test).
* Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::removeAutomaticPullNode):
Canonical link: https://commits.webkit.org/304543@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications