WordPress/wp-includes
dmsnell 2107b186fe HTML API: Report real and virtual nodes in the HTML Processor.
HTML is a kind of short-hand for a DOM structure. This means that there are
many cases in HTML where an element's opening tag or closing tag is missing (or
both). This is because many of the parsing rules imply creating elements in the
DOM which may not exist in the text of the HTML.

The HTML Processor, being the higher-level counterpart to the Tag Processor, is
already aware of these nodes, but since it's inception has not paused on them
when scanning through a document. Instead, these are visible when pausing on a
child of such an element, but otherwise not seen.

In this patch the HTML Processor starts exposing those implicitly-created nodes,
including opening tags, and closing tags, that aren't foudn in the text content
of the HTML input document.

Previously, the sequence of matched tokens when scanning with 
`WP_HTML_Processor::next_token()` would depend on how the HTML document was written,
but with this patch, all semantically equal HTML documents will parse and scan in
the same exact manner, presenting an idealized or "perfect" view of the document
the same way as would occur when traversing a DOM in a browser.

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

Props audrasjb, dmsnell, gziolo, jonsurrell.
Fixes #61348.

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


git-svn-id: http://core.svn.wordpress.org/trunk@57761 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-06-03 19:47:15 +00:00
..
assets Editor: Update npm packages. 2024-05-31 18:59:00 +00:00
block-bindings Editor: Update Packages with the latest bug fixes for 6.5 RC 1 2024-03-04 14:08:24 +00:00
block-patterns
block-supports Block Themes: Add section styling via extended block style variations 2024-05-31 05:49:14 +00:00
blocks Editor: Update npm packages. 2024-05-31 18:59:00 +00:00
certificates
css Editor: Update npm packages. 2024-05-31 18:59:00 +00:00
customize Administration: A11y: Replace placeholders with visible labels. 2024-05-14 16:49:09 +00:00
fonts Docs: Various docblock improvements. 2024-05-02 13:19:14 +00:00
html-api HTML API: Report real and virtual nodes in the HTML Processor. 2024-06-03 19:47:15 +00:00
ID3
images Media: Replace media icon images with SVG. 2024-02-15 23:49:10 +00:00
interactivity-api Interactivity API: Move directive processing to WP_Block class 2024-05-29 11:57:08 +00:00
IXR
js Media: Follow the "proximity of controls" accessibility guidelines in the multi-file uploader. 2024-06-02 08:37:09 +00:00
l10n Docs: Fix incorrect docblock for WP_Translation_Controller::translate_plural. 2024-05-15 09:07:11 +00:00
php-compat
PHPMailer External Libraries: Upgrade PHPMailer to version 6.9.1. 2023-11-26 19:27:25 +00:00
pomo Coding Standards: Use strict comparison in wp-includes/pomo/plural-forms.php. 2024-03-27 12:30:12 +00:00
Requests External Libraries: Update the Requests library to version 2.0.11. 2024-03-25 12:23:08 +00:00
rest-api Editor: resolve patterns server side. 2024-06-03 18:32:14 +00:00
SimplePie
sitemaps Coding Standards: Correct equals sign alignment in various files. 2023-11-02 00:04:24 +00:00
sodium_compat
style-engine Editor: add Style Engine support for nested CSS rules. 2024-05-03 04:47:12 +00:00
Text Docs: Fix several typos in inline comments. 2024-01-18 22:13:16 +00:00
theme-compat I18N: Improve translator comments for strings containing date formats. 2023-11-26 16:43:30 +00:00
widgets Docs: Correct the placement of @global tags in various files. 2024-05-26 20:51:13 +00:00
admin-bar.php Docs: Correct description for wp_admin_bar_edit_site_menu(). 2024-06-03 15:44:10 +00:00
atomlib.php
author-template.php
block-bindings.php Docs: Various docblock improvements. 2024-05-02 13:19:14 +00:00
block-editor.php
block-i18n.json
block-patterns.php Docs: Improve docblock for WP_Block_Patterns_Registry::register. 2024-02-27 21:05:11 +00:00
block-template-utils.php Block Hooks: Move ignoredHookedBlocks metadata injection logic. 2024-06-03 12:05:15 +00:00
block-template.php Docs: Add a description for the $wp_embed global. 2024-03-06 05:05:12 +00:00
blocks.php Editor: resolve patterns server side. 2024-06-03 18:32:14 +00:00
bookmark-template.php Coding Standards: Use strict comparison in wp-includes/bookmark-template.php. 2024-03-20 12:49:10 +00:00
bookmark.php Coding Standards: Use strict comparison in wp-includes/bookmark.php. 2024-03-23 14:20:11 +00:00
cache-compat.php
cache.php
canonical.php Canonical: Limit post types searched by redirect_guess_404_permalink(). 2024-02-16 23:34:11 +00:00
capabilities.php Coding Standards: Remove extra conditional in is_super_admin(). 2024-05-05 14:35:19 +00:00
category-template.php
category.php
class-avif-info.php Media: fix potential error in class-avif-info.php::get_item_features(). 2024-04-26 15:02:14 +00:00
class-feed.php
class-http.php
class-IXR.php
class-json.php
class-oembed.php
class-phpass.php
class-phpmailer.php
class-pop3.php
class-requests.php
class-simplepie.php General: Further improve language in SimplePie code comments. 2024-02-17 13:25:10 +00:00
class-smtp.php
class-snoopy.php
class-walker-category-dropdown.php
class-walker-category.php
class-walker-comment.php Coding Standards: Use strict comparison in wp-includes/class-walker-comment.php. 2024-03-18 15:46:13 +00:00
class-walker-nav-menu.php
class-walker-page-dropdown.php
class-walker-page.php
class-wp-admin-bar.php Toolbar: Accessibility: Fix keyboard focus order of search form. 2024-05-27 18:41:15 +00:00
class-wp-ajax-response.php
class-wp-application-passwords.php
class-wp-block-bindings-registry.php Docs: Various docblock improvements. 2024-05-02 13:19:14 +00:00
class-wp-block-bindings-source.php Docs: Various docblock improvements. 2024-05-02 13:19:14 +00:00
class-wp-block-editor-context.php
class-wp-block-list.php Coding Standards: Correct equals sign alignment in various files. 2023-11-02 00:04:24 +00:00
class-wp-block-parser-block.php
class-wp-block-parser-frame.php
class-wp-block-parser.php Docs: Revert the documentation change to WP_Block_Parser::parse() made in [58084]. 2024-05-02 20:09:15 +00:00
class-wp-block-pattern-categories-registry.php
class-wp-block-patterns-registry.php Block Hooks API: Insert metadata at the same time as hooked blocks. 2024-05-23 18:35:14 +00:00
class-wp-block-styles-registry.php Editor: Improve types in docblock after [58246]. 2024-05-30 08:54:07 +00:00
class-wp-block-supports.php Editor: Check that attrs is an array in WP_Block_Supports::apply_block_supports(). 2024-05-06 21:25:15 +00:00
class-wp-block-template.php
class-wp-block-type-registry.php
class-wp-block-type.php Docs: Various docblock corrections. 2024-05-02 00:01:09 +00:00
class-wp-block.php Editor: Simplify the block bindings HTML replacement logic until the HTML API is ready. 2024-06-03 16:13:12 +00:00
class-wp-classic-to-block-menu-converter.php
class-wp-comment-query.php Query: Remove leading whitespace from certain database queries. 2024-03-02 13:38:07 +00:00
class-wp-comment.php
class-wp-customize-control.php Administration: A11y: Replace placeholders with visible labels. 2024-05-14 16:49:09 +00:00
class-wp-customize-manager.php Docs: Update various HelpHub links to avoid unnecessary redirections. 2024-03-11 14:08:10 +00:00
class-wp-customize-nav-menus.php Administration: A11y: Replace placeholders with visible labels. 2024-05-14 16:49:09 +00:00
class-wp-customize-panel.php
class-wp-customize-section.php
class-wp-customize-setting.php
class-wp-customize-widgets.php Administration: A11y: Replace placeholders with visible labels. 2024-05-14 16:49:09 +00:00
class-wp-date-query.php Docs: Various improvements and corrections to inline documentation. 2024-02-16 21:47:12 +00:00
class-wp-dependencies.php
class-wp-dependency.php
class-wp-duotone.php Editor: move global CSS custom properties to :root selector. 2024-05-09 04:09:13 +00:00
class-wp-editor.php Docs: Document the $current_screen global in _WP_Editors::editor(). 2023-12-16 09:31:29 +00:00
class-wp-embed.php
class-wp-error.php
class-wp-fatal-error-handler.php Docs: Document the $wp_locale global in WP_Fatal_Error_Handler::handle(). 2023-12-16 09:38:25 +00:00
class-wp-feed-cache-transient.php
class-wp-feed-cache.php
class-wp-hook.php
class-wp-http-cookie.php
class-wp-http-curl.php
class-wp-http-encoding.php
class-wp-http-ixr-client.php
class-wp-http-proxy.php
class-wp-http-requests-hooks.php
class-wp-http-requests-response.php
class-wp-http-response.php
class-wp-http-streams.php
class-wp-http.php HTTP API: Add support for a description for HTTP status code 425 (Too Early). 2024-04-07 11:18:17 +00:00
class-wp-image-editor-gd.php Coding Standards: Use strict comparison in wp-includes/class-wp-image-editor-gd.php. 2024-04-03 10:33:24 +00:00
class-wp-image-editor-imagick.php Coding Standards: Use strict comparison in wp-includes/class-wp-image-editor-imagick.php. 2024-04-06 13:37:18 +00:00
class-wp-image-editor.php Media: enable AVIF support. 2024-02-02 17:48:15 +00:00
class-wp-list-util.php General: Revert r57698 for WP_List_Util::pluck(). 2024-02-27 22:38:15 +00:00
class-wp-locale-switcher.php I18N: Rename WP_Translation_Controller::instance() method to get_instance(). 2024-01-25 07:53:17 +00:00
class-wp-locale.php Docs: Correct the placement of @global tags in various files. 2024-05-26 20:51:13 +00:00
class-wp-matchesmapregex.php Coding Standards: Rename the $oSelf variable in WP_MatchesMapRegex::apply(). 2024-02-06 01:25:14 +00:00
class-wp-meta-query.php Docs: Typo corrections in class WP_Meta_Query. 2024-04-22 20:25:08 +00:00
class-wp-metadata-lazyloader.php
class-wp-navigation-fallback.php
class-wp-network-query.php Query: Remove leading whitespace from certain database queries. 2024-03-02 13:38:07 +00:00
class-wp-network.php Bootstrap/Load: Update the domain parsing when initialising the cookie domain on Multisite. 2024-05-13 13:34:11 +00:00
class-wp-object-cache.php
class-wp-oembed-controller.php Docs: Add a description for the $wp_embed global. 2024-03-06 05:05:12 +00:00
class-wp-oembed.php Embeds: Add Bluesky as a trusted oEmbed provider. 2024-05-03 07:58:15 +00:00
class-wp-paused-extensions-storage.php Docs: Various improvements and corrections to inline documentation. 2024-02-16 21:47:12 +00:00
class-wp-plugin-dependencies.php Plugin Dependencies: Ensure dependency detection for newly installed plugins. 2024-05-30 15:15:10 +00:00
class-wp-post-type.php Posts, Post Types: Remove now obsolete hardcoded attachment check for autosave support. 2024-05-27 15:24:13 +00:00
class-wp-post.php
class-wp-query.php Query: Add more context to the split_the_query filter. 2024-05-20 21:21:16 +00:00
class-wp-recovery-mode-cookie-service.php
class-wp-recovery-mode-email-service.php
class-wp-recovery-mode-key-service.php Docs: Document the $wp_hasher global in wp_generate_user_request_key(). 2023-12-24 13:05:21 +00:00
class-wp-recovery-mode-link-service.php
class-wp-recovery-mode.php
class-wp-rewrite.php
class-wp-role.php
class-wp-roles.php
class-wp-script-modules.php Script Modules: Hooks are not registered in wp-admin 2024-05-10 09:09:17 +00:00
class-wp-scripts.php Script Loader: Remove unused WP_Scripts::get_unaliased_deps() method. 2024-02-05 09:43:12 +00:00
class-wp-session-tokens.php
class-wp-simplepie-file.php
class-wp-simplepie-sanitize-kses.php
class-wp-site-query.php Query: Remove leading whitespace from certain database queries. 2024-03-02 13:38:07 +00:00
class-wp-site.php
class-wp-styles.php
class-wp-tax-query.php Docs: Various improvements and corrections to inline documentation. 2024-02-16 21:47:12 +00:00
class-wp-taxonomy.php
class-wp-term-query.php Query: Remove leading whitespace from certain database queries. 2024-03-02 13:38:07 +00:00
class-wp-term.php
class-wp-text-diff-renderer-inline.php Coding Standards: Allow $newlineEscape parameter in WP_Text_Diff_Renderer_inline::_splitOnWords(). 2024-02-14 19:27:09 +00:00
class-wp-text-diff-renderer-table.php
class-wp-textdomain-registry.php I18N: Add new lang_dir_for_domain filter. 2024-05-29 15:44:13 +00:00
class-wp-theme-json-data.php Editor: Remove additional calls to WP_Theme_JSON::_construct. 2024-05-23 16:14:13 +00:00
class-wp-theme-json-resolver.php Fix indentation and whitespace in WP_Theme_JSON and WP_Theme_JSON_Resolver 2024-05-31 06:01:15 +00:00
class-wp-theme-json-schema.php
class-wp-theme-json.php Docs: Improve docblock for WP_Theme_JSON::get_stylesheet(). 2024-05-31 09:40:15 +00:00
class-wp-theme.php Themes: Cache block theme patterns in a transient. 2024-04-19 17:59:16 +00:00
class-wp-token-map.php HTML API: Add custom text decoder. 2024-06-02 15:16:13 +00:00
class-wp-user-meta-session-tokens.php
class-wp-user-query.php Docs: Add a note that the who parameter in WP_User_Query is deprecated. 2024-05-19 19:53:19 +00:00
class-wp-user-request.php
class-wp-user.php Docs: Various improvements and corrections to inline documentation. 2024-02-16 21:47:12 +00:00
class-wp-walker.php Coding Standards: Use strict comparison in wp-includes/class-wp-walker.php. 2024-03-17 09:56:16 +00:00
class-wp-widget-factory.php
class-wp-widget.php
class-wp-xmlrpc-server.php General: Remove ableist language from code comments. 2024-02-11 19:14:19 +00:00
class-wp.php
class-wpdb.php Database: Remove back-compat for database servers that don't support utf8mb4. 2024-04-04 15:13:14 +00:00
class.wp-dependencies.php
class.wp-scripts.php
class.wp-styles.php
comment-template.php Themes: Use original template paths when switching blogs. 2024-02-21 19:26:08 +00:00
comment.php General: Consistently cast return value to int in functions that use ceil(). 2024-02-17 15:24:08 +00:00
compat.php Normalize UTF-8 charset slug detection. 2024-05-14 18:05:11 +00:00
cron.php Docs: Various docblock improvements. 2024-05-02 13:19:14 +00:00
date.php
default-constants.php Docs: Correct @since version for COOKIE_DOMAIN default value change. 2024-04-17 09:46:19 +00:00
default-filters.php Block Hooks: Move Posts controller hooked blocks injection logic. 2024-06-03 12:37:14 +00:00
default-widgets.php
deprecated.php I18n: Add more context to the overall use of none in translatable strings. 2024-06-02 21:07:13 +00:00
embed-template.php
embed.php Embeds: Add titles to alternate resource links for oEmbed and REST API. 2024-06-02 22:02:16 +00:00
error-protection.php
feed-atom-comments.php Docs: Document the $post global in comment feed templates. 2024-03-04 12:41:10 +00:00
feed-atom.php
feed-rdf.php
feed-rss.php
feed-rss2-comments.php Docs: Document the $post global in comment feed templates. 2024-03-04 12:41:10 +00:00
feed-rss2.php
feed.php Docs: Correct the placement of @global tags in various files. 2024-05-26 20:51:13 +00:00
fonts.php Docs: Various docblock corrections. 2024-05-02 00:01:09 +00:00
formatting.php Normalize UTF-8 charset slug detection. 2024-05-14 18:05:11 +00:00
functions.php Editor: Expose the Site Editor Patterns page for classic themes. 2024-06-02 08:17:17 +00:00
functions.wp-scripts.php Docs: Correct the placement of @global tags in various files. 2024-05-26 20:51:13 +00:00
functions.wp-styles.php Docs: Correct the placement of @global tags in various files. 2024-05-26 20:51:13 +00:00
general-template.php Themes: Accessibility: Logo block returns empty link when image not set. 2024-05-27 16:41:10 +00:00
global-styles-and-settings.php Block Themes: Add support for relative URLs in top-level theme.json styles 2024-05-31 01:19:14 +00:00
http.php
https-detection.php
https-migration.php
kses.php KSES: Allow leading trailing double hyphen in data attributes 2024-06-03 13:26:09 +00:00
l10n.php I18N: Pass the $locale variable to the load_translation_file filter. 2024-05-04 17:27:09 +00:00
link-template.php Docs: Improve documentation for a few functions accepting a WP_Post object. 2024-05-27 16:29:16 +00:00
load.php Upgrade/Install: Automatically roll back to the previous version when an automatic plugin update results in a fatal error on the front end of the site. 2024-05-10 11:48:15 +00:00
locale.php
media-template.php I18n: Add more context to the overall use of none in translatable strings. 2024-06-02 21:07:13 +00:00
media.php Shortcodes: Remove redundant variable type check in get_post_galleries(). 2024-05-18 15:21:15 +00:00
meta.php
ms-blogs.php Networks and Sites: Remove unused $wpdb global in update_blog_details(). 2024-03-29 11:42:13 +00:00
ms-default-constants.php
ms-default-filters.php
ms-deprecated.php Docs: Fix various typos and spelling mistakes. 2024-04-12 17:47:13 +00:00
ms-files.php
ms-functions.php Docs: Replace miscellaneous incorrect PHPDoc tags. 2023-11-13 11:13:27 +00:00
ms-load.php Coding Standards: Use strict comparison in wp-includes/ms-load.php. 2024-03-25 17:19:17 +00:00
ms-network.php
ms-settings.php
ms-site.php Bootstrap/Load: Add support for custom ports in multisite site addresses. 2024-05-04 19:25:10 +00:00
nav-menu-template.php Coding Standards: Use strict comparison in wp-includes/nav-menu-template.php. 2024-05-09 15:16:14 +00:00
nav-menu.php Coding Standards: Use strict comparison in wp-includes/nav-menu.php. 2024-05-08 18:37:14 +00:00
option.php Options: Add 'label' argument to register_setting. 2024-05-29 08:53:09 +00:00
pluggable-deprecated.php
pluggable.php Users: Account for returning false from the authenticate filter. 2024-04-13 16:33:13 +00:00
plugin.php
post-formats.php Docs: Improve documentation for a few functions accepting a WP_Post object. 2024-05-27 16:29:16 +00:00
post-template.php Coding Standards: Use strict comparison in wp-includes/post-template.php. 2024-06-01 17:37:18 +00:00
post-thumbnail-template.php
post.php Media: Protect mime type icon function from simple errors. 2024-05-30 13:03:12 +00:00
query.php
registration-functions.php
registration.php
rest-api.php Embeds: Add titles to alternate resource links for oEmbed and REST API. 2024-06-02 22:02:16 +00:00
revision.php Options: Update default autoload values used in core. 2024-05-06 16:35:19 +00:00
rewrite.php
robots-template.php
rss-functions.php
rss.php Docs: Improve various globals documentation, as per docblock standards. 2024-01-28 08:19:17 +00:00
script-loader.php Script Loader: Add missing escaping function to Moment.js string localization. 2024-06-02 22:35:10 +00:00
script-modules.php Docs: Correct the placement of @global tags in various files. 2024-05-26 20:51:13 +00:00
session.php
shortcodes.php Docs: Update pre_do_shortcode_tag and do_shortcode_tag filter DocBlocks. 2024-05-25 03:04:12 +00:00
sitemaps.php
spl-autoload-compat.php
style-engine.php Editor: add Style Engine support for nested CSS rules. 2024-05-03 04:47:12 +00:00
taxonomy.php Options: Update default autoload values used in core. 2024-05-06 16:35:19 +00:00
template-canvas.php
template-loader.php
template.php Themes: Use original template paths when switching blogs. 2024-02-21 19:26:08 +00:00
theme-i18n.json Editor: add aspect ratio presets support. 2024-05-30 03:10:10 +00:00
theme-previews.php Themes: fix documentation link. 2023-12-08 06:32:24 +00:00
theme-templates.php
theme.json Editor: add aspect ratio presets support. 2024-05-30 03:10:10 +00:00
theme.php Themes: Accessibility: Logo block returns empty link when image not set. 2024-05-27 16:41:10 +00:00
update.php
user.php Coding Standards: Use strict comparison in wp-includes/user.php. 2024-05-30 21:19:18 +00:00
vars.php Permalinks: Detect FrankenPHP web server support. 2024-04-04 13:40:06 +00:00
version.php HTML API: Report real and virtual nodes in the HTML Processor. 2024-06-03 19:47:15 +00:00
widgets.php Docs: Correct the placement of @global tags in various files. 2024-05-26 20:51:13 +00:00
wp-db.php
wp-diff.php