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: Test and fix HTML Processor bookmarks #6039

Closed

Conversation

sirreal
Copy link
Member

@sirreal sirreal commented Feb 6, 2024

  • Add test suite for WP_HTML_Processor bookmark functions.
  • Fix issue with ::seek when HTML has been modified.
  • Fix issue with ::has_bookmark not reporting correctly for set bookmarks.

Trac ticket: https://core.trac.wordpress.org/ticket/60474


This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.

@sirreal sirreal force-pushed the html-api/fix-html-procr-bookmarks branch from 6a613d6 to 739fa5c Compare February 6, 2024 16:57
Copy link

github-actions bot commented Feb 6, 2024

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.

@sirreal sirreal marked this pull request as ready for review February 8, 2024 15:25
Copy link

github-actions bot commented Feb 8, 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 SVN

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

Props jonsurrell, dmsnell.

GitHub Merge commits

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: sirreal <jonsurrell@git.wordpress.org>
Co-authored-by: dmsnell <dmsnell@git.wordpress.org>

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

@sirreal sirreal force-pushed the html-api/fix-html-procr-bookmarks branch from 0722860 to afa9e76 Compare February 8, 2024 15:43
pento pushed a commit that referenced this pull request Feb 10, 2024
The WP_HTML_Processor::has_bookmark() method has not correctly reported bookmarks
which have been set, because it wraps the given bookmark names when setting them.
Additionally, WP_HTML_Processor::seek() does not seek to correct location if HTML
has been updated because it wasn't flushing enqueued updates to the document.

In this patch both problems are resolved and added tests guard these behaviors
against future regressions.

Developed in #6039
Discussed in https://core.trac.wordpress.org/ticket/60474

Follow-up to [56274].
Props dmsnell, jonsurrell.
Fixes #60474.



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

dmsnell commented Feb 10, 2024

Merged in [57582]
44a2073

@dmsnell dmsnell closed this Feb 10, 2024
@dmsnell dmsnell deleted the html-api/fix-html-procr-bookmarks branch February 10, 2024 22:55
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request Feb 10, 2024
The WP_HTML_Processor::has_bookmark() method has not correctly reported bookmarks
which have been set, because it wraps the given bookmark names when setting them.
Additionally, WP_HTML_Processor::seek() does not seek to correct location if HTML
has been updated because it wasn't flushing enqueued updates to the document.

In this patch both problems are resolved and added tests guard these behaviors
against future regressions.

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

Follow-up to [56274].
Props dmsnell, jonsurrell.
Fixes #60474.


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


git-svn-id: http://core.svn.wordpress.org/trunk@57083 1a063a9b-81f0-0310-95a4-ce76da25c4cd
github-actions bot pushed a commit to platformsh/wordpress-performance that referenced this pull request Feb 10, 2024
The WP_HTML_Processor::has_bookmark() method has not correctly reported bookmarks
which have been set, because it wraps the given bookmark names when setting them.
Additionally, WP_HTML_Processor::seek() does not seek to correct location if HTML
has been updated because it wasn't flushing enqueued updates to the document.

In this patch both problems are resolved and added tests guard these behaviors
against future regressions.

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

Follow-up to [56274].
Props dmsnell, jonsurrell.
Fixes #60474.


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


git-svn-id: https://core.svn.wordpress.org/trunk@57083 1a063a9b-81f0-0310-95a4-ce76da25c4cd
draganescu pushed a commit to draganescu/wordpress-develop that referenced this pull request Feb 14, 2024
* Twenty Twenty-Two: Prefix the `pages` block pattern category name.

If a plugin also registers the category name `pages` in an `init` hook that runs after the theme's, it can override the label and description unintentionally.

With a prefix, extenders can still override it, but it would be intentional.

Props poena, swissspidy, shailu25.
Fixes #59839.

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

* Build/Test Tools: Generate a human-readable HTML coverage report.

This updates the test coverage GitHub Actions workflow to generate a human-readable HTML report in addition to the current machine readable one submitted to Codecov.

Props jorbin.
Fixes #60476.

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

* I18N: Add Translator comments for Planet URLs.

Props oglekler, zodiac1978, audrasjb, jorbin.
Fixes #58010.



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

* Users: Replace table tags for color palettes in profiles.

Replace the `table` element used to present color palette selection in the user profile screen with generic elements. The extra semantics of a table are at best unhelpful and have some potential to great extraneous verbosity for screen readers.

Props sabernhardt, desrosj.
Fixes #53157.

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

* Themes: update `add_theme_support` docblock.

Adds missing features to the list for the `$feature` parameter in `add_theme_support()`.

Props up1512001, mukesh27, swissspidy, isabel_brison.
Fixes #60221.



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

* Editor: Refactor block binding processing and attribute computation

Refactors the processing of block bindings into steps:
- Gets the value for each "bound" attribute from the respective source.
- Returns the computer attributes with values from the sources.
- The computed attributes get injected into block's content.
- The `render_callback` gets the updated list of attributes and processeded block content.

Fixes #60282.
Props czapla, gziolo, andraganescu, santosguillamot.



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

* Editor: Add wakeup magic method to the block bindings registry

See #60282.
Follow-up [57373].
Props dmsnell, mukesh27, gziolo.



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

* Editor: Expand Block Bindings for button block.

Add block bindings support for the linkTarget and rel button block attributes.
This allows using custom fiends or pattern overrides for these attributes.

Props glendaviesnz.
Fixes #60481.

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

* Twenty Sixteen: Add `border-radius` to avatar images in the editor.

This ensures that avatars design in the Post Author or Avatar blocks in the editor matches the front end.

Props pitamdey, sabernhardt, poena, shailu25.
Fixes #59253.

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

* Editor: Update the WordPress packages to Gutenberg 17.7RC1.

This brings the latest and greatest from Gutenberg.
The full changelog is available here 
https://github.com/WordPress/gutenberg/releases/tag/v17.7.0-rc.1

Props youknowriad, get_dave.
See #60315.

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

* Twenty Nineteen: Add `border-radius` to avatar images in the editor.

This ensures that avatars design in the Post Author or Avatar blocks in the editor matches the front end.

Props pitamdey, shailu25, poena, sabernhardt, balub, sarath.ar, nicolefurlan, harshgajipara, pooja1210.
Fixes #59285.

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

* Quick/Bulk Edit: Pre-fill category fields with their status.
 
Pre-fill category fields in the Quick/Bulk Edit form with their current status.

When bulk editing, if only some of the selected items are in a given category, the category's checkbox will display a line to indicate an indeterminate status.

Originally committed in [56172], but reverted due to a bug that removed all categories. Updated commit fixes the bug, adds unit tests, and improves the accessibility of the indeterminate state checkboxes.

Props pavelevap, scribu, chasedsiedu, helen, joshcanhelp, ubernaut, Cyberchicken, laumindproductscomau, SergeyBiryukov, Marcoevich, tomybyte, thinkluke, virtality-marketing-solutions, Michalooki, dmsnell, itecrs, pannelars, WHSajid, samba45, Mte90, johnbillion, tomluckies, soulseekah, francina, oglekler, ajmcfadyen, mukesh27, costdev, hellofromTonya, peterwilsoncc, joedolson, pbiron, oglekler, webcommsat, jorbin, ajmcfadyen, huzaifaalmesbah.
Fixes #11302.

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

* Twenty Fifteen: Add top margin to the File block button styles.

This ensures that there is some spacing between the Cover and File blocks.

Props mukesh27, mayur8991, panchalhimani711, sabernhardt, itpathsolutions, thakordarshil, ankit-k-gupta, ugyensupport, pooja1210, shailu25, harshgajipara, darshitrajyaguru97, poena.
Fixes #58498.

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

* HTML API: Add subclassed has_bookmark() and fix seek()

The WP_HTML_Processor::has_bookmark() method has not correctly reported bookmarks
which have been set, because it wraps the given bookmark names when setting them.
Additionally, WP_HTML_Processor::seek() does not seek to correct location if HTML
has been updated because it wasn't flushing enqueued updates to the document.

In this patch both problems are resolved and added tests guard these behaviors
against future regressions.

Developed in WordPress#6039
Discussed in https://core.trac.wordpress.org/ticket/60474

Follow-up to [56274].
Props dmsnell, jonsurrell.
Fixes #60474.



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

* Tests: Adjust the meta key time in `wp_scheduled_delete()` tests.

Occasionally, the tests verifying that old trashed posts or comments are not deleted if not old enough can take longer than expected, leading to false positives when comparing the timestamp in `wp_scheduled_delete()`, and resulting in subsequent test failures.

This commit aims to resolve the race condition.

Follow-up to [57224], [57237].

See #59938.

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

* General: Remove ableist language from code comments.
 
Remove a handful of occurrences of ableist terms in code comments; omits external libraries.

Props dartiss, upadalavipul, SergeyBiryukov, shailu25, jorbin, dmsnell, joedolson, manfcarlo.
Fixes #60247.

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

* Editor: Update pattern overrides attribute format.

Updates the pattern block's overrides attribute data structure and renames it to content.
This new format should prove more flexible for the future.

Props talldanwp, gziolo.
Fixes #60456.

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

* Plugins: Store plugin deletion results in temporary option.

Storing the data in a non-autoloaded rather than a transient ensures it cannot be accidentally removed due to a cache flush.

Props: kkmuffme, mukesh27.
Fixes #59433.

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

* Twenty Twenty: Fix Table block default and custom border colors.

On the front end, this changeset restores the theme's default border color when (and only when) the block's text color is the default.
In the editor, these styles repurpose the user-selected color for the border, to match the front.

Props nidhidhandhukiya, sabernhardt, pooja1210, pouicpouic, poena, shailu25, ugyensupport, wasiur195, rajinsharwar, wasiur195, jivygraphics, huzaifaalmesbah, harshgajipara, nicolefurlan, sumitbagthariya16.
Fixes #58022.





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

* Twenty Twenty-Four: Add missing translation functions to text strings.

This changeset updates some text labels in `footer.php` to make them translatable.

Props wildworks, sabernhardt, poena, onemaggie, luminuu, mukesh27.
Fixes #60298.





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

* Twenty Twenty: Scope `.privacy-policy` styles to the footer only.

This changeset fixes an issue where the `.privacy-policy` styles were applied to other locations than the footer only, like the `privacy-policy` page itself.

Props mnydigital, sabernhardt, huzaifaalmesbah, shailu25, poena.
Fixes #60469.





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

* Blocks: Allow reading the script handle from asset files

In the [documentation for WPDefinedAsset definition](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#wpdefinedasset) for block metadata there is a note about the handle. That was missing in WordPress core.

Props gziolo, jsnajdr, youknowriad.
Fixes #60485.




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

* Filesystem API: Fix typo in `ftp_base::restore()`.

The `ftp_base::restore()` method contained a typo internally: "resore" should be "restore".

Follow-up to [7126].

Props benniledl, hellofromTonya, audrasjb.
Fixes #60497.

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

* Upgrade/Install: Avoid `update_option()` calls during bootstrap.

[57545] introduced the Plugin Dependencies feature, which contains a new `plugin_data` option.

Previously, the `plugin_data` option was being updated during bootstrap and in `get_plugins()`, causing an error when using the install script as the options database table does not yet exist, and also risked an "out of sync" issue between the database and the cache on websites with heavy traffic.

This removes the calls to `update_option()` during Core's bootstrap, and guards the call in `get_plugins()` to ensure that it doesn't run when WordPress is installing.

Follow-up to [57545].

Props desrosj, swisspidy, huzaifaalmesbah, afragen, dd32, azaozz, costdev.
Fixes #60461. See #60457, #60491.

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

* Script Modules API: Add deregister module function

It was impossible to deregister a script module. It is changing to avoid problems for extenders that want to override any Core script module.

Fixes #60463.
Props cbravobernal, gziolo, mukesh27, youknowriad.



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

* Block Hooks: Inject hooked blocks into modified templates and parts.

Using the new technique introduced in [57157] of using a `metadata.ignoredHookedBlocks` attribute in the anchor block to store information about whether or not a hooked block should be considered for injection, extend said injection to encompass ''modified'' templates and parts.

Fixes #59646.
Props gziolo, matveb.

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

* Canonical: Introduce `admin_canonical_url` filter.

This changeset introduces the new `admin_canonical_url` hook to help developers and extenders to modify the admin canonical url value.

Props prionkor, audrasjb.
Fixes #59545.





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

* Networks and Sites: Improve `switch_to_blog()` docblock.

Follow-up to [41373].

Props sabernhardt, jeremyfelt, audrasjb.
Fixes #60332.
See #41815.





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

* Shortcodes: Always return an array in `shortcode_parse_atts()`.

Previously, `shortcode_parse_atts()` would return the input (an empty string) if a shortcode had no attributes, even though the documentation said otherwise.

Always returning an (empty) array reduces confusion and improves developer experience as the return value does not have to be manually checked in the shortcode itself.

Props: nicolefurlan, swissspidy, johnbillion, bedas.
Fixes #59249.

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

* Upgrade/Install: Remove unnecessary individual subfiles from `$_old_files` array.

On upgrade, the `$_old_files` array is used to cleanup any files that exist in a previous version of core but are no longer present in the current version.  Sometimes, an entire directory should be removed.  In the past, when a parent directory was included in the array, subfiles were also included for good measure.  

However, the code that removes the old files uses `$wp_filesystem->delete()` with the `$recursive` parameter set to `true`.  With this setup, individual subfiles are not required to be individually listed when their parent directory is already included in the `$_old_files` array.

This commit removes all individual subfiles from the `$_old_files` array when their parent directory is already included.

Props SergeyBiryukov, mhshohel, pbiron, oglekler.
Fixes #58995.

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

* Twenty Nineteen: Correct line height for Button block.

This commit moves `line-height` to the Buttons container and removes the duplicate `outline` property.

Props sabernhardt, nidhidhandhukiya, monzuralam, shailu25, hrrarya, karmatosed, harshgajipara, nicolefurlan, fnpen, oglekler, poena, huzaifaalmesbah, audrasjb.
Fixes #58443.

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

* Toolbar: Add adminbar link for new sites in network installs.
 
Add a link that allows network administrators to go to the new site page from the "New" menu in the adminbar. 

Props johnjamesjacoby, sabernhardt, joedolson, rajinsharwar, huzaifaalmesbah.
Fixes #41104.

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

* Bundled Themes: Cast font URL functions to `string` for `add_editor_style()`.

This changeset ensures the result of the font URL functions is a `string` before using it in `add_editor_style()`, to avoid PHP warnings on child themes. This similarily updates Twenty Thirteen, Twenty Fourteen, Twenty Fifteen, Twenty Sixteen, and Twenty Seventeen.

Props jordesign, SergeyBiryukov, sabernhardt, huzaifaalmesbah, shailu25.
Fixes #59704.





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

* General: Add an option to configure the site icon in general settings.

This restores the site icon setting to its original home on the settings page where it lives with the title and tagline.

The base for this code was originally added in [32994] and then removed in [33329]. The majority of the modification to that version are to remove the no-js pieces and make the workflow completely inline rather than putting the cropping on a separate page.

Additionally, since image crops rely on the ability to upload an image, this setting is gated by the `upload_files` capability.

Follow-up to: [32994], [33329].

Props jorbin, audrasjb, mukesh27, joedolson, afercia, kebbet, swissspidy, obenland, jameskoster, kjellr, andraganescu, stacimc, mikeschroder, h71, krupajnanda, huzaifaalmesbah.
Fixes #54370.
See #16434.



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

* REST API: Add `featured_media` field to attachments endpoint.

Audio and video attachments can have a featured image, also known as a poster image. This functionality is now properly exposed by the `wp/v2/media` endpoint.

Props swissspidy, timothyblynjacobs, wonderboymusic, dlh, spacedmonkey.
Fixes #41692.

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

* Twenty Nineteen: Restore `transition` property to a single line.

Follow-up to [57599].

Props sabernhardt.
Fixes #58443.

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

* Media: Update progress spinner position on small screens.
 
Move the media library progress spinner to overlay the filter controls while active. Improves design and prevents unpredictable layout.

Props afercia, kushang78, joedolson, karmatosed.
Fixes #33049.

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

* Upgrade/Install: Micro-optimizations for getting plugin_file in plugins loader loop.

RE: Plugins Dependencies.

The following micro-optimization improvements are included for finding each plugin's file relative to the plugins' directory within `wp-settings.php`:

* Move `trailingslashit()` before `foreach()`.

The path to the plugin directory is a constant. Invoking the `trailingslashit()` within the loop for each plugin is unnecessary and less performant.

This commit moves the plugin directory logic to before the loop. The result: the logic will now run 1x instead of Px where P represents the number of active and valid plugins to be loaded.

* Use `substr()` instead of `str_replace()` to extract the plugin's file relative to the plugins' directory.

`substr()` is more performant than `str_replace()`.

Why?

Per the PHP handbook:
>"This function returns a string or an array with all occurrences of search in subject replaced with the given replace value."

`str_replace()` searches the entire string to find and replace each substring occurrence.

whereas

>"Returns the portion of string specified by the offset and length parameters."

`substr()` starts at the given offset and stops at the given (or end of the) string length.

In other words, `substr()` iterates over less of and only a specific portion of the given input string, whereas `str_replace()` iterates through the entire string searching for matches (plural).

References:
* `str_replace()` https://www.php.net/manual/en/function.str-replace.php
* `substr()` https://www.php.net/manual/en/function.substr.php
* `strlen()` https://www.php.net/manual/en/function.strlen.php
* Show the comparison in action https://3v4l.org/TbQ9U.

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

Props hellofromTonya, costdev.
Fixes #60510.

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

* Media: enable control of progressive image output.

Add a new `image_save_progressive` filter which developers can use to control whether intermediate image sizes are saved in a progressive format (when available). By default, progressive image output is not used, matching the previous behavior.

Props: adamsilverstein, _ck_, markoheijnen, SergeyBiryukov, Japh, pmeenan, mikeschroder, derekspringer, buley, ericlewis, bahia0019, born2webdesign.
Fixes #21668.



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

* Themes: Add 'theme_files' cache group to block pattern cache operations.

Use 'theme_files' cache group for block pattern caches. Previously, block pattern cache data was not stored in a cache group and used the default group. This new cache group, is setup as a global cache group, meaning that sites using multisite, will have a single cache for block pattern data per theme. This change also no longer invalidate block pattern caches in multisite instances, meaning block pattern caches can be shared between sites on a network, meaning less repeated data in the object cache. 

Props spacedmonkey, flixos90, joemcgill.
Fixes #60120.

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

* Twenty Twenty-Three: Include Latin-extended characters in DM Sans font files.

This changeset fixes a bug where a replacement font was used in some languages, like Croatian.

Props cvorko, sabernhardt, poena, dingo_d.
Fixes #59008.





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

* REST API: Provide detailed error data in REST API response. 

When the fatal error handler is triggered within a REST API request, it currently utilizes wp_die to display a specially formatted error response. However, crucial information captured by the fatal error handler, such as the exact line where the error occurred, is not included in the response due to potential security concerns, such as leaking file paths.

To address this limitation and aid developers in debugging, this enhancement introduces the inclusion of error data in the response when the `WP_DEBUG_DISPLAY` constant is set to true. This additional data, appended under the new key error_data, will facilitate more thorough debugging for REST API errors.

Props ecc, spacedmonkey, TimothyBlynJacobs, rcorrales.
Fixes #60014.

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

* REST API: Improve error handling in REST meta fields

This update modifies the error handling mechanism in the REST API meta fields functionality. Instead of halting execution and returning on the first encountered error, it now collects all errors in a WP_Error object and continues execution. Thus, this enhancement enables handling and displaying of multiple errors in a single response, improving the debugging process. 

Props TimothyBlynJacobs, spacedmonkey, hellofromTonya, oglekler. 
Fixes #48823.

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

* Permalinks: Detect Caddy web server support.

Support pretty permalinks when Caddy server is detected.

Props swissspidy, mukesh27, sadpencil, cfinnberg, viliamkopecky.
Fixes #41877.

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

* Coding Standards: Add missing fullstop to docblocks in `wp-includes/vars.php`

Follow-up to [57612.

Props mukesh27.
See #41877.

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

* Docs: Revisit the canonical location for the `image_save_progressive` filter.

This aims to bring consistency with the `image_make_intermediate_size` filter, which has the main DocBlock in `WP_Image_Editor_GD::_save()` and a duplicate hook reference in `WP_Image_Editor_Imagick::_save()`.

Follow-up to [57607].

See #21668.

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

* Plugins: Only set card button status on plugin install pages.

Previously, the `setCardButtonStatus()` JS function was called when a card had the ID 'plugin-information-footer'. However, the card will only exist on plugin install pages. This caused a failure when updating plugins from the plugin row on `plugins.php` due to an undefined `$card` variable.

This adds a guard to ensure that the current page is one of the plugin install pages, preventing the error and allowing plugin updates from the `plugins.php` rows to work as expected.

Follow-up to [57545].

Props Presskopp, huzaifaalmesbah, krupajnanda, hellofromTonya, krupalpanchal, costdev.
Fixes #60521.

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

* Docs: Correct the duplicate hook reference for `image_save_progressive` filter.

Follow-up to [57607], [57614].

Props skithund.
See #21668.

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

* Upgrade/Install: Avoid unnecessary db operations for plugin dependencies.

The Plugin Dependencies feature saves a list of any plugins that have been disabled due to unmet dependencies to a transient in order to give user feedback in the admin about what has taken place. This ensures that the DB operations to write this transient is skipped if there are no dependent plugins to deactivate.

Props joemcgill, costdev, afragen.
Fixes #60518.


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

* General: Some minor adjustments for the Site Icon option:

* Improve buttons flow on small viewports, taking longer translations into account.
* Make `alt` attributes translatable.
* Remove unused `id` attributes.

Follow-up to [57602].

Props kebbet, afercia, mukesh27.
See #54370.

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

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

It includes all the backports from this Gutenberg PR WordPress/gutenberg#58964

Props youknowriad, get_dave.
See #60315.

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

* Plugins: Disable bulk actions for dependencies.

The intended behaviour of Plugin Dependencies is that dependencies cannot be deleted until their dependents are deleted.

While the 'Delete' link was removed from the plugin row, the bulk actions checkbox remained enabled, allowing for deletion of dependencies through bulk actions.

This was unintended behaviour and the bulk actions checkbox is now disabled as intended.

Follow-up to [57545].

Props johnbillion, afragen, knutsp, huzaifaalmesbah, mukesh27, costdev.
Fixes #60471.

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

* Twenty Twenty-Four: Wrap header navigation block in row.

Makes it easier to add siblings using the block hooks API without them being treated as flex items due to its parent being a row block.

Props tomjcafferkey, poena.
Fixes #60410.

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

* Upgrade/Install: Only check plugins whose data is already stored.

In [57592], some `update_option()` calls were removed from bootstrapping. However, this also removed a check to ensure an array key existed, and populated it if not.

Scaffolding tests by WP-CLI revealed that a plugin in the `active_plugins` option may not have data already stored within the `plugin_data` option, causing a PHP warning for an undefined array key. This data will be added the next time `get_plugins()` is called.

This adds a condition to ensure the requirements checks are only performed on plugins whose data is already stored in the `plugin_data` option.

Follow-up to [57592].

Props swissspidy, hellofromTonya, costdev.
Fixes #60461.

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

* REST API: Set maximum 'per_page' for embedded REST API requests.

This enhancement refines the REST API server to automatically establish the maximum 'per_page' value for embedded objects, adhering to the endpoint's schema when not explicitly defined in the request. This adjustment elevates the limit from the default of 10 items to 100 items, significantly improving the likelihood of receiving the complete dataset of embedded objects.

Props manyourisms, lpawlik, spacedmonkey, kadamwhite, TimothyBlynJacobs. 
Fixes #43439.

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

* REST API: Refactor global styles endpoints in REST API to register with post type. 

Updated the global styles endpoints in the REST API to extend from existing posts and revisions controllers. This reduces duplicated code and inconsistencies. The revisions controller is now a subclass of the WP_REST_Revisions_Controller. Related redundant methods were removed and schema generation and collection parameters were adjusted to suit the global styles context. Updated permission checks, constructor, and collection parameters accordingly. This change allows for easy override of these classes using the `register_post_type_args` filter. 

Props ramonopoly, spacedmonkey, mukesh27.
Fixes #60131.

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

* Multisite: Escape urls and html elements in wp-activate.php

When WPMU was merged in [12603], the intent was to go back and make sure everything was escaped. This completes that intent.

Props rafiq91, rajinsharwar, costdev, oglekler, nicolefurlan, ryan, peterwilsoncc.
Fixes #57336.
See #11644.



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

* Emoji: Replace `twitter/twemoji` with `jdecked/twemoji`.

After a chaotic change of ownership, the `twitter/twemoji` library is now considered abandoned.

After waiting for this moment to arise, a fork was created by several former employees who had maintained the library which lives at `jdecked/twemoji` on GitHub.

This switches out where the underlying source code comes from for the library, and applies the 15.0.3 update, which adheres to the Unicode 15 spec and adds support for all Emoji introduced in Emoji 15.0.

This does not update the underlying `precommit:emoji` Grunt script responsible for updating `formatting.php`. After GitHub recently sunset support for SVN, the current process needs to be replaced with a new one. This will be handled in #60520.

Let the masses rejoice for the 🐦‍⬛ singing in the dead of night, secure 🛜, aromatic 🫚, and some very silly 🪿🪿.

RIP Twemoji. Long live Twemoji!

Props peterwilsoncc, kraftbj, jeffpaul, azaozz, dd32, hareesh-pillai, jorbin.
Fixes #57600.

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

* Block Hooks: Set `ignoredHookedBlocks` metadata upon saving.

Decouple hooked blocks insertion from setting the `metadata.ignoredHookedBlocks` attribute on anchor blocks, and perform the latter step upon saving a template or template part to the database. This ensures that anchor blocks that have been newly added to a template (or part) on the client side will also get `ignoredHookedBlocks` metadata set correctly, thus preserving editor/front-end parity. Hooked block insertion, on the other hand, will continue to happen upon ''reading'' a template (or part).

Props gziolo, tomjcafferkey.
Fixes #60506.

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

* REST API: Revert the refactor of global styles endpoints in REST API in [57624].

[57624] introduced some E2E test failures which are the result of an incompatibility with the Gutenberg plugin.

Props jorbin, spacedmonkey, swissspidy, hellofromTonya, youknowriad, costdev.
See #60131.


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

* WordPress 6.5 Beta 1.





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

* Post WordPress 6.5 Beta 1 version bump.





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

* Bundled Themes: Support pullquote block typography options in Twenty Twenty-One.

Pullquotes were not inheriting the correct styling from the block
editor. This commit resolves the issue by supporting typography options.

1. The `font-family` variable remains on the paragraph (both editor and front) so the citation continues to use the body font even when the site redefines `var(--pullquote--font-family)`.

2. The `font-size`, `font-style`, `font-weight`, `letter-spacing` and `line-height` are set on the Pullquote block to allow overriding with the sidebar settings. Then the block's paragraph element inherits those styles.

3. When the settings do not give a custom `line-height` from the sidebar, these stylesheets set the paragraph to `var(--pullquote--line-height)` instead of inheriting 1.6 from the block styles. This patch uses `:where()` to avoid increasing specificity.

Moving styles from the paragraph element to the block should not affect the citation, which has had its own styles for `font-size`, `font-style`, `font-weight` and `letter-spacing`.

Follow-up to [56959], [56451], [55089], [55088], [49574], [49320], [49216].

Props sabernhardt, poena, darshitrajyaguru97, harshgajipara, shailu25, skyakash12.
Fixes #57854.

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

---------

Co-authored-by: Sergey Biryukov <sergeybiryukov@git.wordpress.org>
Co-authored-by: Jonathan Desrosiers <desrosj@git.wordpress.org>
Co-authored-by: Aaron Jorbin <jorbin@git.wordpress.org>
Co-authored-by: Joe Dolson <joedolson@git.wordpress.org>
Co-authored-by: Isabel Brison <isabel_brison@git.wordpress.org>
Co-authored-by: Greg Ziółkowski <gziolo@git.wordpress.org>
Co-authored-by: Riad Benguella <youknowriad@git.wordpress.org>
Co-authored-by: Dennis Snell <dmsnell@git.wordpress.org>
Co-authored-by: Pascal Birchler <swissspidy@git.wordpress.org>
Co-authored-by: Jb Audras <audrasjb@git.wordpress.org>
Co-authored-by: Colin Stewart <costdev@git.wordpress.org>
Co-authored-by: bernhard-reiter <bernhard-reiter@git.wordpress.org>
Co-authored-by: David Baumwald <davidbaumwald@git.wordpress.org>
Co-authored-by: Tonya Mork <hellofromtonya@git.wordpress.org>
Co-authored-by: Adam Silverstein <adamsilverstein@git.wordpress.org>
Co-authored-by: Jonny Harris <spacedmonkey@git.wordpress.org>
Co-authored-by: Joe McGill <joemcgill@git.wordpress.org>
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.

2 participants