Skip to content

HTML API: Replace Open Elements handlers with explicit stack accounting#12037

Draft
dmsnell wants to merge 4 commits into
WordPress:trunkfrom
dmsnell:html-api/replace-push-pop-handlers
Draft

HTML API: Replace Open Elements handlers with explicit stack accounting#12037
dmsnell wants to merge 4 commits into
WordPress:trunkfrom
dmsnell:html-api/replace-push-pop-handlers

Conversation

@dmsnell
Copy link
Copy Markdown
Member

@dmsnell dmsnell commented Jun 1, 2026

Trac ticket: Core-65383

The push and pop handlers in the HTML API were convenient when initially building the class, but being indirect, they involve an overhead when calling and require additional protection for avoiding calling the wrong handlers when and if an instance of the class were to be unserialized.

This patch replaces the direct calls by modifying the return values of the methods in the Open Elements calss to return pushed or popped elements. This makes it possible for the HTML Processor to track its own accounting directly while still delegating the stack operations to the Open Elements.

Patch developed by Codex on instruction from dmsnell.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 1, 2026

Test using WordPress Playground

The changes in this pull request can previewed and tested using a WordPress Playground instance.

WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser.

Some things to be aware of

  • All changes will be lost when closing a tab with a Playground instance.
  • All changes will be lost when refreshing the page.
  • A fresh instance is created each time the link below is clicked.
  • Every time this pull request is updated, a new ZIP file containing all changes is created. If changes are not reflected in the Playground instance,
    it's possible that the most recent build failed, or has not completed. Check the list of workflow runs to be sure.

For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation.

Test this pull request with WordPress Playground.

The push and pop handlers in the HTML API were convenient when initially
building the class, but being indirect, they involve an overhead when
calling and require additional protection for avoiding calling the wrong
handlers when and if an instance of the class were to be unserialized.

This patch replaces the direct calls by modifying the return values of
the methods in the Open Elements calss to return pushed or popped
elements. This makes it possible for the HTML Processor to track its
own accounting directly while still delegating the stack operations to
the Open Elements.

Patch developed by Codex on instruction from dmsnell.
@dmsnell dmsnell force-pushed the html-api/replace-push-pop-handlers branch from 60ab0f1 to 989d4ab Compare June 1, 2026 13:07
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