-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Fix crash when creating an AudioNode from a closed AudioContext #40954
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix crash when creating an AudioNode from a closed AudioContext #40954
Conversation
|
🔨 Triggering try run (#19784586187) for Linux (WPT) |
|
Test results for linux-wpt from try job (#19784586187): Flaky unexpected result (38)
Stable unexpected results that are known to be intermittent (32)
|
|
✨ Try run (#19784586187) succeeded. |
|
So this looks like an observable behaviour change, since we now throw an exception. What do other browsers do? We should have a test upstream that validates that Servo has the same behaviour, since I don't see any explicit spec text about aborting creating new nodes when the context is closed. |
I went and checked what other engines do, For Chromium, constructs the node and does not throw. Instead it logs a console warning:
So the constructor still succeeds, but the node is effectively useless once the context is closed. For Firefox, node creation is still allowed on a closed context and I saw this warning in Firefox:
Given that, I could aligned the patch with Chromium/Firefox behavior: AudioContext::create_node should not panics on RecvError and it returns a failure result when the render thread/context is closed, if backend node creation fails it just logs a warning instead of throwing? As a follow up I can add a Web Platform Test that at least asserts that constructing a MediaStreamAudioDestinationNode on a closed AudioContext does not crash the browser? |
|
That all sounds good! |
97ca383 to
af2e038
Compare
Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
af2e038 to
143281e
Compare
|
🤖 Opened new upstream WPT pull request (web-platform-tests/wpt#56368) with upstreamable changes. |
|
🔨 Triggering try run (#19829612656) for Linux (WPT) |
|
📝 Transplanted new upstreamable changes to existing upstream WPT pull request (web-platform-tests/wpt#56368). |
jdm
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice solution!
|
Test results for linux-wpt from try job (#19829612656): Flaky unexpected result (32)
Stable unexpected results that are known to be intermittent (23)
|
|
✨ Try run (#19829612656) succeeded. |
Fix crash when creating an AudioNode from a closed AudioContext
Testing: added crash test.
Fixes: #36856