Skip to content

treebuilder: treat <source> and <track> as void elements - #3

Open
metan-ucw wants to merge 1 commit into
netsurf-browser:masterfrom
metan-ucw:add-source-track-elements
Open

metan-ucw wants to merge 1 commit into
netsurf-browser:masterfrom
metan-ucw:add-source-track-elements

Conversation

@metan-ucw

Copy link
Copy Markdown

libhubbub predates the HTML5 / elements, so they were absent from the gperf element-type wordlist. element_type_from_name returned UNKNOWN for them and the "any other start tag" path pushed onto the open-elements stack as a non-void container — the following then nested inside the instead of becoming its sibling under . In the standard <source>…<img> order (sources first, fallback img last) a downstream consumer that ignores never sees the , dropping the picture entirely.

Add both to the wordlist so the generated perfect hash knows them (which also makes element_type_to_name answer for them), and add them to the void-element branch so they insert without being pushed.

libhubbub predates the HTML5 <source>/<track> elements, so they were
absent from the gperf element-type wordlist.  element_type_from_name
returned UNKNOWN for them and the "any other start tag" path pushed
<source> onto the open-elements stack as a non-void container — the
following <img> then nested inside the <source> instead of becoming its
sibling under <picture>.  In the standard `<source>…<img>` order (sources
first, fallback img last) a downstream consumer that ignores <source>
never sees the <img>, dropping the picture entirely.

Add both to the wordlist so the generated perfect hash knows them (which
also makes element_type_to_name answer for them), and add them to the
void-element branch so they insert without being pushed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Cyril Hrubis <metan@ucw.cz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant