htmlimageelement: Reject decode promises on the current request mutation (#37828)

Follow the HTML specification and reject the pending image decode
promises
on any current request mutation.
https://html.spec.whatwg.org/multipage/#updating-the-image-data (step
18)
https://html.spec.whatwg.org/multipage/#dom-img-decode (step 3)

Fulfill and reject image decode promises by queueing
a global tasks on the DOM manipulation task source.

Testing: Improvements in the following tests
- html/semantics/embedded-content/the-img-element/decode/*

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
This commit is contained in:
Andrei Volykhin 2025-07-02 12:29:47 +03:00 committed by GitHub
parent 45fb0bac82
commit 4cbadde144
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 58 additions and 48 deletions

View file

@ -1,15 +0,0 @@
[image-decode-path-changes.html]
[HTMLImageElement.prototype.decode(), src/srcset mutation tests. src changes fail decode; following good png decode succeeds.]
expected: FAIL
[HTMLImageElement.prototype.decode(), src/srcset mutation tests. src changes fail decode; following good svg decode succeeds.]
expected: FAIL
[HTMLImageElement.prototype.decode(), src/srcset mutation tests. srcset changes fail decode; following good decode succeeds.]
expected: FAIL
[HTMLImageElement.prototype.decode(), src/srcset mutation tests. src changes fail decode.]
expected: FAIL
[HTMLImageElement.prototype.decode(), src/srcset mutation tests. srcset changes fail decode.]
expected: FAIL

View file

@ -1,15 +1,3 @@
[image-decode-with-quick-attach.html]
[HTMLImageElement.prototype.decode(), attach to DOM before promise resolves.: src in empty picture not cached]
expected: FAIL
[HTMLImageElement.prototype.decode(), attach to DOM before promise resolves.: srcset in empty picture]
expected: FAIL
[HTMLImageElement.prototype.decode(), attach to DOM before promise resolves.: src in picture with source not cached]
expected: FAIL
[HTMLImageElement.prototype.decode(), attach to DOM before promise resolves.: src in picture with source cached]
expected: FAIL
[HTMLImageElement.prototype.decode(), attach to DOM before promise resolves.: srcset in picture with source]
[HTMLImageElement.prototype.decode(), attach to DOM before promise resolves.: src in empty picture cached]
expected: FAIL