[webkit-changes] [WebKit/WebKit] 42d2cd: WPT webcodecs videoDecoder-codec-specific.https.an...
youennf
noreply at github.com
Fri Jul 7 08:18:41 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 42d2cdbeda91de8b704599ae8305529869c5f99c
https://github.com/WebKit/WebKit/commit/42d2cdbeda91de8b704599ae8305529869c5f99c
Author: Youenn Fablet <youennf at gmail.com>
Date: 2023-07-07 (Fri, 07 Jul 2023)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoDecoder-codec-specific.https.any.js
M Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp
Log Message:
-----------
WPT webcodecs videoDecoder-codec-specific.https.any.html test is failing due to resolve promises out of an event queue task
https://bugs.webkit.org/show_bug.cgi?id=258814
rdar://111692360
Reviewed by Eric Carlson.
The WPT test change is coming from upstream and checks that the flush promise callbacks are executed before the error event handlers.
The implementation is correctly resolving the promises before scheduling a task to fire the error event.
But the promises are resolved outside of the event loop and are thus delayed to a loater task, and the error event fires before.
To prevent this, we are changing the way the internal decoder is calling back into WebCodecsVideoDecoder code.
Instead of just hoping to the right thread, we are now hoping to the right thread and then enqueueing a task.
We add a weakThis check there so that it is no longer necessary on each callback.
Covered by updated tests.
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoDecoder-codec-specific.https.any.js:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp:
(WebCore::WebCodecsVideoDecoder::configure):
(WebCore::WebCodecsVideoDecoder::decode):
(WebCore::WebCodecsVideoDecoder::flush):
(WebCore::WebCodecsVideoDecoder::resetDecoder):
Canonical link: https://commits.webkit.org/265843@main
More information about the webkit-changes
mailing list