mdn/content

Clarify image.decode() failure on lazy-loaded images

Open

#38,034 opened on Feb 8, 2025

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Markdown (8,900 stars) (22,427 forks)batch import
Content:WebAPIarea: DOM/CSSOMhelp wanted

Description

MDN URL

https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode

What specific section or headline is this issue about?

Missing information

What information was incorrect, unhelpful, or incomplete?

As noted in https://stackoverflow.com/questions/65146920/domexception-invalid-image-request, the decode() function will throw EncodingError: Invalid image request. on images with loading="lazy" that have not yet loaded in Firefox; it will not do so in Chrome. This is either a browser bug, an indication that the page information ("This can be used to initiate loading of the image") is somewhat incomplete/misleading, or just of a case of undefined behavior which might deserve a note.

What did you expect to see?

Either just a note that this loading="lazy" case fails in Firefox on images that have not yet loaded, or an explanation of the difference between loading and decoding/when decoding might fail if this is actually a symptom of a larger degree of complexity.

edit: Per further testing, calling decode() in an onload handler works and functions correctly on a loading="lazy" image; it's only calling it too early that fails.

Do you have any supporting links, references, or citations?

The only semi-relevant Firefox bug I found is https://bugzilla.mozilla.org/show_bug.cgi?id=1758035, which links to the spec. It's still not entirely clear from the spec text to me whether the function is explicitly supposed to interact with/wait for loading, and if so exactly how.

Do you have anything more you want to share?

No response

MDN metadata

Contributor guide