Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTML API: Defer applying updates until necessary. #6120

Closed

Conversation

dmsnell
Copy link
Contributor

@dmsnell dmsnell commented Feb 15, 2024

Trac ticket: Core-60697

When making repeated updates to a document, the Tag Processor will end
up copying the entire document once for every update. This can lead to
catastrophic behavior in the worse case.

However, when batch-applying updates it's able to copy chunks of the
document in one thread and only end up copying the entire document once
for the entire batch.

Previously the Tag Processor has been eagerly applying updates, but in
this patch it defers applying those updates as long as is possible.

Copy link

github-actions bot commented Feb 15, 2024

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Core Committers: Use this line as a base for the props when committing in SVN:

Props dmsnell, bernhard-reiter, jonsurrell, westonruter.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

Copy link

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

  • The Plugin and Theme Directories cannot be accessed within Playground.
  • 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.

@dmsnell dmsnell force-pushed the html-api/defer-applying-updates branch from 3f914f0 to 54c9301 Compare February 15, 2024 22:13
@@ -299,15 +299,23 @@ public function test_bookmarks_complex_use_case() {
public function test_updates_bookmark_for_additions_after_both_sides() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You might wanna add the @ticket XXXXXX reference for this change to this test's docblock as well 🙂

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added. Is it fine to add the explanation after the ticket id or will that throw off some parser somewhere? I can remove the explanation if it's a problem.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks as if no other test cases are using an explanation after the ticket id, so maybe better remove it for consistency's sake.

Copy link
Contributor

@ockham ockham left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

As always, really appreciate the test coverage (both pre-existing and new) which helps assuage any concerns I might've had about the pointer arithmetics involved in this 🙂

@dmsnell dmsnell force-pushed the html-api/defer-applying-updates branch 8 times, most recently from 2251fae to b992efd Compare March 9, 2024 00:19
*
* @return bool Whether a token was parsed.
*/
private function base_class_next_token() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗒️ A note for myself and other reviewers. Private methods cannot be extended so this should be safe. In PHP 8 it would be a warning to add final here.

src/wp-includes/html-api/class-wp-html-tag-processor.php Outdated Show resolved Hide resolved
dmsnell and others added 6 commits March 11, 2024 16:07
When making repeated updates to a document, the Tag Processor will end
up copying the entire document once for every update. This can lead to
catastrophic behavior in the worse case.

However, when batch-applying updates it's able to copy chunks of the
document in one thread and only end up copying the entire document once
for the entire batch.

Previously the Tag Processor has been eagerly applying udpates, but in
this patch it defers applying those updates as long as is possible.

Co-authored-by: Bernie Reiter <bernhard-reiter@git.wordpress.org>
Co-authored-by: Jon Surrell <sirreal@git.wordpress.org>
@dmsnell dmsnell force-pushed the html-api/defer-applying-updates branch from 3bc1835 to 3b9b322 Compare March 11, 2024 23:08
Co-authored-by: Weston Ruter <westonruter@git.wordpress.org>
pento pushed a commit that referenced this pull request Mar 11, 2024
When making repeated updates to a document, the Tag Processor will end
up copying the entire document once for every update. This can lead to
catastrophic behavior in the worse case.

However, when batch-applying updates it's able to copy chunks of the
document in one thread and only end up copying the entire document once
for the entire batch.

Previously the Tag Processor has been eagerly applying udpates, but in
this patch it defers applying those updates as long as is possible.

Developed in #6120
Discussed in https://core.trac.wordpress.org/ticket/60697

Props: dmsnell, bernhard-reiter, jonsurrell, westonruter.
Fixes #60697.
Follow-up to [55706], [56941], [57348].



git-svn-id: https://develop.svn.wordpress.org/trunk@57805 602fd350-edb4-49c9-b593-d223f7449a82
@dmsnell
Copy link
Contributor Author

dmsnell commented Mar 11, 2024

Merged in [57805]
dabde02

@dmsnell dmsnell closed this Mar 11, 2024
markjaquith pushed a commit to WordPress/WordPress that referenced this pull request Mar 11, 2024
When making repeated updates to a document, the Tag Processor will end
up copying the entire document once for every update. This can lead to
catastrophic behavior in the worse case.

However, when batch-applying updates it's able to copy chunks of the
document in one thread and only end up copying the entire document once
for the entire batch.

Previously the Tag Processor has been eagerly applying udpates, but in
this patch it defers applying those updates as long as is possible.

Developed in WordPress/wordpress-develop#6120
Discussed in https://core.trac.wordpress.org/ticket/60697

Props: dmsnell, bernhard-reiter, jonsurrell, westonruter.
Fixes #60697.
Follow-up to [55706], [56941], [57348].


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


git-svn-id: http://core.svn.wordpress.org/trunk@57306 1a063a9b-81f0-0310-95a4-ce76da25c4cd
@dmsnell dmsnell deleted the html-api/defer-applying-updates branch March 11, 2024 23:56
github-actions bot pushed a commit to platformsh/wordpress-performance that referenced this pull request Mar 12, 2024
When making repeated updates to a document, the Tag Processor will end
up copying the entire document once for every update. This can lead to
catastrophic behavior in the worse case.

However, when batch-applying updates it's able to copy chunks of the
document in one thread and only end up copying the entire document once
for the entire batch.

Previously the Tag Processor has been eagerly applying udpates, but in
this patch it defers applying those updates as long as is possible.

Developed in WordPress/wordpress-develop#6120
Discussed in https://core.trac.wordpress.org/ticket/60697

Props: dmsnell, bernhard-reiter, jonsurrell, westonruter.
Fixes #60697.
Follow-up to [55706], [56941], [57348].


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


git-svn-id: https://core.svn.wordpress.org/trunk@57306 1a063a9b-81f0-0310-95a4-ce76da25c4cd
pento pushed a commit that referenced this pull request Mar 12, 2024
When making repeated updates to a document, the Tag Processor will end
up copying the entire document once for every update. This can lead to
catastrophic behavior in the worse case.

However, when batch-applying updates it's able to copy chunks of the
document in one thread and only end up copying the entire document once
for the entire batch.

Previously the Tag Processor has been eagerly applying udpates, but in
this patch it defers applying those updates as long as is possible.
Developed in #6120
Discussed in https://core.trac.wordpress.org/ticket/60697

Follow-up to [55706], [56941], [57348].

Reviewed by swissspidy.
Merges [57805] to the to the 6.5 branch.

Props dmsnell, bernhard-reiter, jonsurrell, westonruter.
Fixes #60697.





git-svn-id: https://develop.svn.wordpress.org/branches/6.5@57815 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request Mar 12, 2024
When making repeated updates to a document, the Tag Processor will end
up copying the entire document once for every update. This can lead to
catastrophic behavior in the worse case.

However, when batch-applying updates it's able to copy chunks of the
document in one thread and only end up copying the entire document once
for the entire batch.

Previously the Tag Processor has been eagerly applying udpates, but in
this patch it defers applying those updates as long as is possible.
Developed in WordPress/wordpress-develop#6120
Discussed in https://core.trac.wordpress.org/ticket/60697

Follow-up to [55706], [56941], [57348].

Reviewed by swissspidy.
Merges [57805] to the to the 6.5 branch.

Props dmsnell, bernhard-reiter, jonsurrell, westonruter.
Fixes #60697.




Built from https://develop.svn.wordpress.org/branches/6.5@57815


git-svn-id: http://core.svn.wordpress.org/branches/6.5@57316 1a063a9b-81f0-0310-95a4-ce76da25c4cd
draganescu pushed a commit to draganescu/wordpress-develop that referenced this pull request Apr 9, 2024
* Build/Test Tools: Ignore `src/wp-content/fonts` from version control.

Props ironprogrammer, afercia.
Fixes #60337.

git-svn-id: https://develop.svn.wordpress.org/trunk@57640 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Merge `uses_context` defined by block bindings sources with block types

Adds logic that fixes the limitation for souces by allowing merging the `uses_context` defined by block bindings sources into supported block types. Each source defines the context it needs and it is added to the block types that are using the block bindings API.

Fixes #60525.
Props santosguillamot, gziolo, czapla, thekt12.




git-svn-id: https://develop.svn.wordpress.org/trunk@57641 602fd350-edb4-49c9-b593-d223f7449a82

* Twenty Twenty-Four: Increase the color contrast of the Ember style variation.

This ensures that the color contrast passes the WCAG AA contrast ratio for normal text.

Follow-up to [56951].

Props poena, Anlino, richtabor, huzaifaalmesbah, shailu25, itpathsolutions.
Fixes #60459.

git-svn-id: https://develop.svn.wordpress.org/trunk@57642 602fd350-edb4-49c9-b593-d223f7449a82

* REST API: Clarify documentation for methods and filters relating to REST API search endpoints.

See #59651


git-svn-id: https://develop.svn.wordpress.org/trunk@57643 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Various improvements and corrections to inline documentation.

See #59651


git-svn-id: https://develop.svn.wordpress.org/trunk@57644 602fd350-edb4-49c9-b593-d223f7449a82

* Canonical: Limit post types searched by `redirect_guess_404_permalink()`.

Limit the post types searched in `redirect_guess_404_permalink()` to public, searchable post types. This prevents redirects to 404 pages and the exposure of private post type slugs.

Props francescocarlucci, peterwilsoncc, rajinsharwar.
Fixes #59795.



git-svn-id: https://develop.svn.wordpress.org/trunk@57645 602fd350-edb4-49c9-b593-d223f7449a82

* Interactivity API: Use string instead of object in `data-wp-interactive` attribute.

The server directive processing, integrated in [57563], supports a simplified format for passing the namespace to `data-wp-interactive`.

Props cbravobernal, gziolo.
Fixes #60542.
See #60356.

git-svn-id: https://develop.svn.wordpress.org/trunk@57646 602fd350-edb4-49c9-b593-d223f7449a82

* General: Further improve language in SimplePie code comments.

Follow-up to [57584].

Props manfcarlo.
Fixes #60247.

git-svn-id: https://develop.svn.wordpress.org/trunk@57647 602fd350-edb4-49c9-b593-d223f7449a82

* General: Consistently cast return value to `int` in functions that use `ceil()`.

The return value of `ceil()` is still of type `float` as the value range of `float` is usually bigger than that of `int`.

Props crstauf, audrasjb.
Fixes #58683.

git-svn-id: https://develop.svn.wordpress.org/trunk@57648 602fd350-edb4-49c9-b593-d223f7449a82

* Interactivity API: Skip instead of bail out if HTML contains `SVG` or `MATH`.

Addresses an issue with server-side processing of directives when there is e.g. an SVG icon a navigation menu.

Props cbravobernal, westonruter, dmsnell, swissspidy.
Fixes #60517.

git-svn-id: https://develop.svn.wordpress.org/trunk@57649 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Use `assertSame()` in `get_comment_pages_count()` tests.

This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Follow-up to [27055], [48937], [54402], [57244], [57648].

Props costdev.
See #58683, #59655.

git-svn-id: https://develop.svn.wordpress.org/trunk@57650 602fd350-edb4-49c9-b593-d223f7449a82

* Canonical: Rename `admin_canonical_url` filter to `wp_admin_canonical_url`.

This improves consistency as it matches the name of the function it is used in.

Props peterwilsoncc, shailu25.
Fixes #59545.

git-svn-id: https://develop.svn.wordpress.org/trunk@57651 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Prevent PHP warning when parsing duotone hue values.

Props jacobcassidy, rahmohn, mukesh27.
Fixes #59496.

git-svn-id: https://develop.svn.wordpress.org/trunk@57652 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Use `assertSame()` in `WP_Query` tests  involving `::$max_num_pages` property.

This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Follow-up to [48937], [54402], [54768], [57648].

Props costdev.
See #58683, #59655.

git-svn-id: https://develop.svn.wordpress.org/trunk@57653 602fd350-edb4-49c9-b593-d223f7449a82

* Script Loader: Switch to JavaScript translations.

Update JavaScript files for tag suggestions and the TinyMCE link plugin to use client side translations. This allows for `_n()` to be used for strings requiring singular and plural versions in which the correct form is only known client side.

Props audrasjb, chaion07, costdev, hellofromtonya, johnbillion, marybaum, nicolefurlan, oglekler, rebasaurus, rsiddharth, sergeybiryukov, shaampk1, shahariaazam, swissspidy, tobifjellner.
Fixes #48244.



git-svn-id: https://develop.svn.wordpress.org/trunk@57654 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Update third-party GitHub Actions.

This updates the following third-party GitHub Actions to their latest versions:

* Updates `actions/setup-node` from 4.0.1 to 4.0.2
* Updates `actions/upload-artifact` from 4.3.0 to 4.3.1

Props desrosj, thelovekesh.
See #59805.

git-svn-id: https://develop.svn.wordpress.org/trunk@57655 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Use `assertSame()` in `WP_REST_Navigation_Fallback_Controller` tests.

This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Follow-up to [56052].

See #59655.

git-svn-id: https://develop.svn.wordpress.org/trunk@57656 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Format and sanitize font family names according the CSS spec.

This fixes two bugs in the font library. 
 - Fonts using special characters were not being rendered properly in the frontend.
 - Allows the ability to use generic() in font family names.

Props mmaattiiaass, nithins53, kafleg, vivekawsm, swissspidy, audrasjb.
Fixes #60537.

git-svn-id: https://develop.svn.wordpress.org/trunk@57657 602fd350-edb4-49c9-b593-d223f7449a82

* Plugin Dependencies: Remove auto-deactivation and bootstrapping logic.

Automatic deactivation of dependents with unmet dependencies requires a write operation to the database. This was performed during Core's bootstrap, which risked the database and cache becoming out-of-sync on sites with heavy traffic.

No longer loading plugins that have unmet requirements has not had a final approach decided core-wide, and is still in discussion in #60491 to be handled in a future release.

The `plugin_data` option, used to persistently store plugin data for detecting unmet dependencies during Core's bootstrap, is no longer needed.

Follow-up to [57545], [57592], [57606], [57617].

Props dd32, azaozz, swissspidy, desrosj, afragen, pbiron, zunaid321, costdev.
Fixes #60457. See #60491, #60510, #60518.

git-svn-id: https://develop.svn.wordpress.org/trunk@57658 602fd350-edb4-49c9-b593-d223f7449a82

* REST API: Pass correct context to embedded items.

Fixes a regression introduced in [57623] where navigation embed items were missing `raw` property values.

Props mamaduka, swissspidy, youknowriad, timothyblynjacobs.
Fixes #43439.

git-svn-id: https://develop.svn.wordpress.org/trunk@57659 602fd350-edb4-49c9-b593-d223f7449a82

* Block Hooks: Introduce a new `hooked_block` filter.

This is a counterpart to the dynamic `hooked_block_{$block_type}` filter introduced in [57354],
which makes it easier to modify all hooked blocks prior to insertion.

Also adds the hooked block type as an additional argument to both filters for consistency.

Props bernhard-reiter, swissspidy.
Fixes #60574.

git-svn-id: https://develop.svn.wordpress.org/trunk@57660 602fd350-edb4-49c9-b593-d223f7449a82

* Script Loader: Add hooks for script modules and interactivity API only on `after_setup_theme`.

Ensures that `wp_is_block_theme()` is not called too early before the themes are fully setup.
This addresses an issue where a parent theme was mistakenly marked as being missing.

Props scruffian, youknowriad, swissspidy, poena, dennysdionigi, bgardner, westonruter.
Fixes #60411.

git-svn-id: https://develop.svn.wordpress.org/trunk@57661 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Synchronize Theme.JSON unit test between Core and Gutenberg.

Merges the changes from Core and Gutenberg for the following tests:

- WP_REST_Global_Styles_Controller_Test
- Tests_Theme_wpThemeJsonResolver
- Tests_Theme_wpThemeJsonSchema
- Tests_Theme_wpThemeJson

This will help ensure the stability of the theme.json style generation.

Props ajlende, scruffian, aaronrobertshaw, get_dave, youknowriad.
Fixes #60387.

git-svn-id: https://develop.svn.wordpress.org/trunk@57662 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Update Packages with the latest bug fixes for 6.5 beta 2.

It includes all the backports from this Gutenberg PR https://github.com/WordPress/gutenberg/pull/59197

Props youknowriad, get_dave.
See #60315.

git-svn-id: https://develop.svn.wordpress.org/trunk@57663 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Fix instance element styles for links applying to buttons.

These changes fix the selector used by block instance element styles for links so they do not get incorrectly applied to buttons.

Props aaronrobertshaw, freewebmentor, mukesh27.
Fixes #60557.

git-svn-id: https://develop.svn.wordpress.org/trunk@57664 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Fix docblocks in a couple of test files to use two asterisks.

Props mahnewr, rudlinkon,kraftbj, audrasjb, mukesh27.
Fixes #60513.

git-svn-id: https://develop.svn.wordpress.org/trunk@57665 602fd350-edb4-49c9-b593-d223f7449a82

* Block Hooks: Fix actual/expected order in test assertions.

In test assertions for the `set_ignored_hooked_blocks_metadata` function, the actual value was erroneously passed as the first argument, and the expected value as the second. This changeset rectifies this by swapping the arguments.

Follow-up [57627].
See #60506.

git-svn-id: https://develop.svn.wordpress.org/trunk@57666 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Bump the Node.js version for Codespaces.

This bumps the version of Node.js used in GitHub Codespaces from 16 to 20.

Follow up to [57212].

Props itschristiandale, huzaifaalmesbah.
Fixes #60555.

git-svn-id: https://develop.svn.wordpress.org/trunk@57667 602fd350-edb4-49c9-b593-d223f7449a82

* Block Hooks: Allow hooked_block filters to return null.

Allow returning null from the `hooked_block` and `hooked_block_{$hooked_block_type}` filters to suppress a hooked block from being inserted. This is required to allow extenders conditionally inserting a hooked block based on e.g. the value of an attribute of the anchor block.

Props swissspidy, gziolo, joshuatf, tomjcafferkey.
Fixes 60580.

git-svn-id: https://develop.svn.wordpress.org/trunk@57668 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Update Packages with the latest bug fixes for 6.5 beta 2 (Round 2).

It includes all the backports from this Gutenberg PR https://github.com/WordPress/gutenberg/pull/59208

See #60315.

git-svn-id: https://develop.svn.wordpress.org/trunk@57669 602fd350-edb4-49c9-b593-d223f7449a82

* WordPress 6.5 Beta 2.




git-svn-id: https://develop.svn.wordpress.org/trunk@57670 602fd350-edb4-49c9-b593-d223f7449a82

* Post WordPress 6.5 Beta 2 version bump.




git-svn-id: https://develop.svn.wordpress.org/trunk@57671 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Use `assertSame()` in `wp_read_image_metadata()` tests.

This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Follow-up to [49/tests], [198/tests], [34374], [48937], [52269].

Props costdev.
See #59655.

git-svn-id: https://develop.svn.wordpress.org/trunk@57673 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Mock API response in Plugin Dependencies tests.

Previously, the tests for `WP_Plugin_Dependencies::get_dependency_names()` performed an API request to WordPress.org. If an HTTP failure occurred when connecting to WordPress.org, this could trigger test failures.

This mocks the API response to prevent HTTP failures from triggering test failures.

Follow-up to [57545].

Props swissspidy, peterwilsoncc, costdev.
See #59647.

git-svn-id: https://develop.svn.wordpress.org/trunk@57674 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Allow symlinks in directories provided to `get_block_asset_url()`.

This changeset allows using symbolic links for `editorScript` and `editorStyle` in `register_block_type()`. This adds `realpath` to template and stylesheet in `get_block_asset_url()` to ensure returning canonicalized absolute pathnames.

Follow-up to [56683].

Props antonlukin, spacedmonkey, maxpertici.
Fixes #59175.
See #58525.





git-svn-id: https://develop.svn.wordpress.org/trunk@57675 602fd350-edb4-49c9-b593-d223f7449a82

* Block Hooks: Make test a bit easier to read.

Follow-up [57668].
Props gziolo.
See #60580.

git-svn-id: https://develop.svn.wordpress.org/trunk@57676 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Add fallback for block version when registering block script module

It aligns implementation with how regular scripts are handled.

Follow-up [57437].
See #60233.




git-svn-id: https://develop.svn.wordpress.org/trunk@57677 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Correct the URLs that document the available images for MySQL and MariaDB for the local development environment.

See #59930


git-svn-id: https://develop.svn.wordpress.org/trunk@57678 602fd350-edb4-49c9-b593-d223f7449a82

* Plugins: Output plugin card elements in the order they're displayed.

Previously, the notice for listing dependencies in a plugin card was styled with the CSS `order` properties. This created a mismatch between the visual order and DOM order of elements in the plugin card.

For accessibility, visual order and DOM order must always match when they affect meaning and functionality.

This removes the CSS `order` properties and outputs the dependencies notice later, making the visual and DOM order match. Some unused/empty CSS is also removed.

Follow-up to [57545].

Props afercia, afragen, bosskhj, huzaifaalmesbah, mukesh27, costdev.
Fixes #60488.

git-svn-id: https://develop.svn.wordpress.org/trunk@57679 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Use `assertSame()` in `wp_insert_post()` tests.

This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Follow-up to [34085], [35183], [48937], [53782], [53785], [53883], [54402].

Props costdev.
See #59655.

git-svn-id: https://develop.svn.wordpress.org/trunk@57680 602fd350-edb4-49c9-b593-d223f7449a82

* Export: Include featured image for posts or pages.

This bugfix resolves an issue in `export_wp()` with featured images.

When using Tools > Export and selecting either Posts or Pages (with or without a specific author), the resulting XML file now includes a XML item for each post|page's featured image attachment and its metadata.

Uses same chunking (for performance) and code patterns from existing code in the same file.

Adds a new test class for `export_wp()` with code coverage specific to this bugfix.

Follow-up to [34326], [14444], [6375], [6335].

Props billseymour, nateallen, petitphp, hellofromTonya, duck_, jane, rcain, jghazally, jghazally, smub, batmoo, axwax, creativeslice, dlocc, nacin, wonderboymusic, ganon, SergeyBiryukov, hlashbrooke, chriscct7, fischfood, hifidesign, ankit-k-gupta, 5um17, shailu25, huzaifaalmesbah, mukesh27.
Fixes #17379.

git-svn-id: https://develop.svn.wordpress.org/trunk@57681 602fd350-edb4-49c9-b593-d223f7449a82

* Script Loader: Fix small typo in `wp_remove_surrounding_empty_script_tags` docblock.

Props shailu25.
Fixes #60591.

git-svn-id: https://develop.svn.wordpress.org/trunk@57682 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Load pattern content only when used.

Previously, the content for all registered patterns would get loaded on each request when the patterns are registered. Instead, this stores the path the pattern file during registration and reads the content the first time the pattern is used, which is a performance optimization.

Props thekt12, spacedmonkey, gziolo, aristath, joemcgill.
Fixes #59532.


git-svn-id: https://develop.svn.wordpress.org/trunk@57683 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Query mariadb.org instead of mariadb.com in README test.

The `test_readme_mariadb_version()` test method has been experiencing HTTP failures that result in test and CI failures.

This switches to mariadb.org which may result in more stable test runs.

Some additional safety assertions are also included.

Props hellofromTonya, SergeyBiryukov, costdev.
See #59647.

git-svn-id: https://develop.svn.wordpress.org/trunk@57684 602fd350-edb4-49c9-b593-d223f7449a82

* Themes: Use original template paths when switching blogs.

This fixes a bug introduced by [57129] and [56635] in which deprecating the previous  `TEMPLATEPATH` and `STYLESHEETPATH` constants in favor of `get_template_directory()` and `get_stylesheet_directory()` functions caused the active theme template path to change when using `switch_to_blog()`.

This introduces a new function, `wp_set_template_globals()`, which is called during the bootstrap process to store the template paths to new globals values `$wp_template_path` and `$wp_stylesheet_path`. This restores behavior to how things worked prior to [56635] but retains the ability for template values to be reset for better testability.

Related #18298, #60025.

Props joemcgill, flixos90, mukesh27, swissspidy, manfcarlo, metropolis_john, jeremyfelt.
Fixes #60290.


git-svn-id: https://develop.svn.wordpress.org/trunk@57685 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Ensure font collection metadata can be properly localized.

Updates `wp_register_font_collection()` and `WP_Font_Collection` so that only font families can be loaded from a file or URL.
All metadata, such as name, description, and list of font categories, needs to be passed directly in PHP so that it can be properly localized.

Props swissspidy, mmaattiiaass, grantmkin, youknowriad.
Fixes #60509.

git-svn-id: https://develop.svn.wordpress.org/trunk@57686 602fd350-edb4-49c9-b593-d223f7449a82

* Media: Ensure `wp_mine_type_icon()` returns expected file type.

Add an argument to `wp_mime_type_icon()` to control the file type returned. Following [57638], there are two file formats in the media icons directory. Different systems would pull up different files by default dependent on the order loaded into the cached array, causing intermittent test failures and unpredictable behavior.

Function update allows core usages to always return the `.svg` while maintaining backwards compatibility for any extended usage that expects a `.png`. Follow up to [57638].

Also handles a missed case in media list view.

Props SergeyBiryukov, sabernhardt, joedolson, antpb.
Fixes #31352.

git-svn-id: https://develop.svn.wordpress.org/trunk@57687 602fd350-edb4-49c9-b593-d223f7449a82

* Media: Prevent Media Library sidebar from showing with no actions.

Fix an issue where the actions sidebar in the media library could appear when there are no relevant actions available.

Props sruthi89, nithi22, ivanzhuck, dhruvishah2203, joemcgill, ukdrahul, joedolson, shailu25.
Fixes #58973.

git-svn-id: https://develop.svn.wordpress.org/trunk@57688 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Revert r57684.

Changes to the `test_readme_mariadb_version()` test were made in an effort to stabilize the connection tests and CI failures. After the changeset, all multisite tests CI jobs connected and passed, but oddly all single site tests CI jobs repeatedly and consistently failed.

Reverting to unblock the CI jobs while continued investigation happens.

See #59647.

git-svn-id: https://develop.svn.wordpress.org/trunk@57689 602fd350-edb4-49c9-b593-d223f7449a82

* Twenty Twenty-Three: Update XX-large font-sizes for accessibility.

Update XX-large font-sizes so that the responsive typography meets the minimum ratio between the min and max font-sizes of 0.61 required for accessible responsive typography.

Props mikachan, ryokuhi, poena, dhruvishah2203, joedolson.
Fixes #58603.

git-svn-id: https://develop.svn.wordpress.org/trunk@57690 602fd350-edb4-49c9-b593-d223f7449a82

* Media: Fix broken media modal following [57688]

Fix undefined TypeError overlooked in [57688].

Props antpb, swissspidy, joedolson.
Fixes #58973.

git-svn-id: https://develop.svn.wordpress.org/trunk@57691 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Use more inclusive term in `rest_filter_response_fields` docblock.

See #59651.

git-svn-id: https://develop.svn.wordpress.org/trunk@57692 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Improve docblock for `$x_redirect_by` param in `wp_redirect()`.

The `$x_redirect_by` parameter is supported by `wp_redirect()` and `wp_safe_redirect()` to set the `X-Redirect-By` header.
It can be modified via the `x_redirect_by` filter.

This updates the docblock to clarify that `false` can be passed to disable sending the header, which was previously undocumented behavior.

Props kkmuffme, swissspidy.
Fixes #60209.

git-svn-id: https://develop.svn.wordpress.org/trunk@57693 602fd350-edb4-49c9-b593-d223f7449a82

* Coding Standards: Correct alignment in `wp_get_attachment_image_src()`.

This resolves a WPCS warning:
{{{
Equals sign not aligned with surrounding statements
}}}
so that the output of `composer format` is clean.

Follow-up to [57687].

See #59650.

git-svn-id: https://develop.svn.wordpress.org/trunk@57694 602fd350-edb4-49c9-b593-d223f7449a82

* Shortcodes: Fix small typo in inline documentation.

Props shailu25, mukesh27.
Fixes #60603.

git-svn-id: https://develop.svn.wordpress.org/trunk@57695 602fd350-edb4-49c9-b593-d223f7449a82

* Upgrade/Install: Fix upgrade count decrement on Updates page.

Fixes a JavaScript error that caused the update count bubble not to decrement when updating a plugin.

Props nendeb55, swissspidy.
Fixes #60589.

git-svn-id: https://develop.svn.wordpress.org/trunk@57696 602fd350-edb4-49c9-b593-d223f7449a82

* Upgrade/Install: Improve plugin install button appearance.

Fixes a misaligned spinner icon when opening the plugin details information in a new tab rather than the modal, and then installing the plugin in that window.

Props huzaifaalmesbah, zunaid321, swissspidy.
Fixes #60494.

git-svn-id: https://develop.svn.wordpress.org/trunk@57697 602fd350-edb4-49c9-b593-d223f7449a82

* General: Handle missing field in WP_List_Util::pluck().

Handles when the `$field` (i.e. key or property) is missing in one of the `$input_list` items by checking the key (array) or property (object) exists before using it for assignment.

Resolves the following bugs:

* a PHP warning for undefined key|property.
* `null` being set for that array or object within the returned list.

The changes resolve the issues in both `WP_List_Util::pluck()` (if invoked directly) and `wp_list_pluck()`.

Also includes an additional test for the scenario where the `wp_list_pluck()` `$index_key` is not `null`, the `$field` is missing in one of the `$input_list` items.

Follow-up to [55423], [51663], [42527], [38928].

Props iamarunchaitanyajami, davidbinda, hellofromTonya, helgatheviking.
Fixes #59774.

git-svn-id: https://develop.svn.wordpress.org/trunk@57698 602fd350-edb4-49c9-b593-d223f7449a82

* Script Loader: Inject wp_remove_surrounding_empty_script_tags function name in returned error string using sprintf.

The name of this function should not be editable by the translator in the internationalized return error string.

Props naoki0h, swissspidy, kirasong.
Fixes #60590.


git-svn-id: https://develop.svn.wordpress.org/trunk@57699 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Add id to the supported Image's binding attributes

Syncs changes from the Gutenberg plugin: https://github.com/WordPress/gutenberg/pull/59194.

Fixes #60577.
Props kevin940726, ankit-k-gupta, sonali844, harshalkadu, gziolo.



git-svn-id: https://develop.svn.wordpress.org/trunk@57700 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Add a `@since` note for `$preferred_ext` parameter in `wp_mime_type_icon()`.

Follow-up to [57687].

See #31352.

git-svn-id: https://develop.svn.wordpress.org/trunk@57701 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Update JSHint config to remove deprecated options.

Removes deprecated options that no longer have any effect, and updates the targeted ES version in line with WordPress’ browser support.

This change mostly allows new code to properly use trailing commas, as added by the Prettier formatter.

Future efforts should rather go towards adopting ESLint for code formatting, see #31823.

Props netweb.
Fixes #28236.

git-svn-id: https://develop.svn.wordpress.org/trunk@57702 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Improve PHPUnit tests for block pattern registration.

This is a followup to [57683], which adds additional unit test coverage to ensure block pattern content is not loaded from files during registration, but instead when those patterns are accessed. This also improves the `set_up` and `tear_down` methods for the `Tests_Blocks_wpBlockPattersRegistry` test class to ensure that any modifications made to registered blocks during the tests are reset after each test.

Props thekt12, joemcgill.
See #59532.


git-svn-id: https://develop.svn.wordpress.org/trunk@57703 602fd350-edb4-49c9-b593-d223f7449a82

* I18N: Do not set translation controller locale in bootstrap.

Removes the `WP_Translation_Controller::set_locale()` call from `wp-settings.php`, which happened before the current user was loaded.
That caused translations to be missing when the site locale and user locale were different, as the translation was associated with the wrong locale.

Turns out this call was not needed at all, as the locale will be set/updated when calling `load_textdomain()` anyway.

Props oglekler.
See #59656.

git-svn-id: https://develop.svn.wordpress.org/trunk@57704 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Use `assertSame()` in `comment_exists()` tests.

This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Follow-up to [34456], [34460].

Props costdev.
See #59655.

git-svn-id: https://develop.svn.wordpress.org/trunk@57705 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Use `assertSame()` in `new_admin_email_subject` filter test.

This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Follow-up to [57283].

See #59655.

git-svn-id: https://develop.svn.wordpress.org/trunk@57706 602fd350-edb4-49c9-b593-d223f7449a82

* Upgrade/Install: Normalize major versions in `is_wp_version_compatible()`.

Modify `is_wp_version_compatible()` to return the expected result for major WordPress versions formatted as either `x.x` or `x.x.0` (for example `6.5` and `6.5.0`).

The WordPress project currently documents major version numbers in both formats leading to confusion for developers using the `is_wp_version_compatible()` function. As the PHP function `version_compare()` treats `x.x` and `x.x.0` as different version numbers this leads to unexpected results in the WP function.

This change removes a trailing `.0` from major version numbers to account for the WordPress project using the two formats interchangeably.

Props afragen, azaozz, costdev, joemcgill, jorbin, kkmuffme, sessioncookiemonster, swissspidy, wazeter.
Fixes #59448.


git-svn-id: https://develop.svn.wordpress.org/trunk@57707 602fd350-edb4-49c9-b593-d223f7449a82

* Toolbar: Accessibility: Keyboard navigation for screen readers.

Change the admin toolbar to have `role="menu"` and support opening for screen readers. Remove screen reader only log out link and collapse duplicate profile links into one link. This is an imperfect solution to a complex problem in the adminbar, but the lack of screen reader access to submenus is a major accessibility problem, and this fix provides access, even if the mechanism is imperfect.

Screen reader log out added in [21452].

Props abletec, Cheffheid, sabernhardt, alexstine, joedolson, afercia, sparklingrobots, danieltj, swissspidy, netweb, dionysous.
Fixes #34668, #43633.

git-svn-id: https://develop.svn.wordpress.org/trunk@57708 602fd350-edb4-49c9-b593-d223f7449a82

* Code Standards: Fix alignment in tests.

Fix variable alignment in changed tests. Follow-up to [r57708]. Because I edited the wrong local copy when I fixed that.

Props joedolson.
See #34668.

git-svn-id: https://develop.svn.wordpress.org/trunk@57709 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Update incorrect assertion message added in [57366].

Props david.binda.
Fixes #60358.

git-svn-id: https://develop.svn.wordpress.org/trunk@57710 602fd350-edb4-49c9-b593-d223f7449a82

* Login and Registration: Slash email address when updating an existing user.

Addresses an issue with password reset keys when the email address contains special characters such as apostrophes.

Props emirpprime, rajinsharwar, fnpen, hellofromTonya, oglekler, nicolefurlan.
Fixes #52529.

git-svn-id: https://develop.svn.wordpress.org/trunk@57711 602fd350-edb4-49c9-b593-d223f7449a82

* Twenty Nineteen: Further adjust CSS selectors used to change the primary color.

This aims to make the file, button, quote, pullquote, and search block selectors work on multiple WordPress versions.

Follow-up to [57637].

Props poena, mukesh27.
Fixes #59922.

git-svn-id: https://develop.svn.wordpress.org/trunk@57712 602fd350-edb4-49c9-b593-d223f7449a82

* Site icon: Polish up Site Icon on the general settings screen.

This fixes a number of issues, chief among them:
- Updates to the site title are reflected in the preview.
- Improve alt text for preview
- Make string describing site icon more succinct.
- Add inline documentation to JavaScript

Props kebbet, jorbin, swissspidy, afercia, mukesh27, alexstine, jameskoster, andraganescu.
Fixes #54370.



git-svn-id: https://develop.svn.wordpress.org/trunk@57713 602fd350-edb4-49c9-b593-d223f7449a82

* Upgrade/Install: Improve localized strings related to plugin/theme installation and activation.

Adds context to strings where applicable to disambiguate them, coherently throughout the admin. Also improves some of the strings introduced in [57545] to ease localization.

Props swissspidy, costdev.
Fixes #60630. See #22316.

git-svn-id: https://develop.svn.wordpress.org/trunk@57714 602fd350-edb4-49c9-b593-d223f7449a82

* Help/About: Update the About page for 6.5.

Introducing the new content & design for the 6.5 About page & related pages. This style is simplified, with no header images, and brings back the illustrations from previous versions for Contribute, Freedoms, and Privacy.

This also includes a fix for heading hierarchy on the Get Involved page.

Props laurlittle, dansoschin, benjamin_zekavica, richtabor, joen, annezazu, swissspidy, marybaum, ryelle, huzaifaalmesbah.
See #60303.



git-svn-id: https://develop.svn.wordpress.org/trunk@57715 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Check for null values in Theme JSON to cater for blockGap.

When resolving theme.json preset variables, add a check to make sure the value is not empty before we run it through strpos() and preg_match_all().

Props ramonopoly, mukesh27, get_dave.
Fixes #60613.

git-svn-id: https://develop.svn.wordpress.org/trunk@57716 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: add `shadow.defaultPresets` to appearance tools opt-ins.

Props madhudollu.
Fixes #60633.

git-svn-id: https://develop.svn.wordpress.org/trunk@57717 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Add PHPUnit test for the `_mce_set_direction` function.

The new test checks the functionality of the text direction setting, ensuring it correctly switches between `rtl` and `ltr` options.

Props pbearne, SergeyBiryukov.
Fixes #60219.

git-svn-id: https://develop.svn.wordpress.org/trunk@57718 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Improve wording and add missing full stops in a few docblocks.

Props shailu25, sabernhardt.
Fixes #60323.

git-svn-id: https://develop.svn.wordpress.org/trunk@57719 602fd350-edb4-49c9-b593-d223f7449a82

* Font face resolver: print font faces from font families defined in all theme.json origins.

This commit updates the theme.json style generation to allow a font family name to be repeated across theme.json origins (default, theme, custom).

Props mmaattiiaass, hellofromtonya, arthur791004, ironprogrammer.
Fixes #60605.

git-svn-id: https://develop.svn.wordpress.org/trunk@57720 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Update Packages with the latest bug fixes for 6.5 beta 3

It includes all the backports from this Gutenberg PR https://github.com/WordPress/gutenberg/pull/59394/

Props get_dave, youknowriad.
See #60315.

git-svn-id: https://develop.svn.wordpress.org/trunk@57721 602fd350-edb4-49c9-b593-d223f7449a82

* WordPress 6.5 Beta 3.

git-svn-id: https://develop.svn.wordpress.org/trunk@57722 602fd350-edb4-49c9-b593-d223f7449a82

* Post WordPress 6.5 Beta 3 version bump.

git-svn-id: https://develop.svn.wordpress.org/trunk@57723 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Add unit tests for `absint()`.

Props pbearne.
Fixes #60101.

git-svn-id: https://develop.svn.wordpress.org/trunk@57724 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Add unit tests for `wp_parse_slug_list()`.

Props pbearne.
Fixes #60217.

git-svn-id: https://develop.svn.wordpress.org/trunk@57725 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Add unit tests for `sanitize_hex_color()`.

Props pbearne.
Fixes #60270.

git-svn-id: https://develop.svn.wordpress.org/trunk@57726 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Add unit tests for `sanitize_hex_color_no_hash()`.

Props pbearne.
Fixes #60271.

git-svn-id: https://develop.svn.wordpress.org/trunk@57727 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Add unit tests for `maybe_hash_hex_color()`.

Props pbearne.
Fixes #60272.

git-svn-id: https://develop.svn.wordpress.org/trunk@57728 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Add unit tests for `_delete_option_fresh_site()`.

Props pbearne, costdev, desrosj.
Fixes #57191.

git-svn-id: https://develop.svn.wordpress.org/trunk@57729 602fd350-edb4-49c9-b593-d223f7449a82

* Site Icon/Customizer: Update strings in customizer to align with `options-general.php`.

This uses the new strings for alt text and site icon description that were introduced in [57713] as a part of #54370.

The strings are translated in PHP and then use `wp.i18n.sprintf` since the alt text strings live in a PHP file even though they are output as part of a template that is used in JavaScript.

Props westonruter, swissspidy, jorbin.
Fixes #60641.


git-svn-id: https://develop.svn.wordpress.org/trunk@57730 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Improve docblock for `WP_Block_Patterns_Registry::register`.

This documents the new `filePath` property supported by `WP_Block_Patterns_Registry::register` and also updates the property name to camel case formatting to be consistent with other block pattern properties.

Props thekt12, spacedmonkey, joemcgill.
See #59532.


git-svn-id: https://develop.svn.wordpress.org/trunk@57731 602fd350-edb4-49c9-b593-d223f7449a82

* General: Revert r57698 for WP_List_Util::pluck().

r57698 caused a regression for arrays of objects which have magic methods and dynamic properties. A fix is identified.

However, a deeper dive discovered additional scenarios which will require a different fix.

Reverting gives more time for resolving these scenarios and more soak time to discover if there are others.

Props dd32, jamescollins, swissspidy.
See #59774.

git-svn-id: https://develop.svn.wordpress.org/trunk@57732 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Correct capitalization and fix typos in some test class names.

Follow-up to [57060], [57718], [57725], [57726], [57727], [57728].

See #59647.

git-svn-id: https://develop.svn.wordpress.org/trunk@57733 602fd350-edb4-49c9-b593-d223f7449a82

* I18N: Improve docs for pomo library classes.

Props subrataemfluence, pento, hrshahin.
Fixes #44424.

git-svn-id: https://develop.svn.wordpress.org/trunk@57734 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Address capitalization and docblock inconsistencies in some test class names.

Follow-up to [57060], [57718], [57725], [57726], [57727], [57728], [57733].

Props swissspidy, costdev.
See #59647.

git-svn-id: https://develop.svn.wordpress.org/trunk@57735 602fd350-edb4-49c9-b593-d223f7449a82

* Plugin Dependencies: Don't assume API response has a `slug` property.

Previously, `WP_Plugin_Dependencies::get_dependency_api_data()` attempted to set an array key using the `slug` property returned in a Plugins API response. However, the Plugins API response is filterable and may not contain a `slug` property.

Earlier in the method, a local `$slug` variable is used as a key for the same array.

For safety and consistency, this replaces array key references to `$information->slug` with `$slug`.

Follow-up to [57545].

Props pbiron, afragen, swissspidy, costdev.
Fixes #60540.

git-svn-id: https://develop.svn.wordpress.org/trunk@57736 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Expand `wp_parse_id_list()` unit tests.

Includes:
* Moving pre-existing `wp_parse_id_list()` tests to their own file.
* Merging new and pre-existing `wp_parse_slug_list()` tests.
* Using named data provider in `wp_parse_list()` tests.

Follow-up to [25170], [40044], [44546], [57284], [57725].

Props pbearne, mukesh27, SergeyBiryukov.
Fixes #60218. See #60217, #59647.

git-svn-id: https://develop.svn.wordpress.org/trunk@57737 602fd350-edb4-49c9-b593-d223f7449a82

* HTML API: Remove superfluous type-coercing empty() check.

When returning modifiable text in the HTML API, if the text segment
coerces to `false` inside `empty()`, then an empty string has been
returned instead of the string itself. For example, the text node in the
following HTML snippet:

{{{
    <div>0</div>
}}}

In this patch the `empty()` check is removed. The purpose of the original
check was to skip further processing if the text content is empty, but
the check is not needed and the additioanl processing is minimal.
Removing the code removes the defect and leaves a cleaner method in its
absence.

Developed in https://github.com/WordPress/wordpress-develop/pull/6199

Follow-up to [57348]
Follow-up to #60170



git-svn-id: https://develop.svn.wordpress.org/trunk@57738 602fd350-edb4-49c9-b593-d223f7449a82

* Bundled Theme: Fix focus outline in Twenty Twenty-Four in the editor.

Improvements made to the focus outline style for Twenty Twenty-Four caused a regression in the focus outlines of the block editor. This commit solves the regressions by reducing the CSS specificity while keeping the improvements.

Follow-up to [57554].

Props wildworks, poena, sabernhardt, youknowriad, oglekler.
Fixes #60535.

git-svn-id: https://develop.svn.wordpress.org/trunk@57739 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Prevent infinite loops when filtering the font library folder.

Changing the font library is something we expect hosts to perform.
It's important that we make this filter as seemless as possible.
This commit prevents a potential infinite loop caused by calling wp_get_upload_dir() within the font_dir filter.

Props mmaattiiaass, ironprogrammer, costdev, swissspidy.
Fixes #60652.

git-svn-id: https://develop.svn.wordpress.org/trunk@57740 602fd350-edb4-49c9-b593-d223f7449a82

* Privacy: Update default privacy page content to use latest block markup.

Avoids “Updated Block” warnings being logged to the console.

Props 254volkan, swissspidy.
Fixes #60530.

git-svn-id: https://develop.svn.wordpress.org/trunk@57741 602fd350-edb4-49c9-b593-d223f7449a82

* Interactivity API: Rename `data_wp_context()` to `wp_interactivity_data_wp_context()`.

Increases clarity about where the function belongs to, bringing it in line with other related functions.

Props swissspidy, gziolo, cbravobernal, youknowriad, ankitmaru, westonruter, luisherranz, darerodz.
Fixes #60575.

git-svn-id: https://develop.svn.wordpress.org/trunk@57742 602fd350-edb4-49c9-b593-d223f7449a82

* Interactivity API: Revert [57742] pending a Gutenberg package update.

This function can only be renamed after updating Gutenberg npm packages, as some of the core blocks already use this function.

See #60575.

git-svn-id: https://develop.svn.wordpress.org/trunk@57743 602fd350-edb4-49c9-b593-d223f7449a82

* Tests: Use `assertSame()` in post meta revisioning tests.

This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Includes correcting the test class name.

Follow-up to [56714].

See #59655.

git-svn-id: https://develop.svn.wordpress.org/trunk@57744 602fd350-edb4-49c9-b593-d223f7449a82

* Quick/Bulk Edit: Ensure the “All” checkbox is properly toggled in certain scenarios.

When removing a single item from the bulk edit box or when adding more items, the “All” checkboxes at the top and bottom of the posts list table should be properly toggled.

Props hiteshtalpada, oglekler, webcommsat, ugyensupport, chaion07, Toru.
Fixes #59121.

git-svn-id: https://develop.svn.wordpress.org/trunk@57745 602fd350-edb4-49c9-b593-d223f7449a82

* Customize: Accessibility: Label menu subitems when updating menus.

Fix missing subitem indicator when menu items in the Customizer are children of parent menu items & add menu item original title to button text. Adds parity with the admin menu editor and fixes a bug where the button text was 'untitled' if the menu item title had not been edited.

Props designsimply, afercia, celloexpressions, kushang78, joedolson, rcreators.
Fixes #32728.

git-svn-id: https://develop.svn.wordpress.org/trunk@57746 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Correct the placement of `@global` tags in `wp-includes/admin-bar.php`.

Follow-up to [38810], [56209].

Props shailu25, sabernhardt.
See #60021.

git-svn-id: https://develop.svn.wordpress.org/trunk@57747 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Document some globals in `wp-settings.php`.

Follow-up to [18532], [18993], [27158], [38362].

Props upadalavipul, viralsampat, sabernhardt.
See #60021.

git-svn-id: https://develop.svn.wordpress.org/trunk@57748 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Use a consistent parameter name between `rand_str()` and `rand_long_str()`.

Follow-up to [36272], [50265].

Props harsh175, sabernhardt.
Fixes #60401.

git-svn-id: https://develop.svn.wordpress.org/trunk@57749 602fd350-edb4-49c9-b593-d223f7449a82

* Query: Remove leading whitespace from certain database queries.

Unintended leading whitespace at the beginning of a raw MySQL query led to unexpected behavior such as broken pagination. Eliminating said whitespace avoids that.

Adds unit tests to prevent regressions.

Props wpfed, swissspidy, ironprogrammer, tadamarketing, afercia.
Fixes #56841.

git-svn-id: https://develop.svn.wordpress.org/trunk@57750 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Simplify sanitization code path in `WP_Theme_JSON` after [57496]

Removes the custom `WP_Theme_JSON::is_assoc()` method again in favor of the existing `wp_is_numeric_array()` helper function.

Props mmaattiiaass, costdev, swissspidy, spacedmonkey.
Fixes #60360.

git-svn-id: https://develop.svn.wordpress.org/trunk@57751 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Document the `$xmlrpc_logging` global in `logIO()`.

Follow-up to [1348], [19935].

Props viralsampat, upadalavipul, sabernhardt.
See #60021.

git-svn-id: https://develop.svn.wordpress.org/trunk@57752 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Add initial tests for the `WP_Filesystem_Direct` class.

Since `WP_Filesystem_Direct` is by far the most used filesystem abstraction class, this facilitates future changes with sufficient test coverage.

Props swissspidy, costdev, mukesh27.
Fixes #57774.

git-svn-id: https://develop.svn.wordpress.org/trunk@57753 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: do not expose protected post meta fields in block bindings.

Ignores meta keys which are considered protected or not registered to be shown in the REST API. Adds tests.

Props santosguillamot, swissspidy, gziolo, xknown, peterwilsoncc.
Fixes #60651.

git-svn-id: https://develop.svn.wordpress.org/trunk@57754 602fd350-edb4-49c9-b593-d223f7449a82

* Media: Accessibility: Copy attachment properties on site icon crop.

Add parity between site icon, custom header, and default image crop behaviors. [53027] fixed a bug where alt text and caption were not copied on custom headers, but did not apply that change in any other context.

Deprecate the `create_attachment_object` method in the `Wp_Site_Icon` and `Custom_Image_Header` classes and replace that functionality with the new function `wp_copy_parent_attachment_properties()` to improve consistency.

Props afercia, rcreators, jorbin, joedolson, huzaifaalmesbah, shailu25, swissspidy, mukesh27.
Fixes #60524.

git-svn-id: https://develop.svn.wordpress.org/trunk@57755 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Document some globals in `wp-admin/setup-config.php`.

Follow-up to [29669], [29705], [32642], [45737], [47230], [51477].

Props upadalavipul, sabernhardt.
See #60021.

git-svn-id: https://develop.svn.wordpress.org/trunk@57756 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Update 3rd-party GitHub Actions.

This updates the following GitHub Actions to their latest versions:

- `shivammathur/setup-php` from `2.29.0` to `2.30.0`
- `actions/cache` from `4.0.0` to `4.0.1`
- `ramsey/composer-install` from `2.2.0` to `3.0.0`
- `codecov/codecov-action` from `4.0.1` to `4.1.0`

This should address the remaining notices caused by running Node.js 16.x on GitHub Actions runner machines in `trunk`.

Follow up to [57197], [57362], [57655].

See #59805.

git-svn-id: https://develop.svn.wordpress.org/trunk@57757 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Fix the `precommit:emoji` script.

GitHub recently sunset support for Subversion, causing the `precommit:emoji` Grunt script to break. Since there’s no direct replacement for `svn ls` in Git, this has been replaced with a query through the GitHub CLI.

This also adds a step in the workflow that tests the build process to run the `precommit:emoji` script to ensure no changes to built files are missed when updating the Twemoji library in the future.

Follow up to [57626].

Props kraftbj, peterwilsoncc, swissspidy.
Fixes #60520. See #57600.

git-svn-id: https://develop.svn.wordpress.org/trunk@57758 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Document the `$post` global in comment feed templates.

Follow-up to [18716].

Props viralsampat, sabernhardt.
See #60021.

git-svn-id: https://develop.svn.wordpress.org/trunk@57759 602fd350-edb4-49c9-b593-d223f7449a82

* Editor: Update Packages with the latest bug fixes for 6.5 RC 1

It includes all the backports from this Gutenberg PR https://github.com/WordPress/gutenberg/pull/59541/

Props get_dave, youknowriad, talldanwp.
See #60315.
Fixes #60665.

git-svn-id: https://develop.svn.wordpress.org/trunk@57760 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Update `WP_Query::tax_query` docblock to reflect that the property can be `null`.

Props manooweb, swissspidy.
Fixes #60563.





git-svn-id: https://develop.svn.wordpress.org/trunk@57761 602fd350-edb4-49c9-b593-d223f7449a82

* Interactivity API: Rename `data_wp_context()` to `wp_interactivity_data_wp_context()`.

Increases clarity about where the function belongs to, bringing it in line with other related functions.

After initially merging this change in [57742] and reverting it in [57743], this reintroduces it now that the Gutenberg packages have been updated accordingly in [57760].

Props swissspidy, gziolo, cbravobernal, youknowriad, ankitmaru, westonruter, luisherranz, darerodz.
Fixes #60575.

git-svn-id: https://develop.svn.wordpress.org/trunk@57762 602fd350-edb4-49c9-b593-d223f7449a82

* I18N: Cast magic MO marker number to integer.

In gettext, `0x950412de` is used to signal GNU MO files. In `WP_Translation_File_MO` this magic marker is used to detect whether a file uses little endian or big endian.

On 32 bit systems, this number will be interpreted by PHP as a float rather than an integer. This change adds extra casting to force an integer.

A similar change was done in the pomo library in the past, see #3780.

Props tmatsuur, swissspidy.
Fixes #60678.

git-svn-id: https://develop.svn.wordpress.org/trunk@57763 602fd350-edb4-49c9-b593-d223f7449a82

* Media: Use consistent spacing for the media toolbar in both grid and list view.

Previously, the spacing between media toolbar elements in grid and list view did not match. We now use the same select margin across both views.

Props desrosj, seusmaniqbal, ianbelanger, subrataemfluence, sabernhardt, pooja1210, sumitbagthariya16, shailu25, devmuhib, huzaifaalmesbah, audrasjb.
Fixes #43904.


git-svn-id: https://develop.svn.wordpress.org/trunk@57764 602fd350-edb4-49c9-b593-d223f7449a82

* Toolbar: Polish design and code combining duplicate profile links.

Fixes some design changes and improves quality of comments and code styles following previous changes. Follow-up to [57708].

Props sabernhardt, huzaifaalmesbah, joedolson.
Fixes #43633. See #34668.

git-svn-id: https://develop.svn.wordpress.org/trunk@57765 602fd350-edb4-49c9-b593-d223f7449a82

* UI-Copy: Use capital cased singular for Site Icon.

Follow up to [41749], [57713], and [57730].

Props johnbillion, audrasjb.
Fixes #60686.



git-svn-id: https://develop.svn.wordpress.org/trunk@57766 602fd350-edb4-49c9-b593-d223f7449a82

* Help/About: Add images to the About page.

The images have been uploaded to the w.org CDN and added into the About page. Additionally, two unencoded apostrophes have been replaced in strings.

Props benjamin_zekavica, richtabor, laurlittle.
See #60303.



git-svn-id: https://develop.svn.wordpress.org/trunk@57767 602fd350-edb4-49c9-b593-d223f7449a82

* HTML API: Ensure that breadcrumbs are properly retained after seeking.

In some cases, it's possible to seek back into a location found inside
an element which has been closed before the point in the document where
the `seek()` was made. In these cases the breadcrumb stack is lost, and
calling `get_breadcrumbs()` after the seek will return the wrong information.

In this patch, the HTML Processor takes a conservative approach and
moves to the front of the document, then reparses the document until
it reaches the sought-after location. This ensures consistency on
the stack of open elements and active formats, and preserves
breadcrumbs.

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

Props jonsurrell.
Follow-up to [60687].
See #58517.
Fixes #60687.



git-svn-id: https://develop.svn.wordpress.org/trunk@57768 602fd350-edb4-49c9-b593-d223f7449a82

* Plugins: Improve plugin dependency admin notices.

This makes several refinements to the various notices displayed in the WordPress admin related to plugin dependencies. Additionally, it adds some conditions to display more appropriate messages for multisite installs with proper context to the user’s capabilities.

Props costdev, joedolson, afragen, swissspidy, peterwilsoncc, euthelup.
Fixes #60465.

git-svn-id: https://develop.svn.wordpress.org/trunk@57769 602fd350-edb4-49c9-b593-d223f7449a82

* Plugins: Improve plugin dependency related error messages.

This makes several refinements to the various error messages displayed throughout the WordPress admin related to plugin dependencies. Additionally, it adds some conditions to display more appropriate messages for multisite installs with proper context to the user’s capabilities.

Props costdev, swissspidy, afragen, huzaifaalmesbah, knutsp.
Fixes #60465.

git-svn-id: https://develop.svn.wordpress.org/trunk@57770 602fd350-edb4-49c9-b593-d223f7449a82

* Coding standards: Apply some changes after `composer format`.

Follow up to [57565], [57627], [57755], 

See #60233, #60506, #60524.

git-svn-id: https://develop.svn.wordpress.org/trunk@57771 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Document the usage of `$_paused_plugins` and `$_paused_themes` globals.

Follow-up to [44973].

Props upadalavipul, sabernhardt.
See #60021.

git-svn-id: https://develop.svn.wordpress.org/trunk@57772 602fd350-edb4-49c9-b593-d223f7449a82

* Coding Standards: Remove some extra trailing spaces.

Follow-up to [57772].

See #60021.

git-svn-id: https://develop.svn.wordpress.org/trunk@57773 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Add missing `@global` mention in `wp_interactivity()`.

This merges a changeset updated upstream in the Gutenberg repository.
See https://github.com/WordPress/gutenberg/pull/59522.

Props wildworks.
Fixes #60677.
See #59651.





git-svn-id: https://develop.svn.wordpress.org/trunk@57774 602fd350-edb4-49c9-b593-d223f7449a82

* Partially revert [57774].

This reverts some changes that need to be properly synced from Gutenberg.

See #60677.





git-svn-id: https://develop.svn.wordpress.org/trunk@57775 602fd350-edb4-49c9-b593-d223f7449a82

* Plugins: Fix an overlap issue with plugin cards dependencies notice.

This changeset fixes an issue where plugin card dependencies notice and plugin icon were overlapping in some cases.

Props costdev, euthelup, shailu25, desrosj, swissspidy, audrasjb.
Fixes #60501.





git-svn-id: https://develop.svn.wordpress.org/trunk@57776 602fd350-edb4-49c9-b593-d223f7449a82

* WordPress 6.5 RC1.





git-svn-id: https://develop.svn.wordpress.org/trunk@57777 602fd350-edb4-49c9-b593-d223f7449a82

* Post WordPress 6.5 RC1 version bump.





git-svn-id: https://develop.svn.wordpress.org/trunk@57778 602fd350-edb4-49c9-b593-d223f7449a82

* Trunk is now 6.6 alpha.

git-svn-id: https://develop.svn.wordpress.org/trunk@57782 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Add build process test workflow to old branches testing.

Now that 6.5 has been branched, the `test-build-processes.yml` workflow can be added to the list of workflows to run for old branches.

Fixes #59632.

git-svn-id: https://develop.svn.wordpress.org/trunk@57783 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Bump version of `trunk` in the `package-lock.json` file.

Follow up to [57782].

git-svn-id: https://develop.svn.wordpress.org/trunk@57784 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Add a description for the `$wp_embed` global.

Follow-up to [57748].

See #60699.

git-svn-id: https://develop.svn.wordpress.org/trunk@57785 602fd350-edb4-49c9-b593-d223f7449a82

* Upload: Add links back to installer pages.

This adds a link back to the plugin or theme installers when an incompatible archive error message is encountered.

Props Presskopp, swissspidy, smub, pmbaldha, aneeshd16.
Fixes #60578.

git-svn-id: https://develop.svn.wordpress.org/trunk@57786 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Add a description for the `$table_prefix` global.

Follow-up to [57748].

See #60699.

git-svn-id: https://develop.svn.wordpress.org/trunk@57787 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Fix typo in `variation-new-font-family.json` fixture file.

Props huzaifaalmesbah, mukesh27.
Fixes #60712.

git-svn-id: https://develop.svn.wordpress.org/trunk@57788 602fd350-edb4-49c9-b593-d223f7449a82

* Script loader: enable fetchpriority attribute in the `wp_preload_resources` filter.

Add `fetchpriority` to the attributes accepted by the `wp_preload_resources` filter. Developers can now use this filter to set fetchpriority for resources being preloaded.

Props nihar007, luboslives, tabrisrp.
Fixes #58510.



git-svn-id: https://develop.svn.wordpress.org/trunk@57789 602fd350-edb4-49c9-b593-d223f7449a82

* Block Hooks: Use new Templates Controller filter instead of action.

This changeset adds a new `rest_pre_insert_{$this->post_type}` filter in the `WP_REST_Templates_Controller`, where it is applied to the return value of the `prepare_item_for_database` method. (This is consistent with the `WP_REST_Post_Controller`, where that filter has existed before.)

The new filter is then used to inject hooked blocks into the template (or template part) content received via the endpoint, prior to persisting it to the database.

This supersedes the previous mechanism, which was using the `rest_after_insert_{$this->post_type}` ''action'', from which it performed an additional `wp_update_post` call to update the template (part) content with the hooked blocks injected. The new technique eschews that additional call and the resulting extra revision it created, as well as a problem with regard to duplicated escaping and sanitization, which had caused some special characters to be garbled.

Props tomjcafferkey, gziolo, swissspidy, karolmanijak.
Fixes #60671.

git-svn-id: https://develop.svn.wordpress.org/trunk@57790 602fd350-edb4-49c9-b593-d223f7449a82

* Plugins: Remove extra space in a translatable string.

Follow-up to [57545].

Props Presskopp.
Fixes #60730.

git-svn-id: https://develop.svn.wordpress.org/trunk@57791 602fd350-edb4-49c9-b593-d223f7449a82

* Toolbar: Fix dropdown admin menu styles on front-end.

This changeset switches back the admin menu items `height` property to `px` unit to prevent issues with themes using `html { font-size: 62.5%; }`.

Follow-up to [57765].

Props bgnicolepaschen, sabernhardt, huzaifaalmesbah, ironprogrammer, shailu25.
Fixes #60707.
See #43633.





git-svn-id: https://develop.svn.wordpress.org/trunk@57792 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Update various HelpHub links to avoid unnecessary redirections.

This updates various WP-Admin related links that have been redirected to new HelpHub pages, to avoid unnecessary redirections.

Props mkismy.
See #60732, #60699.





git-svn-id: https://develop.svn.wordpress.org/trunk@57793 602fd350-edb4-49c9-b593-d223f7449a82

* Coding Standards: Fix a WPCS indentation issue found in `wp-admin/options-general.php` after [57793].

See #60732.





git-svn-id: https://develop.svn.wordpress.org/trunk@57794 602fd350-edb4-49c9-b593-d223f7449a82

* Build/Test Tools: Do not run Props Bot for certain actions from forks.

For PRs that originate from forked repositories, `pull_request_review` and `pull_request_review_comment` events do not have the permissions necessary to comment on the PR.

This avoids needlessly running the bot when these conditions are met.

Props jorbin, wildworks.
See #60733.

git-svn-id: https://develop.svn.wordpress.org/trunk@57795 602fd350-edb4-49c9-b593-d223f7449a82

* Upload: Move an assignment in `wp-admin/upload.php` into a conditional branch.

This is a micro-optimization to reduce unnecessary memory allocation.

Follow-up to [28682].

Props mujuonly, swissspidy, mukesh27.
Fixes #60683.

git-svn-id: https://develop.svn.wordpress.org/trunk@57796 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Update the link to the WordPress Feeds article on Reading Settings screen.

Follow-up to [57793].

Props ignatiusjeroe, sabernhardt, shailu25.
Fixes #60736. See #60732.

git-svn-id: https://develop.svn.wordpress.org/trunk@57797 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Update the link to the “Editing wp-config.php” article in `wp-load.php`.

Follow-up to [57793].

Props fanly, shailu25.
See #60738, #60732.

git-svn-id: https://develop.svn.wordpress.org/trunk@57798 602fd350-edb4-49c9-b593-d223f7449a82

* Block Hooks: Remove filter global reset from test teardown.

Resetting the `$wp_current_filter` global during test teardown is unnecessary, as it is taken care of by the unit test's base class.

This changeset removes the reset accordingly.

Follow-up [57790].
Props swissspidy, timothyblynjacobs.
See #60671.

git-svn-id: https://develop.svn.wordpress.org/trunk@57799 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Update various HelpHub links located in bundled themes to avoid unnecessary redirections.

Props mkismy.
See #60732, #60699.





git-svn-id: https://develop.svn.wordpress.org/trunk@57800 602fd350-edb4-49c9-b593-d223f7449a82

* Docs: Update various HelpHub links to avoid unnecessary redirections.

Follow-up to [57793], [57798], [57800].

Props mkismy.
See #60732, #60699.





git-svn-id: https://develop.svn.wordpress.org/trunk@57801 602fd350-edb4-49c9-b593-d223f7449a82

* REST API: Remove unnecessary upload overrides in font face controller.

This removes settings that are the default value or required for side-loading from the `WP_REST_Font_Faces_Controller::handle_font_file_upload()`. 

This is to harden the endpoint and future proof against any changes to `wp_handle_upload()` and related functions/security checks.

Props peterwilsoncc, dd32.
Fixes #60741.



git-svn-id: https://develop.svn.wordpress.org/trunk@57804 602fd350-edb4-49c9-b593-d223f7449a82

* HTML API: Defer applying attribute updates until necessary.

When making repeated updates to a document, the Tag Processor will end
up copying the entire document once for every update. This can lead to
catastrophic behavior in the worse case.

However, when batch-applying updates it's able to copy chunks of the
document in one thread and only end up copying the entire document once
for the entire batch.

Previously the Tag Processor has been eagerly applying udpates, but in
this patch it defers applying those updates as long as is possible.

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

Props: dmsnell, bernhard-reiter, jonsurrell, westonruter.
Fixes #60697.
Follow-up to [55706], [56941], [57348].



git-svn-id: https://develop.svn.wordpress.org/trunk@57805 602fd350-edb4-49c9-b593-d223f7449a82

* HTML API: Trigger active format reconstruction when reaching text nodes.

When encountering text nodes in an HTML document, the HTML parser needs
to run the active format reconstruction algorithm, even if it doesn't
stop to visit those text nodes. This is because the formats, which might
need reconstructing, will impact the breadcrumbs of all downstream nodes
from the text node.

In this patch, this process is …
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants