There are currently ~2,000 open pull requests on GitHub for `wordpress-develop`. Many of these were for testing changes that have already been merged.
To help prevent orphaned pull requests, this new workflow will search for any pull requests referencing the `Fixed` Trac tickets as noted in the commit message and close them out. For now, this only happens for `push` events.
Props peterwilsoncc, swissspidy, johnbillion, davidbaumwald.
Fixes#62817.
Built from https://develop.svn.wordpress.org/trunk@59661
git-svn-id: http://core.svn.wordpress.org/trunk@59004 1a063a9b-81f0-0310-95a4-ce76da25c4cd
When running a command that goes via docker.js and produces a non-zero exit code, the error message and stack trace from node an safely be hidden because the stack trace only points to the `execSync()` call and is of no use.
Fixes#62814
Built from https://develop.svn.wordpress.org/trunk@59659
git-svn-id: http://core.svn.wordpress.org/trunk@59002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Document that unserialised data types are stored as strings in the database and returned as such by the meta data functions. For example, setting meta data to the integer value `1` will be returned as `"1"` when subsequently queried via `get_metadata()` and the related functions.
Props sukhendu2002, azaozz, jrf, rodrigosprimo.
Fixes ticket:61950.
Built from https://develop.svn.wordpress.org/trunk@59657
git-svn-id: http://core.svn.wordpress.org/trunk@59000 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This updates the admin color scheme `.sass` files to address some deprecated notices caused by upstream changes.
- `string` and `colors` are no longer globally available functions.
- `@import` is deprecated in favor of `@use`.
There are still a few notices that are output, however this will require an update to the `grunt-sass` package to resolve.
Props MattyRob.
Fixes#62323.
Built from https://develop.svn.wordpress.org/trunk@59656
git-svn-id: http://core.svn.wordpress.org/trunk@58999 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Old branches requiring outdated versions of Chromium to run JavaScript tests have recently started failing as a result of the `ubuntu-latest` container being updated to point to `ubuntu-24`.
This introduces a new input to the reusable JavaScript testing workflow to allow a fix to be used without having to update Chromium or tests in these branches.
Props swissspidy.
See #62808.
Built from https://develop.svn.wordpress.org/trunk@59635
git-svn-id: http://core.svn.wordpress.org/trunk@58998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This aims to bring consistency with a similar fragment in other files, since relocating `wp-admin` or `wp-load.php` is not supported at this time.
Follow-up to [6659], [7971], [8315].
Props hussain896, swissspidy, knutsp, SergeyBiryukov.
Fixes#62809.
Built from https://develop.svn.wordpress.org/trunk@59634
git-svn-id: http://core.svn.wordpress.org/trunk@58997 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Prior to this change a new session was unnecessarily created when a user changed their own password.
Existing authentication cookies for the user will still be invalidated regardless of whether they share the same session token because session cookie keys contain a substring of the password hash.
Props snicco, narenin, johnbillion
Fixes#61366
Built from https://develop.svn.wordpress.org/trunk@59633
git-svn-id: http://core.svn.wordpress.org/trunk@58996 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Optimize the order of checking the various options caches in `get_option()` to prevent hitting external caches each time it is called for a known non-existent option.
The caches are checked in the following order when getting an option:
1. Check the `alloptions` cache first to prioritize existing loaded options.
2. Check the `notoptions` cache before a cache lookup or DB hit.
3. Check the `options` cache prior to a DB hit.
Follow up to [56595].
Props adamsilverstein, flixos90, ivankristianto, joemcgill, rmccue, siliconforks, spacedmonkey.
Fixes#62692.
See #58277.
Built from https://develop.svn.wordpress.org/trunk@59631
git-svn-id: http://core.svn.wordpress.org/trunk@58994 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This bug could occur in `WP_REST_Posts_Controller`, `WP_REST_Global_Styles_Revisions_Controller`, `WP_REST_Revisions_Controller`, and any of their child classes. This changeset fixes it throughout.
Props apermo, pbearne, hemant-ahir, flixos90.
Fixes#62292.
Built from https://develop.svn.wordpress.org/trunk@59630
git-svn-id: http://core.svn.wordpress.org/trunk@58993 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Adds a new `WP_PHPMailer` class to leverage the WordPress i18n system with PHPMailer, so that any user-visible error messages can be properly translated.
Props sukhendu2002, swissspidy, audrasjb, iandunn, nacin, mark-k.
Fixes#23311.
Built from https://develop.svn.wordpress.org/trunk@59592
git-svn-id: http://core.svn.wordpress.org/trunk@58978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Fix an issue where index color (8 bit) PNG uploads were output as true color (24 bit) PNGs, significantly increasing their size. When using Imagick, PNG output images will now match the colors of the uploaded image.
Also, correct handling of PNG alpha channel information so it is preserved in output images.
Props adamsilverstein, pbearne, nosilver4u, peterdavehello, joemcgill, azaozz, codex-m, kirasong, justlevine, jokanane, sallyruchman, wpfed, tgsrvrs, antpb, tb1909.
Fixes#36477.
Built from https://develop.svn.wordpress.org/trunk@59589
git-svn-id: http://core.svn.wordpress.org/trunk@58975 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Fix an issue where uploaded HDR images were resized and output as SDR and thus significantly degraded from the original. When using Imagick, output images will now match the bit depth of the uploaded image.
Add a new filter ‘image_max_bit_depth’ which developers can use to control the maximum bit depth for resized images.
Props adamsilverstein, kirasong, gregbenz, apermo.
Fixes#62285.
Built from https://develop.svn.wordpress.org/trunk@59588
git-svn-id: http://core.svn.wordpress.org/trunk@58974 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The latest LTS version of MariaDB is 11.4, which is now included in the test matrix.
This changeset also expands the test matrix to include all LTS versions of MariaDB with > 1% of usage on WordPress sites in the wild as reported by the stats page on WordPress.org. Though a few of these are unsupported upstream, they are still supported in WordPress itself.
MariaDB 5.5 is also included in the new matrix. Because it was intended as a drop-in replacement to MySQL at the time, this also brings some MySQL 5.5 testing into the matrix. This has not been regularly tested against since specific database versions were included due to the lack of a working Docker container.
Props johnbillion, jorbin.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59587
git-svn-id: http://core.svn.wordpress.org/trunk@58973 1a063a9b-81f0-0310-95a4-ce76da25c4cd
MariaDB also follows the innovation release model. This adds testing for these releases to the test matrix and moves innovation versions to a new job in order to more clearly differentiate from LTS ones.
The current innovation release for MariaDB is `11.6`.
Props johnbillion, jorbin.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59586
git-svn-id: http://core.svn.wordpress.org/trunk@58972 1a063a9b-81f0-0310-95a4-ce76da25c4cd
On MySQL/MariaDB 5.5, the default value for `sql_mode` was a blank string. By itself this is not a problem. However, `$wpdb->get_var()` returns `null` when a variable has an empty value.
One test method currently passes the result of `$wpdb->get_var( 'SELECT @@SESSION.sql_mode;' )` to `explode()` in order to reset the database to the pre-test method state. This causes an error when running PHP 8.1+, which deprecated the ability to pass `null` as a parameter of `explode()`.
This edge case was undiscovered because these versions are not currently included in the automated testing matrix.
See #62280.
Built from https://develop.svn.wordpress.org/trunk@59583
git-svn-id: http://core.svn.wordpress.org/trunk@58969 1a063a9b-81f0-0310-95a4-ce76da25c4cd
On some screen sizes and languages, the "See everything new" button expands out of the content area. This change allows the button to wrap at all screen sizes, and updates the style of this button for wrapped text.
Props franciscabusas22, sabernhardt, yogeshbhutka, sainathpoojary, im3dabasia1, audrasjb.
Fixes#62380.
Built from https://develop.svn.wordpress.org/trunk@59580
git-svn-id: http://core.svn.wordpress.org/trunk@58966 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This aims to catch entries like `(C) 2024 WordPress.org` in addition to `Copyright 2024 WordPress.org`.
Includes converting the test to use a data provider, so that messages could be displayed for each individual theme.
Follow-up to [46719], [59569].
See #62280.
Built from https://develop.svn.wordpress.org/trunk@59579
git-svn-id: http://core.svn.wordpress.org/trunk@58965 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Adds a `noindex` directive to pages displaying a preview of an unapproved comment, ie pages with both an `approved` and `moderation-hash` parameter.
This is to prevent the pages from appearing in search engines which can be the case if they ignore the canonical URL directive.
Props peterwilsoncc, flixos90, joostdevalk.
Fixes#62760.
Built from https://develop.svn.wordpress.org/trunk@59576
git-svn-id: http://core.svn.wordpress.org/trunk@58962 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Update copyright year to 2025 in `license.txt` and bundled themes.
Follow-up to [18201], [23306], [28064], [36855], [36856], [39659], [40241], [42424], [46719], [46720], [47025], [47026], [49915], [52427], [55024], [57235].
Built from https://develop.svn.wordpress.org/trunk@59568
git-svn-id: http://core.svn.wordpress.org/trunk@58954 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This brings consistency with the `before_section` HTML content, which did get printed in `do_settings_sections()` regardless of whether the settings section has any fields attached.
Follow-up to [8855], [21742], [54247].
Props alpipego, SergeyBiryukov.
Fixes#62746.
Built from https://develop.svn.wordpress.org/trunk@59564
git-svn-id: http://core.svn.wordpress.org/trunk@58950 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Add the ID `wp-skip-link` to the block theme generated skip link, so that block themes have a standardized target at the top of the `body` element.
Props philliproth, audrasjb, debarghyabanerjee, sabernhardt, joedolson, apermo.
Fixes#62311.
Built from https://develop.svn.wordpress.org/trunk@59559
git-svn-id: http://core.svn.wordpress.org/trunk@58945 1a063a9b-81f0-0310-95a4-ce76da25c4cd
In [59224], customizer accordion item HTML structure was changed to include a `button` element as the interactive control. However, some themes inject custom markup for panel headings.
Fix `controls.js` to handle both the new markup and the old markup, which is relatively common in themes.
Props paullb, desrosj, sabernhardt, joedolson, jorbin.
Fixes#62494.
Built from https://develop.svn.wordpress.org/trunk@59555
git-svn-id: http://core.svn.wordpress.org/trunk@58941 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This changeset adds a `noun` or `verb` context to the various occurrences of "upload" in the admin, to make it easier for translators to differenciate these strings depending on the context.
Props timse201, wpgerd.
Fixes#62732.
Built from https://develop.svn.wordpress.org/trunk@59554
git-svn-id: http://core.svn.wordpress.org/trunk@58940 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This changeset fixes an issue where the theme browser created unwanted horizontal scrolling on some mobile devices. The issue occured when viewing theme details on mobile.
Follow-up to [26142].
Props wildworks, abcd95, sainathpoojary, dhruvang21, sabernhardt.
Fixes#62411.
Built from https://develop.svn.wordpress.org/trunk@59553
git-svn-id: http://core.svn.wordpress.org/trunk@58939 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This changeset addresses adjusts margins around the login form for visual consistency. The margin above and below the form is now consistently set to 24px, and the margin below the logo has also been adjusted to 24px.
Follow-up to [26072].
Props deeppatel8950, audrasjb, priyank9033, viralsampat, vijaysinh9094, sabernhardt, .
Fixes#61667.
Built from https://develop.svn.wordpress.org/trunk@59551
git-svn-id: http://core.svn.wordpress.org/trunk@58937 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This changeset fixes an issue in the Media Library where icons or thumbnails of uploaded files were stuck to the border of their container after file upload.
Follow-up to [58279].
Props sukhendu2002, im3dabasia1, sainathpoojary, joedolson.
Fixes#62573.
See #60141.
Built from https://develop.svn.wordpress.org/trunk@59550
git-svn-id: http://core.svn.wordpress.org/trunk@58936 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Ignore the `format` parameter introduced in WordPress 6.7 for post types that do not support post formats. This protects against a fatal error being thrown in later version of PHP or a warning in earlier versions of PHP.
Follow up to r59115.
Props dd32, sergeybiryukov, yogeshbhutkar.
Fixes#62646.
See #62014.
Built from https://develop.svn.wordpress.org/trunk@59544
git-svn-id: http://core.svn.wordpress.org/trunk@58930 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Replaces the `-umd` appendage for the `react` and `react-dom` script versions with `.1`. This it to prevent issues with third party code expecting the version number in the form `/^[\d\.]+$/`.
Updates the version to tests in `Tests_Dependencies_Scripts::test_vendor_script_versions_registered_manually` to include the modified version used for cache busting.
Follow up to [59536], [58775].
Props azaozz, desrosj, peterwilsoncc.
Fixes#62422.
Built from https://develop.svn.wordpress.org/trunk@59540
git-svn-id: http://core.svn.wordpress.org/trunk@58926 1a063a9b-81f0-0310-95a4-ce76da25c4cd
In 6.7, [58775] changed the way `react` and `react-dom` are bundled in Core. This commit resulted in some changes to the built files that are distributed in WordPress even though the actual version of the libraries remained the same.
The result can be a blank white screen when trying to edit a post when those two script files are heavily cached. This adds `-umd` to the end of the version number to properly purge caches until the next update to these libraries occurs.
Props levskipg, get_dave, smerriman, jdnd, juanwp22, seanlanglands, robertstaddon.
Fixes 62422.
Built from https://develop.svn.wordpress.org/trunk@59536
git-svn-id: http://core.svn.wordpress.org/trunk@58922 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The `devDependencies` for all default themes with `package.json` files (Twenty Nineteen, Twenty Twenty, and Twenty Twenty-One) are now updated to their latest versions with a few exceptions in Twenty Twenty-One:
- Upgrading `stylelint`/`@wordpress/stylelint-config` requires some work to address rule deprecations.
- `@wordpress/eslint-plugin` does not yet support `eslint` 9.x.
Additionally, `npm audit fix` has been run for each theme.
See #62220.
Built from https://develop.svn.wordpress.org/trunk@59530
git-svn-id: http://core.svn.wordpress.org/trunk@58916 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This adds an input to the Test Old Branches workflow that allows a specific branch to be specified or `all` to run all old branches.
The default behavior is to only test the currently supported version of WordPress as defined in the `CURRENTLY_SUPPORTED_BRANCH` environment variable.
Follow up to [59520].
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59529
git-svn-id: http://core.svn.wordpress.org/trunk@58915 1a063a9b-81f0-0310-95a4-ce76da25c4cd
In [58010], the external test suite from `html5lib` was imported to validate the tree-construction steps in the HTML Processor to ensure that they are behaving according to the HTML specification.
The test group was excluded by default because there are a high number of skipped tests. The number of skipped tests has come down, but the group does not need to be run on every job.
This introduces a new job in the PHPUnit workflow for regularly running these tests on their own using the changes in [59251[.
Props desrosj, jonsurrell, jorbin, dmsnell, costdev, chaion07, engahmeds3ed.
Fixes#61209.
Built from https://develop.svn.wordpress.org/trunk@59528
git-svn-id: http://core.svn.wordpress.org/trunk@58914 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Block Hooks were previously only applied to layout elements such as templates, template parts, patterns, and navigation menus -- things that are edited in the Site Editor.
This changeset enables Block Hooks in post content. The parity between frontend and editor is preserved: Blocks inserted by Block Hooks are visible both on the frontend and in the editor, and any customizations made by the user are respected on the frontend.
This is possible thanks to setting the `metadata.ignoredHookedBlocks` attribute on anchor blocks (a technique first introduced in [57594]). For first child and last child insertion into a Post Content block, the corresponding post object's `_wp_ignored_hooked_blocks` post meta is set.
Props bernhard-reiter, gziolo, jonsurrell, karolmanijak, leewillis77.
Fixes#61074.
Built from https://develop.svn.wordpress.org/trunk@59523
git-svn-id: http://core.svn.wordpress.org/trunk@58909 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This aims to avoid slowing down the post editing by using a cached value instead of calling `get_users()`, which can be slow when plugins add various filters to all `get_users()` calls, especially with meta value comparisons on large `user_meta` tables.
Follow-up to [24304], [24543], [41829], [53011], [53018].
Props berislav.grgicak, bor0, costdev.
See #55958.
Built from https://develop.svn.wordpress.org/trunk@59522
git-svn-id: http://core.svn.wordpress.org/trunk@58908 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This makes the necessary changes to update the Slack GitHub Action to the latest version, currently `2.0.0`.
Most notably this update provides more control over how attempts re retried when rate limiting is encountered.
Reverts [59209].
See #61701, #62221.
Built from https://develop.svn.wordpress.org/trunk@59519
git-svn-id: http://core.svn.wordpress.org/trunk@58905 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Includes:
* Removing redundant `use_smilies` option switches, as it is set to 1 by default.
* Restoring the `$wpsmiliestrans` array before performing assertions, not after.
* Moving most of the `smilies_init()` calls to a `set_up()` method.
Follow-up to [409/tests], [26191], [28717].
See #62278.
Built from https://develop.svn.wordpress.org/trunk@59516
git-svn-id: http://core.svn.wordpress.org/trunk@58902 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This aims to avoid a fatal error from `count()` when `preg_split()` fails on large input.
Includes:
* Optimizing the regular expression used to split the input by tags to avoid unlimited backtracking for better performance.
* Adjusting the function logic for better readability.
Follow-up to [340], [4380], [26191].
Props podpirate, nathkrill, rajinsharwar, dmsnell, bjorsch, q0rban, audrasjb, rupw, Ov3rfly, jorbin, nhrrob, chaion07, mcqueen22, azaozz, narenin, roybellingan, SergeyBiryukov.
See #51019.
Built from https://develop.svn.wordpress.org/trunk@59515
git-svn-id: http://core.svn.wordpress.org/trunk@58901 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Fix a bug where a comment reply would be discarded if `esc` was pressed to dismiss the context menu in Safari or Firefox.
Checks whether the contextmenu is open and ignores the `esc` key if it is.
Props yellowafterlife, yogeshbhutkar, joedolson.
Fixes#62346.
Built from https://develop.svn.wordpress.org/trunk@59514
git-svn-id: http://core.svn.wordpress.org/trunk@58900 1a063a9b-81f0-0310-95a4-ce76da25c4cd
When reinstalling a theme by uploading a ZIP file, the wording used in some strings referred to the "active" theme even though it's not the currrently active theme. This changeset replaces these strings to refer to the "installed" theme, which is more accurate.
Follow-up to [52610], [52580].
Props afercia, ankitkumarshah, abcd95, yogeshbhutkar, parthvataliya, sainathpoojary, virgar, gaellebesson, nuryko, guillaumeturpin, maximemeganck, sabrineg.
Fixes#62603.
See #54831, #54770
Built from https://develop.svn.wordpress.org/trunk@59513
git-svn-id: http://core.svn.wordpress.org/trunk@58899 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Wrap the classic editor 'Skip to Editor' link in a conditional to prevent it from rendering on post types that do not have editor support.
Props wildworks, parthvataliya, narenin, sainathpoojary, ankitkumarshah, parthvataliya, im3dabasia1.
Fixes#62623.
Built from https://develop.svn.wordpress.org/trunk@59511
git-svn-id: http://core.svn.wordpress.org/trunk@58897 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Remove CSS that could occasionally trigger the accordion buttons to be 100% the height of the accordion container.
Props dhewercorus, im3dabasia1, sabernhardt, rvoigt, ghinamt, vishy-moghan, frankbiganski, redkite.
Fixes#62491.
Built from https://develop.svn.wordpress.org/trunk@59510
git-svn-id: http://core.svn.wordpress.org/trunk@58896 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This updates the following `devDependencies`:
- `dotenv` from `16.4.5` to `16.4.7`
- `dotenv-expand` from `11.0.6` to `12.0.1`
- `postcss` from `8.4.47` to `8.4.49`
- `qunit` from `2.22.0` to `2.23.1`
- `sass` from `1.79.4` to `1.79.6`
- `terser-webpack-plugin` from `5.3.10` to `5.3.11`
- `uglify-js` from `3.17.4` to `3.19.3`
- `uuid` from `9.0.1` to `11.0.3`
- `webpack` from `5.90.2` to `5.97.1`
Additionally, `npm audit fix` has been run.
Follow up to [58585].
See #62220.
Built from https://develop.svn.wordpress.org/trunk@59509
git-svn-id: http://core.svn.wordpress.org/trunk@58895 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The upgrade testing workflow is currently at ~978 jobs spawned from the strategy matrix. While it's great to test all possible combinations, GitHub's UI cannot keep up with tracking that number of jobs, often taking 30-45 minutes to accurately report the outcome even though the jobs themselves all complete in under 5 minutes.
This is 2x the total number of concurrent jobs allowed for the entire organization (which creates a backlog and slows everything down even more).
This trims down the number of combinations included in the testing matrices to be a bit more thoughtful following the following methodology:
- The last two releases of WordPress are tested against all PHP and MySQL LTS version combinations and the most recent innovation release.
- The next 6 oldest versions of WordPress are tested against both the oldest and newest releases of PHP currently supported for both PHP 7 & 8 along with the oldest and newest MySQL LTS versions currently supported (no innovation releases).
- For the remaining versions of WordPress receiving security updates, they are only included if the database version was different that the previous major release.
- The oldest version of WordPress receiving security updates should always be tested against the same full list of combinations as the last two releases.
When choosing which MySQL versions to test against:
- Only the most recent innovation release should be included in testing.
- Even though MySQL >= 5.5.5 is currently supported, there are no 5.5.x Docker containers available that work on modern architectures.
- 5.6.x Docker containers are available and work, but 5.6 only accounts for ~2.3% of installs as of 12/6/2024.defaults:
- 5.7.x accounts for ~20% of installs, so this is used below instead.
With these changes, the total number of jobs is reduced by ~58%.
Props johnbillion, mukesh27.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59508
git-svn-id: http://core.svn.wordpress.org/trunk@58894 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Because reusable workflows could be called from any other repository in a variety of contexts, repository specific `if` conditions should not be present.
Instead, this logic should be included in the calling workflows only.
Props johnbillion.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59507
git-svn-id: http://core.svn.wordpress.org/trunk@58893 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Fixes the issue when an HTML_Processor bookmark was set at a virtual token (a node in the resulting document that does not correspond to an HTML token present in the input string), seek behavior was unreliable.
Props jonsurrell, gziolo.
Fixes#62521.
Built from https://develop.svn.wordpress.org/trunk@59502
git-svn-id: http://core.svn.wordpress.org/trunk@58888 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The HTML specification does not close HTML or BODY tags (pop them off the stack of open elements) when their tag closers are encountered. The HTML processor correctly handled this behavior, however it incorrectly "paused" by returning true from the step functions.
Props jonsurrell, dmsnell, gziolo.
Fixes#62583.
Built from https://develop.svn.wordpress.org/trunk@59500
git-svn-id: http://core.svn.wordpress.org/trunk@58886 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Updates docblocks to account for new use of the `custom-css` string in their `$types` parameters and adds information to deprecation of `wp_get_global_styles_custom_css`.
Props justlevine, isabel_brison, ramonopoly.
Fixes#62665.
Built from https://develop.svn.wordpress.org/trunk@59499
git-svn-id: http://core.svn.wordpress.org/trunk@58885 1a063a9b-81f0-0310-95a4-ce76da25c4cd
While the PHPUnit workflow currently relies on the local Docker environment and provides some safety checks that the environment works as expected, this may not always be true and does not test all of the available commands related to the environment.
This introduces a basic workflow for testing the related scripts for the various supported combinations of PHP and database software with the environment to confirm everything is working as expected.
Ideally this would also be run on Windows and MacOS to catch platform specific bugs. Unfortunately, Docker is not supported within the GitHub Action runner images, so not all bugs will be caught by this workflow.
Props johnbillion, Clorith.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59492
git-svn-id: http://core.svn.wordpress.org/trunk@58878 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The `include` part of the strategy for the PHPUnit testing workflow defines a few testing configurations outside of the matrix. The versions of PHP and MySQL used in these have not been updated for some time. This was mostly due to various incompatibilities that have since been resolved.
Props peterwilsoncc, johnbillion.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59490
git-svn-id: http://core.svn.wordpress.org/trunk@58876 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Partially reverts [59479] and [59461], which previously tried to move some functions from `wp-admin/includes/plugin.php` to `wp-includes/functions.php` so they are available early, so that `get_plugin_data()` can be used.
However, other functions from that file are often used by plugins without necessarily checking whether they are available, easily causing fatal errors. Requiring this file directly is a safer approach to avoid such errors.
Props peterwilsoncc, dd32, swissspidy, johnbillion.
Fixes#62244.
Built from https://develop.svn.wordpress.org/trunk@59488
git-svn-id: http://core.svn.wordpress.org/trunk@58874 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Because the installation testing workflow relies on the reusable workflow that reads the JSON support files, it should be run when that file is changed to confirm there are no issues.
This is currently only configured for `pull_request` events, but should also be true for `push`.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59485
git-svn-id: http://core.svn.wordpress.org/trunk@58871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Older versions of MariaDB did not contain the `mariadb-admin` command. This command is configured as the `healthcheck` used by the local Docker environment to confirm that the database container has successfully started and is reporting as “healthy”. The current result is a failure when starting the environment while using one of the affected older versions.
For MariaDB versions 10.3 and earlier, the `mysqladmin` command was used instead. Since WordPress still technically supports back to MariaDB 5.5, the local environment should support running these versions. This updates the environment configuration to take this into account when performing a `healthcheck` test.
The README file is also updated to reflect that the same workaround added in [57568] for MySQL <= 5.7 is required when using MariaDB 5.5 on an Apple silicon machine.
Props johnbillion.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59484
git-svn-id: http://core.svn.wordpress.org/trunk@58870 1a063a9b-81f0-0310-95a4-ce76da25c4cd
`actions/checkout` will always checkout the current repository unless the `repository` input is specified. This updates the `reusable-support-json-reader-v1.yml` workflow to always default to reading the JSON files from `wordpress-develop`.
A `repository` has also been added to the workflow to allow a different set of JSON files to be read if desired.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59483
git-svn-id: http://core.svn.wordpress.org/trunk@58869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Ensure that the `$context` arg passed from `update_ignored_hooked_blocks_postmeta` to `apply_block_hooks_to_content` (and from there, to filters such as `hooked_block_types` and `hooked_block`) has the correct type (`WP_Post`).
Filters hooked to `hooked_block_types` etc can typically include checks that conditionally insert a hooked block depending on `$context`. Prior to this changeset, a check like `if ( $context instanceof WP_Post )` would incorrectly fail, as `$context` would be a `stdClass` instance rather than a `WP_Post`. As a consequence, a hooked block inside of a Navigation post object that was modified by the user would not be marked as ignored by `update_ignored_hooked_blocks_postmeta`, and thus be erroneosly re-inserted by the Block Hooks algorithm.
Props bernhard-reiter.
Fixes#62639.
Built from https://develop.svn.wordpress.org/trunk@59482
git-svn-id: http://core.svn.wordpress.org/trunk@58868 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This prevents printing styles and scripts before the `<!DOCTYPE>`.
The `_wp_admin_html_begin()` function should precede Customizer script hooks, in case a plugin prints markup inside a hook such as `admin_enqueue_scripts`.
Follow-up to [19995], [27907].
Props sabernhardt.
Fixes#62629.
Built from https://develop.svn.wordpress.org/trunk@59480
git-svn-id: http://core.svn.wordpress.org/trunk@58866 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This is a follow-up to [59461], which moved `get_plugin_data()` from `wp-admin/includes/plugin.php` to `wp-includes/functions.php` so it's available during the plugin loading process.
Related functions like `is_plugin_active()` are often used together and should therefore be moved as well, to improve backward compatibility for plugins which load `wp-admin/includes/plugin.php` only conditionally.
Props johnbillion, dd32, swissspidy.
See #62244.
Built from https://develop.svn.wordpress.org/trunk@59479
git-svn-id: http://core.svn.wordpress.org/trunk@58865 1a063a9b-81f0-0310-95a4-ce76da25c4cd
As a follow-up to [59460], make sure that admin strings are loaded when switching locales for auto update notification emails, as those strings are in a separate translation file.
Props benniledl, swissspidy.
Fixes#62496.
Built from https://develop.svn.wordpress.org/trunk@59478
git-svn-id: http://core.svn.wordpress.org/trunk@58864 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The Interactivity API tries to align client and server rendering so that the behavior is the same. Adds missing handling for `.length` to directives processing on the server on strings and numeric arrays which is inherently supported through JavaScript language on the client.
Props jonsurrell, gziolo, luisherranz.
Fixes#62582.
Built from https://develop.svn.wordpress.org/trunk@59477
git-svn-id: http://core.svn.wordpress.org/trunk@58863 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This change hides the top border of the first comment in the latest comments block, so that the design
in the editor and the front looks the same.
Props viralsampat, sabernhardt, aishwarryapande, parthvataliya, imranhasanraaz.
Fixes#62282.
Built from https://develop.svn.wordpress.org/trunk@59476
git-svn-id: http://core.svn.wordpress.org/trunk@58862 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This gives users another option when selecting how dates are displayed on their site. This change is relevant for better localization, providing more date format choices for users in regions where this format is common.
The `array_unique()` call ensures that if this format was already added by a plugin or theme, it won't be duplicated.
Follow-up to [9131], [22299], [28820], [28848].
Props Daedalon, pbearne, fierevere, im3dabasia1, SergeyBiryukov.
Fixes#55685.
Built from https://develop.svn.wordpress.org/trunk@59475
git-svn-id: http://core.svn.wordpress.org/trunk@58861 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Add a new $size parameter to the wp_editor_set_quality filter. $size is an array with 'width' and 'height' keys. Developers can use this information to set image quality based on the image size.
Props adamsilverstein, joemcgill, Mte90, codekraft, birgire, azaozz, sppramodh.
Fixes#54648.
Built from https://develop.svn.wordpress.org/trunk@59473
git-svn-id: http://core.svn.wordpress.org/trunk@58859 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This addresses several instances of `gmdate( 'w' )` being used directly as an integer, when it's actually a numeric string. The issue is remediated by casting the value to `int` before use.
Affected functions:
* `get_calendar()`
* `get_weekstartend()`
Follow-up to [508], [1632].
Props justlevine.
See #52217.
Built from https://develop.svn.wordpress.org/trunk@59471
git-svn-id: http://core.svn.wordpress.org/trunk@58857 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The post author and post date did not have space between them and the post content. This brings in 1em of top margin. Of note is that this only is if the first element is a paragraph that the issue was caused.
Props abcd95, sabernhardt, desrosj, sainathpoojary, viralsampat.
Fixes#62243.
Built from https://develop.svn.wordpress.org/trunk@59470
git-svn-id: http://core.svn.wordpress.org/trunk@58856 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The current implementation of `create_fragment` (and the underlying `create_fragment_at_current_node`) allows passing in a context that might result in a tree that cannot be represented by HTML. For example, a user might use `<p>` as context, and attempt to create a fragment that also consists of a paragraph element, `<p>like this`. This would result in a paragraph node nested inside another -- something that can never result from parsing HTML.
To prevent this, this changeset makes `create_fragment_at_current_node` private and limits `create_fragment` to only `<body>` as context, while a comprehensive solution to allow other contexts is being worked on.
Follow-up to [59444], [59467].
Props jonsurrell, dmsnell, bernhard-reiter.
Fixes#62584.
Built from https://develop.svn.wordpress.org/trunk@59469
git-svn-id: http://core.svn.wordpress.org/trunk@58855 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This changeset modifies `WP_HTML_Processor::create_fragment( $html, $context )` to use a full processor and `create_fragment_at_node` instead of the other way around. This makes more sense and makes the main factory methods more clear, where the state required for fragments is set up in `create_fragment_at_node` instead of in both `create_fragment` and `create_fragment_at_current_node`.
This allows for more HTML contexts to be provided to the basic `create_fragment` where the provided context HTML is appended to `<!DOCTYPE html>`, a full processor is created, the last tag opener is found, and a fragment parser is created at that node via `create_fragment_at_current_node`.
The HTML5lib tests are updated accordingly to use this new method to create fragments.
Props jonsurrell, dmsnell, bernhard-reiter.
Fixes#62584.
Built from https://develop.svn.wordpress.org/trunk@59467
git-svn-id: http://core.svn.wordpress.org/trunk@58853 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The file could declare its own `$theme` variable, which would override the one used in the `foreach` loop.
To prevent this, call `wp_get_theme()` before loading the file and store the instance in a different variable.
Props neo2k23, swissspidy.
See #62244.
Built from https://develop.svn.wordpress.org/trunk@59466
git-svn-id: http://core.svn.wordpress.org/trunk@58852 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This addresses two instances of the (numeric string) `gmdate( 'Z' )` being added to an `int` value.
Affected functions:
* `upgrade_110()`
* `WP_Date_Query::validate_date_values()`
Follow-up to [942], [29925], [45424].
Props justlevine.
See #52217.
Built from https://develop.svn.wordpress.org/trunk@59465
git-svn-id: http://core.svn.wordpress.org/trunk@58851 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Fixes a missing "D" in the character list used by strspn to find tag openers, causing tags starting with D to be skipped by the tag processor in some circumstances.
Follow-up to [58613].
Props jonsurrell, santosguillamot, wongjn, cbravobernal.
Fixes#62522.
Built from https://develop.svn.wordpress.org/trunk@59464
git-svn-id: http://core.svn.wordpress.org/trunk@58850 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This addresses two instances of the (numeric string) return value from `wp_count_terms()` being used directly in `ceil()`, which expects an `int|float`.
Affected methods:
* `WP_Sitemaps_Taxonomies::get_max_num_pages()`
* `wp_nav_menu_item_taxonomy_meta_box()`
Reference: [https://www.php.net/manual/en/function.ceil.php PHP Manual: ceil()].
Follow-up to [14248], [14291], [14569], [14943], [48072], [57648].
Props justlevine.
See #52217.
Built from https://develop.svn.wordpress.org/trunk@59462
git-svn-id: http://core.svn.wordpress.org/trunk@58848 1a063a9b-81f0-0310-95a4-ce76da25c4cd
In #34114, just-in-time (JIT) translation loading was implemented for projects hosted on WordPress.org. This is now expanded to all other plugins/themes.
Projects with a custom `Text Domain` and `Domain Path` header no longer need to call `load_plugin_textdomain()` or `load_theme_textdomain()`.
This reduces the risk of calling them too late, after some translation calls already happened, and generally makes it easier to properly internationalize a plugin or theme.
This moves the `get_plugin_data()` from `wp-admin/includes/plugin.php` to `wp-includes/functions.php` so it's available during the plugin loading process.
Props swissspidy.
Fixes#62244.
Built from https://develop.svn.wordpress.org/trunk@59461
git-svn-id: http://core.svn.wordpress.org/trunk@58847 1a063a9b-81f0-0310-95a4-ce76da25c4cd
If sending an auto update email to the site administrator's email address, look up if a user with the same email exists and switch to that user's locale. If not, explicitly switches to the site locale.
This is a follow-up to [59128] where this was previously added for other types of emails.
Props benniledl, swissspidy.
Fixes#62496.
Built from https://develop.svn.wordpress.org/trunk@59460
git-svn-id: http://core.svn.wordpress.org/trunk@58846 1a063a9b-81f0-0310-95a4-ce76da25c4cd
It is possible to supply a set of default query `args` to `register_taxonomy()` which will be used when querying a list of terms -- for example, `orderby` in order to specify how the resulting list of terms should be sorted.
The Terms REST API controller previously respected these default query args only if the request included a post ID. This changeset makes it so that the default args will also be respected if no post ID is provided.
Props bernhard-reiter, jsnajdr.
Fixes#62500.
Built from https://develop.svn.wordpress.org/trunk@59458
git-svn-id: http://core.svn.wordpress.org/trunk@58844 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This updates `WP_Theme_JSON::get_svg_filters()` to use `WP_Duotone::get_filter_svg_from_preset()` instead of the `wp_get_duotone_filter_svg()` function, deprecated in WordPress 6.3.
Follow-up to [52757], [56101].
Props justlevine.
See #52217.
Built from https://develop.svn.wordpress.org/trunk@59455
git-svn-id: http://core.svn.wordpress.org/trunk@58841 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This addresses two instances where a function that is documented as returning `{someType}|null` doesn't explicitly return `null`.
Affected functions:
* `array_key_first()`
* `WP_REST_Posts_Controller::handle_terms()`
Follow-up to [38832], [52038].
Props justlevine.
See #52217.
Built from https://develop.svn.wordpress.org/trunk@59453
git-svn-id: http://core.svn.wordpress.org/trunk@58839 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This extracts the logic responsible for parsing the `.version-support-*.json` files and returning a list of supported PHP and MySQL versions for a given branch of WordPress into a reusable workflow so that other workflows can make use of the functionality without repeating code.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59452
git-svn-id: http://core.svn.wordpress.org/trunk@58838 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Adds a new function, `wp_render_empty_block_template_warning`, that renders a warning for logged-in users when a block template is empty.
Reviewed by get_dave, richtabor.
Props vcanales, mikachan, peterwilsoncc, richtabor, get_dave, mrfoxtalbot, matveb, arielmaidana, seifradwane, annezazu.
Fixes#62053.
Built from https://develop.svn.wordpress.org/trunk@59449
git-svn-id: http://core.svn.wordpress.org/trunk@58835 1a063a9b-81f0-0310-95a4-ce76da25c4cd
HTML Fragment parsing always happens with a context node, which may impact how a fragment of HTML is parsed. HTML Fragment Processors can be instantiated with a `BODY` context node via `WP_HTML_Processor::create_fragment( $html )`.
This changeset adds a static method called `create_fragment_at_current_node( string $html_fragment )`. It can only be called when the processor is paused at a `#tag`, with some additional constraints:
- The opening and closing tags must appear in the HTML input (no virtual tokens).
- No "self-contained" elements are allowed ( `IFRAME`, `SCRIPT`, `TITLE`, etc.).
If successful, the method will return a `WP_HTML_Processor` instance whose context is inherited from the node that the method was called from.
Props jonsurrell, bernhard-reiter, gziolo.
Fixes#62357.
Built from https://develop.svn.wordpress.org/trunk@59444
git-svn-id: http://core.svn.wordpress.org/trunk@58830 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Includes:
* Moving the comments directly above `wp.i18n._x()` so that they can be picked up properly.
* Simplifying the context to avoid unnecessarily translating the string twice for the same use case.
* Using the established translator comments format for consistency.
Follow-up to [59428].
See #62402.
Built from https://develop.svn.wordpress.org/trunk@59431
git-svn-id: http://core.svn.wordpress.org/trunk@58817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
When `load_*_textdomain()` functions are called after WordPress has already attempted just-in-time loading of translations, nothing happens.
This updates the related logic to retry translation loading when a custom path is set to ensure all translations are available.
Additionally, this also fixes cases where an `en_US.mo` file is provided with non-English strings to override the default language.
Follow up to [59157].
Props swissspidy, peterwilsoncc, desrosj, apermo, sergeybiryukov, wildworks, tigriweb, twvania, looswebstudio, stimul, audrasjb, finntown, bluantinoo, timwhitlock, albigdd.
See #62337.
Built from https://develop.svn.wordpress.org/trunk@59430
git-svn-id: http://core.svn.wordpress.org/trunk@58816 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Improvements were made in 6.7 to ensure that salts stored in the database were primed more efficiently.
The logic added to accomplish this suffered from an edge case where array indexes were unexpectedly missing when `wp_salt()` was called recursively.
Follow up to [58837].
Props juliobox, ankitkumarshah, dilipbheda, johnbillion, joemcgill, desrosj.
Fixes#62424.
Built from https://develop.svn.wordpress.org/trunk@59427
git-svn-id: http://core.svn.wordpress.org/trunk@58813 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The Learn WordPress website is supposed to automatically redirect to the correct locale according to the browser's language settings, however that may not work as expected in some cases.
This commit brings consistency with the other WordPress.org links, which can be localized as appropriate.
Follow-up to [56720].
Props timse201, ruturajraval2305, yogeshbhutkar, ajayghaghretiya-multidots, swissspidy, sabernhardt, im3dabasia1, mukesh27.
Fixes#62459.
Built from https://develop.svn.wordpress.org/trunk@59425
git-svn-id: http://core.svn.wordpress.org/trunk@58811 1a063a9b-81f0-0310-95a4-ce76da25c4cd
In [59138], the login screens were updated to change the `h1` heading from the logo to screen-reader hidden text. Along with that HTML change, we changed the CSS selectors from `.login h1` to `.login .wp-login-logo`. This unnecessary change increased specificity and broke the CSS selectors used by a wide variety of plugins to replace the login logo.
Commit reverts the change in selector back to using the `.login h1` pattern.
Props leecollings, sabernhardt, im3dabasia1, roytanck, sailpete, joedolson.
Fixes#62410.
Built from https://develop.svn.wordpress.org/trunk@59424
git-svn-id: http://core.svn.wordpress.org/trunk@58810 1a063a9b-81f0-0310-95a4-ce76da25c4cd
In the Modern color scheme, the font color on hover in the admin bar is bright green. However, in the WordPress.org site itself, the color used is Blueberry 2. This commits aligns both colors on the more balanced Blueberry color.
Props fushar, Joen.
Fixes#62219.
Built from https://develop.svn.wordpress.org/trunk@59419
git-svn-id: http://core.svn.wordpress.org/trunk@58805 1a063a9b-81f0-0310-95a4-ce76da25c4cd
An `$include_node_paths_only` option to `get_block_nodes()` was introduced to improve performance.
When set to `true`, this option tells the function to only return paths, and not selectors, for consumers that only needed paths to style values.
For one of the conditional blocks, block style variations wasn't included.
This commit adds them to the array of paths following the existing model `$node[]['path' => [], 'variations' => ['path' => []]]`.
Follow-up to [61858].
Props aaronrobertshaw, ramonopoly.
Fixes #62399.
Built from https://develop.svn.wordpress.org/trunk@59418
git-svn-id: http://core.svn.wordpress.org/trunk@58804 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Based on the user agent stylesheet rules outlined in https://html.spec.whatwg.org/multipage/rendering.html#img-contain-size, images that have `sizes=auto` while applying `width: auto` or `width: fit-content` would be constrained to only 300px width.
This changeset overrides said user agent stylesheet rule with a much larger constraint, to avoid the problem.
Additionally, it introduces a filter `wp_img_tag_add_auto_sizes` which can be used to opt out of the functionality, as an additional measure.
Props joemcgill, flixos90, dooperweb, SirLouen, azaozz, mukesh27, apermo.
Fixes#62413.
See #61847, #62345.
Built from https://develop.svn.wordpress.org/trunk@59415
git-svn-id: http://core.svn.wordpress.org/trunk@58801 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Support for uploading AVIF was added in [57524]. A new block of conditional logic was added determine which function should be used to create the new image file that resulted in these expensive functions being run twice.
This combines the two conditional logic to ensure the appropriate function is only run once regardless of format.
Props adamsilverstein, glynnquelch.
Fixes#62331.
Built from https://develop.svn.wordpress.org/trunk@59413
git-svn-id: http://core.svn.wordpress.org/trunk@58799 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Changeset [59399] fixed missing DOCTYPEs in normalized HTML output. It missed an edge case where public and system identifiers may contain double quotes, in which case they must be quoted with single quotes.
This commit addresses that issue and adds tests.
Follow-up to [59399].
Props jonsurrell, luisherranz, apermo.
Fixes#62396.
Built from https://develop.svn.wordpress.org/trunk@59410
git-svn-id: http://core.svn.wordpress.org/trunk@58796 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Adjust some CSS characteristics in the customizer accordions to avoid a slight horizontal scroll, allow the chevron icon to be part of the clickable control surface, and resolve a pre-existing padding issue allowing overflow on accordion headings.
Follow up to [59224].
Props laurelfulford, wildworks, domainsupport, sabernhardt, rcreators, desrosj, sainathpoojary.
Fixes#62313, #62335.
Built from https://develop.svn.wordpress.org/trunk@59409
git-svn-id: http://core.svn.wordpress.org/trunk@58795 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Includes:
* Wrapping long lines for better readability.
* Bringing some consistency to the placement of `href` and `aria-label` attributes.
* Adding missing `aria-label` attributes for Live Preview links.
Follow-up to [26726], [52020], [51083].
Props patelketan, sainathpoojary, SergeyBiryukov.
Fixes#62405.
Built from https://develop.svn.wordpress.org/trunk@59400
git-svn-id: http://core.svn.wordpress.org/trunk@58786 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Output DOCTYPE when calling `WP_HTML_Processor::serialize` on a full document that includes a DOCTYPE.
The DOCTYPE should be included in the serialized/normalized HTML output as it has an impact in how the document is handled, in particular whether the document should be handled in quirks or no-quirks mode.
This only affects the serialization of full parsers at this time because DOCTYPE tokens are currently ignored in all possible fragments. The omission of the DOCTYPE is subtle but can change the serialized document's quirks/no-quirks mode.
Props jonsurrell.
Fixes#62396.
Built from https://develop.svn.wordpress.org/trunk@59399
git-svn-id: http://core.svn.wordpress.org/trunk@58785 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Aligns on the behavior of the negation operator with directives to missing paths in client and in server.
With a directive like the following:
{{{
<div data-wp-bind--hidden="!state.missing.property">
This should be hidden by the <code>hidden</code> attribute.
</div>
}}}
Both server and client will return with this fix:
{{{
<div data-wp-bind--hidden="!state.missing.property" hidden="">
This should be hidden by the <code>hidden</code> attribute.
</div>
}}}
Props jonsurrell, luisherranz.
Fixes#62374.
Built from https://develop.svn.wordpress.org/trunk@59398
git-svn-id: http://core.svn.wordpress.org/trunk@58784 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This updates certain local Docker environment commands to include `--rm`, which instructs `docker compose` to remove the container after running the specified scripts.
Previously only the installation script contained `--rm`. But running `test:php`, `env:start`, or `env:cli` resulted in the container remaining.
Props johnbillion.
Fixes#62395.
Built from https://develop.svn.wordpress.org/trunk@59393
git-svn-id: http://core.svn.wordpress.org/trunk@58779 1a063a9b-81f0-0310-95a4-ce76da25c4cd
When the HTML Processor seeks to an earlier place, it returns the the beginning of the document and proceeds forward until it reaches the appropriate location. This requires resetting internal state so that the processor can correctly proceed from the beginning of the document.
The seeking reset logic was not adapted to account for the full processor (i.e. when created via `WP_HTML_Processor::create_full_parser()`). This change updates the seek logic to account for the full and fragment parsers as well as other state that has been introduced in the interim and should be reset.
Props jonsurrell, dmsnell, westonruter, mi5t4n.
Fixes#62290.
Built from https://develop.svn.wordpress.org/trunk@59391
git-svn-id: http://core.svn.wordpress.org/trunk@58777 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This change makes the border of the pull quote block visible in the editor when the user selects a border color or thickness,
by setting the default border style to solid.
Props nidhidhandhukiya, ugyensupport, dhruvang21, sabernhardt, divyeshk71, poena.
Fixes#62301.
Built from https://develop.svn.wordpress.org/trunk@59390
git-svn-id: http://core.svn.wordpress.org/trunk@58776 1a063a9b-81f0-0310-95a4-ce76da25c4cd
When uploading `wav` files in the editor, Chrome and other browsers identify the mime type of the file as `audio/wav`. Firefox, however, identifies the mime type as `audio/x-wav`.
This commit updates the `'wav'` mime type key in `wp_get_mime_types()` to support `x-wav` so that uploading wav files work in Firefox. Previously, the editor reported an unsupported mime type error.
Props imranh920, ramonopoly.
Fixes #61948.
Built from https://develop.svn.wordpress.org/trunk@59389
git-svn-id: http://core.svn.wordpress.org/trunk@58775 1a063a9b-81f0-0310-95a4-ce76da25c4cd
After the SimplePie library was updated to version `1.8.0` in [59141], an edge case has been discovered where a fatal error can encountered if the `blog_charset` option is missing or empty.
In `fetch_feed()`, this option is retrieved using `get_option()` instead of `get_bloginfo( ‘charset’ )`. The latter will detect this scenario and apply a default value of `UTF-8` and is already used interchangeably throughout Core. This switches to `get_bloginfo( ‘charset’ )` instead to prevent this edge case.
Props david.binda, davidbaumwald, SergeyBiryukov, sabernhardt, azaozz, peterwilsoncc.
Fixes#62354.
Built from https://develop.svn.wordpress.org/trunk@59382
git-svn-id: http://core.svn.wordpress.org/trunk@58768 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Removes the dimension suffix, eg `-1000x1000` from the file name of full size images automatically converted from HEIC to JPEGs by WordPress. Introduces unit tests for the default conversion of images and customized conversion settings via the `image_editor_output_format` filter.
Follow up to [58849], [58942], [59317], [59346], [59366]
Props mukesh27, peterwilsoncc, azaozz, apermo, flixos90, ironprogrammer.
Fixes#62359.
See #53645, #62305.
Built from https://develop.svn.wordpress.org/trunk@59379
git-svn-id: http://core.svn.wordpress.org/trunk@58765 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This removes a redundant `isset( $HTTP_RAW_POST_DATA )` from `xmlrpc.php`, as the variable is already set in the code block immediately preceding the affected line.
Follow-up to [3498], [5445], [47926].
Props justlevine.
See #52217.
Built from https://develop.svn.wordpress.org/trunk@59376
git-svn-id: http://core.svn.wordpress.org/trunk@58762 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This addresses an issue where a string (`$current`) is compared to an integer (`$last_saved`). The issue is resolved by casting the results of `preg_replace()` to type `int` when `$current` is defined.
Follow-up to [8784], [10083], [25109].
Props justlevine.
See #52217.
Built from https://develop.svn.wordpress.org/trunk@59373
git-svn-id: http://core.svn.wordpress.org/trunk@58759 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Currently, Dependabot is configured to open pull requests when updates to 3rd-party GitHub Actions become available.
It does a great job at this. Thank you very much, 🤖 Mr. Dependabot Roboto.
Some of the automated comments for pull requests are not relevant to PRs opened by Dependabot. Despite how good of a robot it is, Dependabot will never open a Trac ticket, so it's pointless to ask for one.
Also, since it’s currently only configured to watch GitHub Actions for updates, there will never be a need to test Dependabot PRs in Playground. If instructed to monitor npm dependencies in the future, this comment can be added back as those packages can directly affect the built software that is distributed.
Props johnbillion.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59370
git-svn-id: http://core.svn.wordpress.org/trunk@58756 1a063a9b-81f0-0310-95a4-ce76da25c4cd
In `WP_Theme_JSON::get_valid_block_style_variations()`, the method was calling `self::get_blocks_metadata()` even though the metadata was already retrieved in the parent function. This update reuses the existing block metadata instead of calling it again.
A new optional parameter, `$blocks_metadata`, has been added to the function, allowing it to use pre-fetched metadata when available, improving efficiency.
Fewer `self::get_blocks_metadata()` calls mean faster processing, especially in themes with many blocks.
Props mukesh27, ramonopoly, aaronrobertshaw, flixos90.
Fixes #62291.
Built from https://develop.svn.wordpress.org/trunk@59359
git-svn-id: http://core.svn.wordpress.org/trunk@58745 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This resolves an issue where the private property `WP_User_Query::$results` is accessed directly in `WP_REST_Users_Controller::get_items()` instead of via the `::get_results()` method.
Follow-up to [38832].
Props justlevine.
See #52217.
Built from https://develop.svn.wordpress.org/trunk@59357
git-svn-id: http://core.svn.wordpress.org/trunk@58743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This adds documentation for how to generate code coverage reports to the README.md file.
`test:coverage` has also been added as an npm script to make it easier to generate a report using the local Docker environment. The script will generate an HTML, PHP, and text report file.
Props pbearne, hellofromTonya, netweb.
Fixes#53414.
Built from https://develop.svn.wordpress.org/trunk@59356
git-svn-id: http://core.svn.wordpress.org/trunk@58742 1a063a9b-81f0-0310-95a4-ce76da25c4cd
[59287] updated the test coverage workflow to make use of the reusable PHPUnit workflow logic to prevent having duplicate code. The workflow should be run when the reusable file is updated to confirm any changes made work as expected.
See #62221.
Built from https://develop.svn.wordpress.org/trunk@59355
git-svn-id: http://core.svn.wordpress.org/trunk@58741 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This fixes an issue with the usage of the new `$wp_styles->get_etag()` method in `wp-admin/load-styles.php`, where `$wp_version` is passed as the first argument instead of `$load` being used as the ''only'' argument.
Follow-up to [58935].
Props justlevine, mukesh27, swissspidy.
See #52217, #61485.
Built from https://develop.svn.wordpress.org/trunk@59341
git-svn-id: http://core.svn.wordpress.org/trunk@58727 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit corrects several instances of `test_*()` methods potentially returning `void` instead of their documented return types.
Since these methods are public, `null` is used to represent a passed test for backward compatibility with the coercion of the previously-returned `void`. Previous usage of `false` is preserved.
Includes updating some `@return` tags for clarity.
Follow-up to [44986], [46276], [49927].
Props justlevine, apermo, SergeyBiryukov.
See #52217.
Built from https://develop.svn.wordpress.org/trunk@59340
git-svn-id: http://core.svn.wordpress.org/trunk@58726 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit affects `WP_Theme_JSON_Resolver::resolve_theme_file_uris()`.
When setting resolved URIs in an incoming theme json object, this commit removes the unnecessary call to `WP_Theme_JSON->merge()`.
Why? `WP_Theme_JSON_Resolver::resolve_theme_file_uris()` only needs to set values for paths in the raw theme json object. It can then return a new theme object based on the updated JSON source. There's no need for a full and possibly expensive merge.
Follow-up to [61588].
Props ramonopoly, aaronrobertshaw, andrewserong.
Fixes #62329.
Built from https://develop.svn.wordpress.org/trunk@59338
git-svn-id: http://core.svn.wordpress.org/trunk@58724 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit fixes an issue where some magic `__isset()` methods were potentially returning `void` (if the prop is not in an allow-listed array of fields) instead of an explicit boolean `false`.
Addressed methods:
* `WP_Comment::__isset()`
* `WP_Query::__isset()`
Follow-up to [28523], [31151], [34583], [34599].
Props justlevine.
See #52217.
Built from https://develop.svn.wordpress.org/trunk@59337
git-svn-id: http://core.svn.wordpress.org/trunk@58723 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit adds missing `void` return types to (parent) methods that can ''explicitly'' return `void` as one of their conditional paths.
Addressed methods:
* `WP_Privacy_Requests_Table::column_status()`
* `WP_Recovery_Mode::handle_error()`
* `WP_Widget::form()` — unlike the others, it's the ''child'' classes that return `void` when the method is correctly implemented.
Note: `@return void` (where `void` is the single type returned) should not be used outside the default bundled themes and the PHP compatibility shims included in WordPress Core, as per the [https://developer.wordpress.org/coding-standards/inline-documentation-standards/php/ documentation standards].
Follow-up to [30382], [42967], [43256], [44973], [45448].
Props justlevine.
See #52217, #62281.
Built from https://develop.svn.wordpress.org/trunk@59336
git-svn-id: http://core.svn.wordpress.org/trunk@58722 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit fixes an omission in the logic of `WP_Theme_JSON::merge()` where top-level background image style objects are not replaced, rather they are merged. Because background images are self contained objects, their properties are unique and should not be merged. Blocks are already catered for via `WP_Theme_JSON::get_block_nodes()`.
Follow-up to [61858].
Props ramonopoly, andrewserong.
Fixes #62328.
Built from https://develop.svn.wordpress.org/trunk@59335
git-svn-id: http://core.svn.wordpress.org/trunk@58721 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Reverts an earlier change to the test suite in which the PHPUnit tests could not run if the importer plugin was not available.
This update allows the test suite to run and will fail importer tests if the plugin is not available.
Follow up to r59085.
Props peterwilsoncc, azaozz.
See #62325.
Built from https://develop.svn.wordpress.org/trunk@59326
git-svn-id: http://core.svn.wordpress.org/trunk@58712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The previous approach of running `wp_allow_comment()` twice could have unintended consequences, e.g. the `check_comment_flood` action was also triggered twice, which might lead to false-positive identification of comment flood in case there is some custom callback hooked to it, which is not expecting identical data seeing twice.
This commit introduces a new function, `wp_check_comment_data()`, to specifically check for disallowed content before and after comment data is filtered.
Follow-up to [59267].
Props david.binda, SergeyBiryukov.
See #61827.
Built from https://develop.svn.wordpress.org/trunk@59319
git-svn-id: http://core.svn.wordpress.org/trunk@58705 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit fixes a regression whereby requests to global styles endpoints were not being preloaded, resulting in several requests being fired clientside unnecessarily.
For performance reasons, we preload the requests so that the data is in the editor store and ready to use straight away.
The outcome is that the editor loads more quickly.
Follow-up to [62042].
Props ellatrix, ramonopoly, apermo, peterwilsoncc.
Fixes #62315.
Built from https://develop.svn.wordpress.org/trunk@59316
git-svn-id: http://core.svn.wordpress.org/trunk@58702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This resolves a "passing null to non-nullable" deprecation notice on PHP 8.1+:
{{{
Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated
}}}
Follow-up to [50129], [54477].
Props afragen, peterwilsoncc, SergeyBiryukov.
Fixes#62298.
Built from https://develop.svn.wordpress.org/trunk@59312
git-svn-id: http://core.svn.wordpress.org/trunk@58698 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Fixes a typo in the a11y helper text explaining how to navigate revisions. "Change revision by using the left and arrow keys" becomes "Change revision by using the left and right arrow keys".
Follow up to [59225].
Props pedromendonca, sabernhardt, fierevere, swissspidy.
Fixes#62306.
Built from https://develop.svn.wordpress.org/trunk@59306
git-svn-id: http://core.svn.wordpress.org/trunk@58692 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The previous domain that was used to test for a host whose IPv4 address cannot be resolved, `exampleeeee.com`, got registered and has an A-record now, so it's not invalid anymore.
`.invalid` is intended for use in online construction of domain names that are sure to be invalid and which it is obvious at a glance are invalid.
Reference: [https://datatracker.ietf.org/doc/html/rfc2606#section-2 Reserved Top Level DNS Names: TLDs for Testing, & Documentation Examples].
Follow-up to [52084], [58384], [58388].
Props sippis, johnbillion, MattyRob, swissspidy.
Fixes#62303.
Built from https://develop.svn.wordpress.org/trunk@59293
git-svn-id: http://core.svn.wordpress.org/trunk@58685 1a063a9b-81f0-0310-95a4-ce76da25c4cd