WordPress/wp-includes/html-api
dmsnell 72bc81c048 HTML API: Only examine HTML nodes in `pop_until()` instack of open elements.
The `pop_until( $tag_name )` method in the stack of open elements should only be examining HTML elements, but it has only been checking the tag name. This has led to closing the wrong tags when run from inside foreign content. A very specific situation where this may arise is when a `TEMPLATE` closer is found inside foreign content, inside another template.

{{{
HTML:template   SVG:template                 HTML:/template
<template><svg><template><foreignObject><div></template><div>
╰──< this outer TEMPLATE is closed by this one >───╯
}}}

This patch constains the method to checking for elements matching the tag name which are in the HTML namespace so that the proper detection occurs.

Developed in https://github.com/WordPress/wordpress-develop/pull/7286
Discussed in https://core.trac.wordpress.org/ticket/61576

Follow-up to [58867].

Props dmsnell, jonsurrell.
See #61576.

Built from https://develop.svn.wordpress.org/trunk@58992


git-svn-id: http://core.svn.wordpress.org/trunk@58388 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-04 19:25:14 +00:00
..
class-wp-html-active-formatting-elements.php HTML API: Add missing tags in IN BODY insertion mode to HTML Processor. 2024-07-22 22:24:15 +00:00
class-wp-html-attribute-token.php HTML API: Track spans of text with (offset, length) instead of (start, end). 2023-12-10 13:19:28 +00:00
class-wp-html-decoder.php HTML API: Add missing `@global` tag on HTML Decoder. 2024-09-02 20:55:14 +00:00
class-wp-html-doctype-info.php HTML API: Parse DOCTYPE tokens and set HTML parser mode accordingly. 2024-08-23 14:55:15 +00:00
class-wp-html-open-elements.php HTML API: Only examine HTML nodes in `pop_until()` instack of open elements. 2024-09-04 19:25:14 +00:00
class-wp-html-processor-state.php HTML API: Respect document compat mode when handling CSS class names. 2024-09-04 04:34:15 +00:00
class-wp-html-processor.php HTML API: Only examine HTML nodes in `pop_until()` instack of open elements. 2024-09-04 19:25:14 +00:00
class-wp-html-span.php HTML API: Add PHP type annotations. 2024-07-19 23:44:16 +00:00
class-wp-html-stack-event.php HTML API: Add PHP type annotations. 2024-07-19 23:44:16 +00:00
class-wp-html-tag-processor.php HTML API: Respect document compat mode when handling CSS class names. 2024-09-04 04:34:15 +00:00
class-wp-html-text-replacement.php HTML API: Add PHP type annotations. 2024-07-19 23:44:16 +00:00
class-wp-html-token.php HTML API: Add support for SVG and MathML (Foreign content) 2024-08-08 07:25:15 +00:00
class-wp-html-unsupported-exception.php HTML API: Add context to Unsupported_Exception class for improved debugging. 2024-07-12 22:29:13 +00:00
html5-named-character-references.php Introduce Token Map: An optimized static translation class. 2024-05-23 19:56:08 +00:00