Call the error callback synchronously from the configure error task, and block the message queue processing at the right time
Categories
(Core :: Audio/Video: Web Codecs, defect)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox122 | --- | fixed |
People
(Reporter: padenot, Assigned: padenot)
References
Details
Attachments
(12 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
Fixes this: https://wpt.live/webcodecs/video-decoder.https.any.html and various other tests that were using the same pattern.
| Assignee | ||
Comment 1•2 years ago
|
||
Two problems:
- This was calling the error callback by queueing another task, which isn't what
the spec says (we're already in a task at this point, the callback needs to be
called directly). - The message queue was blocked too late, so the flush message was being
processed, and this caused the timeout.
| Assignee | ||
Comment 2•2 years ago
|
||
Depends on D193923
| Assignee | ||
Comment 3•2 years ago
|
||
Depends on D193923
| Assignee | ||
Comment 4•2 years ago
|
||
Depends on D194138
| Assignee | ||
Comment 5•2 years ago
|
||
When the spec says "Queue a task to do X and Y", there needs to be exactly a
single task doing X and Y without anything possible in between.
This can probably be observed by spamming e.g. the main thread with tasks, and
seeing that two steps aren't atomic.
Depends on D194139
| Assignee | ||
Comment 6•2 years ago
|
||
Sometimes, the promise and something else need to happen in the same steps, etc.
Generally this removes a bunch of indirection and makes things very clear.
This gets rid of various explicit runnables, preferring simple lambdas, and
generally follows a simple rule: things that are conceptually consequences from
an operation (what we have in the Thenable of our PDM MozPromise) queue a single
task, and that does the steps.
I've removed methods called "ScheduleXXXX(...)", preferring clear calls to
QueueATask with a lambda, so it's clear what is going to run. This usually
runs the synchronous version "XXXXInternal(...)", but not always.
Exceptions are:
- ScheduleDequeueEvent (handled later in this series)
- Calling the output callback (also handled later)
This also removes calls to ProcessMessageQueue that shouldn't have been there.
Depends on D194140
| Assignee | ||
Comment 7•2 years ago
|
||
Simple compilation fix for the previous patch, but orthogonal so I split it out.
Depends on D194141
| Assignee | ||
Comment 8•2 years ago
|
||
This makes it clear that it has some logic.
Depends on D194142
| Assignee | ||
Comment 9•2 years ago
|
||
Depends on D193924
| Assignee | ||
Comment 10•2 years ago
|
||
Depends on D194144
| Assignee | ||
Comment 11•2 years ago
|
||
Depends on D194145
| Assignee | ||
Comment 12•2 years ago
|
||
We can't have this happen.
Depends on D194869
Comment 13•2 years ago
|
||
The severity field is not set for this bug.
:padenot, could you have a look please?
For more information, please visit BugBot documentation.
Comment 14•2 years ago
|
||
Comment 15•2 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/8b5620d3d4bb
https://hg.mozilla.org/mozilla-central/rev/0da850525973
https://hg.mozilla.org/mozilla-central/rev/f69dd666d809
https://hg.mozilla.org/mozilla-central/rev/8c58b7ec90c3
https://hg.mozilla.org/mozilla-central/rev/506426f7bfe2
https://hg.mozilla.org/mozilla-central/rev/9295d457356a
https://hg.mozilla.org/mozilla-central/rev/ddf76cb4720b
https://hg.mozilla.org/mozilla-central/rev/9a7b12e28ca1
https://hg.mozilla.org/mozilla-central/rev/c3aa798b2c66
https://hg.mozilla.org/mozilla-central/rev/995679e8b389
https://hg.mozilla.org/mozilla-central/rev/9da42c9589eb
https://hg.mozilla.org/mozilla-central/rev/ea68e617ec80
https://hg.mozilla.org/mozilla-central/rev/51d7fee3bc89
Updated•2 years ago
|
Comment 16•2 years ago
|
||
Comment 17•2 years ago
|
||
| bugherder | ||
Description
•