Commit Graph

37407 Commits

Author SHA1 Message Date
noisysocks ef2b22c001 Editor: Add plugin template registration API and improve theme overrides for plugin-registered templates
This commit introduces a new API to allow plugins to easily register block
templates with `wp_register_block_template()` and the
`WP_Block_Templates_Registry` class, addressing the complexity of hooking into
multiple filters. It also ensures plugin-registered templates overridden by
themes fall back to the plugin-provided title and description when the theme
doesn't define them.

See https://github.com/WordPress/gutenberg/pull/61577.
See https://github.com/WordPress/gutenberg/pull/64610.

Fixes #61804.
Props aljullu, peterwilsoncc, antonvlasenko, azaozz, youknowriad, noisysocks.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58469 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-20 02:07:12 +00:00
noisysocks f6df3fba16 Editor: Update packages for 6.7 Beta 1.
Syncs `@wordpress/*` packages to the `wp-6.7` npm tag.

Fixes #61906.
Props peterwilsoncc, gziolo, kevin940726.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58468 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-20 01:55:35 +00:00
Peter Wilson 2086230339 External Libraries: Test registered script versions match package.json.
Expands tests to ensure the version number of packages updated via NPM matches the version number used for registering the script in the script loader.

This adds tests for (by their registered name in WordPress):

* backbone
* clipboard
* hoverIntent
* hoverintent-js
* imagesloaded
* jquery-color
* jquery-core
* jquery-form
* masonry
* react-jsx-runtime
* underscore
* wp-polyfill-dom-rect
* wp-polyfill-element-closest
* wp-polyfill-fetch
* wp-polyfill-formdata
* wp-polyfill-inert
* wp-polyfill-node-contains
* wp-polyfill-object-fit
* wp-polyfill-url


This expands on the earlier tests introduced for:

* lodash
* moment
* react
* react-dom
* regenerator-runtime

An additional test is added to ensure that the data provider for these tests is maintained as libraries are added via package.json.

`@wordpress/*` scripts are excluded from these tests as wp-scripts generates a version number automatically based on the file's contents.

Additionally, the version of element-closest listed in package.json is updated to use a fixed version rather than a range. This reflects the current practice of WordPress to define the specific version in core. For the avoidance of doubt, this does not affect the version shipped in WordPress.

Follow up to [57185].

Props peterwilsoncc, jorbin.
Fixes #61855.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58467 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-20 00:52:20 +00:00
hellofromTonya 4ab4b38ecd External Libraries: Skip instanceof check when null in Text_Diff::_check().
On the first `foreach` loop in Text_Diff::_check()`, `$prevtype` is `null`. As `instanceof` requires the class name term to be an object or string, a fatal error is thrown:

>Fatal error: Uncaught Error: Class name must be a valid object or a string on line 279

This change:
* Adds a simple test for the `Text_Diff::_check()` method, which is how the bug was discovered as the test could never pass with the code as-is.

* Adds a defensive guard to protect against the fatal. It checks if `$prevtype` is not `null` as a pre-condition to for checking the instance. This bugfix also resolves the failing test.

Follow-up to [49194], [7747].

Props jrf, hellofromTonya.
See #62083.
Built from https://develop.svn.wordpress.org/trunk@59070


git-svn-id: http://core.svn.wordpress.org/trunk@58466 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-19 20:22:15 +00:00
hellofromTonya b58cc4d2b0 Code Modernization: handle mysqli_ping() deprecation in wpdb::check_connection().
The `mysqli_ping()` function is deprecated as of PHP 8.4, though, in reality, the function wasn't working according to spec anymore since PHP 8.2 when the `libmysql` driver was dropped in favour of `libmysqlnd`, which was already the default (and recommended) driver since PHP 5.4.

The `mysqli_ping()` method was also not really correctly named as its functionality was to reconnect to the database, not just ping.

The alternative is to "manually" ping the database by sending a `DO 1` query (the cheapest possible SQL query).

Adding a PHP version based toggle was considered, but as mentioned above, the default driver has been `libmysqlnd` since PHP 5.4 and in that case, the function never worked anyway, so in reality `mysqli_ping()` was only really functional for the odd custom PHP compilation where `mysqli` was build against `libmysql` AND `reconnect` was not disabled.

With this in mind, this change replaces the call to `mysqli_ping()` with the `DO 1` query completely. If that query succeeds, it concludes the database connection is still alive. This solution should be the most stable as it will work for both PHP 7.2 <= 8.1, independently of which driver `mysqli` was compiled with, as well as for PHP 8.2+.

Note: It could also be considered to remove the function call to `mysqli_ping()` completely and rely on standard error handling in case the connection would have dropped, as after all, the fact that the connection existed at the moment the "ping" happened, is no guarantee that the connection will still exist when the next query is send.... this approach was not chosen so as WP has custom error handling and does not use the PHP native mysqli exceptions for this, which would make implementing this more awkward.

Includes a test to verify that the connection check works when there is a valid connection (this was previously not covered by tests).

Refs:
* https://wiki.php.net/rfc/deprecations_php_8_4#mysqli_ping_and_mysqliping
* https://github.com/php/php-src/pull/11912#issuecomment-1671762583
* https://stackoverflow.com/questions/2546868/cheapest-way-to-determine-if-a-mysql-connection-is-still-alive/2546922#2546922
* php/php-src#11945
* https://wiki.php.net/rfc/mysqli_support_for_libmysql
* https://www.php.net/mysqli_ping

Follow-up to [56475], [27250], [27075].

Props jrf, hellofromTonya.
See #62061.
Built from https://develop.svn.wordpress.org/trunk@59069


git-svn-id: http://core.svn.wordpress.org/trunk@58465 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-19 18:56:16 +00:00
hellofromTonya 854e55b852 Tests: Remove use of E_STRICT.
The `E_STRICT` constant is deprecated as of PHP 8.4 and will be removed in PHP 9.0.

The error level hasn't been in use since PHP 8.0 anyway, so removing the exclusion from the `error_reporting()` setting in the `install.php` script used in the tests should make no difference in practice.

Ref:
* https://wiki.php.net/rfc/deprecations_php_8_4#remove_e_strict_error_level_and_deprecate_e_strict_constant

Follow-up to [25002].

Props jrf.
See #62061.
Built from https://develop.svn.wordpress.org/trunk@59068


git-svn-id: http://core.svn.wordpress.org/trunk@58464 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-19 18:14:14 +00:00
Sergey Biryukov 4b9dc0d225 Coding Standards: Update PHPCS to version 3.10.3.
PHPCS has seen several new releases since the last update, which means more bugs have been fixed, syntax support for PHP 8.3 was added, more sniff documentation is available, performance improvements, a new Help screen, etc.

References:
* [https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/tag/3.10.3 PHP_CodeSniffer 3.10.3 release notes]
* [https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/tag/3.10.2 PHP_CodeSniffer 3.10.2 release notes]
* [https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/tag/3.10.1 PHP_CodeSniffer 3.10.1 release notes]
* [https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/tag/3.10.0 PHP_CodeSniffer 3.10.0 release notes]
* [https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/tag/3.9.2 PHP_CodeSniffer 3.9.2 release notes]
* [https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/tag/3.9.1 PHP_CodeSniffer 3.9.1 release notes]

Follow-up to [56695], [56799], [57378], [57986].

Props jrf.
Fixes #62076.
Built from https://develop.svn.wordpress.org/trunk@59067


git-svn-id: http://core.svn.wordpress.org/trunk@58463 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-19 12:40:14 +00:00
Sergey Biryukov 345ff42a6a Coding Standards: Remove unused return value for `WP_Object_Cache::__set()`.
This resolves a WPCS warning:
{{{
Assignments must be the first block of code on a line
}}}

Note: This is enforced by PHPCS 3.10.3.

Follow-up to [28521], [29146].

Props jrf.
See #62076, #61607.
Built from https://develop.svn.wordpress.org/trunk@59066


git-svn-id: http://core.svn.wordpress.org/trunk@58462 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-19 12:12:16 +00:00
poena ec7041f1c2 Bundled Themes: Make text strings translatable.
This changeset updates Twenty Twenty-Three and Twenty Twenty-Four and replaces text strings in HTML files with patterns to make the strings translatable.

Follow-up to [58459].

Props sabernhardt, karmatosed, iflairwebtechnologies, poena.
Fixes #61951.
Built from https://develop.svn.wordpress.org/trunk@59065


git-svn-id: http://core.svn.wordpress.org/trunk@58461 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-19 10:34:13 +00:00
Peter Wilson 2cc6bb80ef Date/Time, PHP Compat: Prevent type errors using GMT offset option.
Prevents a potential type errors when making use of the `gmt_offset` option by casting the value to a float prior to performing calculations with the value.

This mainly accounts for incorrect storage of values, such as an empty string or city name.

Follow up to [58923].

Props chaion07, hellofromtonya, kirasong, mhshohel, mukesh27, nicolefurlan, nihar007, nurielmeni, oglekler, peterwilsoncc, prionkor, rajinsharwar, rarst, rleeson, sabernhardt, SergeyBiryukov, swissspidy, toastercookie, verygoode.
Fixes #56358, #58986, #60629.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58460 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 22:37:15 +00:00
hellofromTonya abe6e87596 Code Modernization: Remove xml_set_object() in MagpieRSS::__construct().
The XML Parser extension still supports a quite dated mechanism for method based callbacks, where the object is first set via `xml_set_object()` and the callbacks are then set by passing only the name of the method to the relevant parameters on any of the `xml_set_*_handler()` functions.

{{{
xml_set_object( $parser, $my_obj );
xml_set_character_data_handler( $parser, 'method_name_on_my_obj' );
}}}

Passing proper callables to the `xml_set_*_handler()` functions has been supported for the longest time and is cross-version compatible. So the above code is 100% equivalent to:

{{{
xml_set_character_data_handler( $parser, [$my_obj, 'method_name_on_my_obj'] );
}}}

The mechanism of setting the callbacks with `xml_set_object()` has now been deprecated as of PHP 8.4, in favour of passing proper callables to the `xml_set_*_handler()` functions. This is also means that calling the `xml_set_object()` function is deprecated as well.

This commit fixes this deprecation for the `MagpieRSS::__construct()` method.

The change has not been not covered by tests. This class has been deprecated since WP 3.0.0 and is not covered by tests at all. Adding those now seems superfluous, all the more as the principle of the fix is no different than for the other files, so we can be sure it works anyway.

Note: Though this is "officially" an external library, this package is no longer externally maintained. The code style of the fix in the source file is in line with the existing code style for the file.

Refs:
* https://wiki.php.net/rfc/deprecations_php_8_4#xml_set_object_and_xml_set_handler_with_string_method_names
* https://www.php.net/manual/en/function.xml-set-object.php
* https://www.php.net/manual/en/ref.xml.php

Follow-up to [4399].

Props jrf.
See #62061.
Built from https://develop.svn.wordpress.org/trunk@59063


git-svn-id: http://core.svn.wordpress.org/trunk@58459 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 21:40:12 +00:00
hellofromTonya 7b0af151b6 Code Modernization: Remove xml_set_object() in AtomParser::parse().
The XML Parser extension still supports a quite dated mechanism for method based callbacks, where the object is first set via `xml_set_object()` and the callbacks are then set by passing only the name of the method to the relevant parameters on any of the `xml_set_*_handler()` functions.

{{{
xml_set_object( $parser, $my_obj );
xml_set_character_data_handler( $parser, 'method_name_on_my_obj' );
}}}

Passing proper callables to the `xml_set_*_handler()` functions has been supported for the longest time and is cross-version compatible. So the above code is 100% equivalent to:

{{{
xml_set_character_data_handler( $parser, [$my_obj, 'method_name_on_my_obj'] );
}}}

The mechanism of setting the callbacks with `xml_set_object()` has now been deprecated as of PHP 8.4, in favour of passing proper callables to the `xml_set_*_handler()` functions. This is also means that calling the `xml_set_object()` function is deprecated as well.

This commit fixes this deprecation for the `AtomParser::parse()` method.

This change is safeguarded via the new `AtomParser_Parse_Test` class.

Notes:
* Though this is "officially" an external library, this package is no longer externally maintained. The code style of the fix in the source file is in line with the existing code style for the file.
* It appears that this class is not actually used by WP Core itself, so it could be considered to deprecate the class. However, as the class is not currently deprecated, safeguarding the change with a test seemed prudent.
* The fixture used for the test reuses a fixture from the original package: https://code.google.com/archive/p/phpatomlib/source/default/source
* The new test class follows the recommended test format (naming convention of the class, `@covers` tag at class level, only testing one method) as per Trac tickets 62004 / 53010.

Refs:
* https://wiki.php.net/rfc/deprecations_php_8_4#xml_set_object_and_xml_set_handler_with_string_method_names
* https://www.php.net/manual/en/function.xml-set-object.php
* https://www.php.net/manual/en/ref.xml.php

Follow-up to [5951].

Props jrf.
See #62061.
Built from https://develop.svn.wordpress.org/trunk@59062


git-svn-id: http://core.svn.wordpress.org/trunk@58458 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 21:20:15 +00:00
hellofromTonya ef383d7a78 Tests: Use file paths independent of OS-specifics assertion or helper.
Use `WP_UnitTestCase_Base::assertSamePathIgnoringDirectorySeparators()` and `WP_UnitTestCase_Base::normalizeDirectorySeparatorsInPath()` in existing tests.

Follow-up to [59057], [57753], [57215], [56635], [48937], [25002].

Props jrf.
See #61530.
Built from https://develop.svn.wordpress.org/trunk@59061


git-svn-id: http://core.svn.wordpress.org/trunk@58457 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 21:06:15 +00:00
dmsnell e7040022b8 WP_Debug_Data: Extract `wp-media` data into separate method.
This is the sixth part in a larger modularization of the data in `WP_Debug_Data`. Previously this was a single massive method drawing in debug data from various groups of related data, where the groups were independent from each other.

This patch separates the sixth of twelve groups, the `wp-media` info, into a separate method focused on that data.

This work precedes changes to make the `WP_Debug_Data` class more extensible for better use by plugin and theme code.

Developed in https://github.com/wordpress/wordpress-develop/pull/7356
Discussed in https://core.trac.wordpress.org/ticket/61648

Props apermo, dmsnell.
See #61648.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 19:12:06 +00:00
Drew Jaynes adf9b988e2 Docs: The `$feedname` parameter in `add_feed()` should not start with an underscore.
Props snehapatil02, hellofromtonya, narenin.
Fixes #59945.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58455 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 19:08:11 +00:00
hellofromTonya 25b40364d6 Code Modernization: Explicitly declare all properties in AtomParser.
Dynamic (non-explicitly declared) properties are deprecated as of PHP 8.2 and are expected to become a fatal error in PHP 9.0.

There are a number of ways to mitigate this:
* If it's an accidental typo for a declared property: fix the typo.
* For known properties: declare them on the class.
* For unknown properties: add the magic `__get()`, `__set()` et al methods to the class or let the class extend `stdClass` which has highly optimized versions of these magic methods build in.
* For unknown _use of_ dynamic properties, the `#[AllowDynamicProperties]` attribute can be added to the class. The attribute will automatically be inherited by child classes.

In this case, the property added are explicitly referenced in this class, so fall in the "known property" category.

Refs:
* https://wiki.php.net/rfc/deprecate_dynamic_properties

Props jrf.
See #56034.
Built from https://develop.svn.wordpress.org/trunk@59058


git-svn-id: http://core.svn.wordpress.org/trunk@58454 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 18:46:15 +00:00
hellofromTonya dce18de151 Tests: Introduce assertion for comparing file paths independent of OS-specifics.
Introduces `WP_UnitTestCase_Base::assertSamePathIgnoringDirectorySeparators()` and an associated helper method `WP_UnitTestCase_Base::normalizeDirectorySeparatorsInPath()` to allow for comparing two file path strings independently of OS-specific differences.

The normalization is done in a separate method to also allow this method to be used for path normalization within test methods themselves, like for normalizing a group of paths in an array.

The pretty specific method name for the helper (`normalizeDirectorySeparatorsInPath()`) is an attempt to prevent naming conflicts with methods which may exist in plugin test suites build on top of the WP Core test suite.

Props jrf, hellofromTonya.
See #61530.
Built from https://develop.svn.wordpress.org/trunk@59057


git-svn-id: http://core.svn.wordpress.org/trunk@58453 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 18:22:15 +00:00
hellofromTonya 2fa3d5a56f Code Modernization: Remove xml_set_object() in IXR_Message::parse().
The XML Parser extension still supports a quite dated mechanism for method based callbacks, where the object is first set via `xml_set_object()` and the callbacks are then set by passing only the name of the method to the relevant parameters on any of the `xml_set_*_handler()` functions.

{{{
xml_set_object( $parser, $my_obj );
xml_set_character_data_handler( $parser, 'method_name_on_my_obj' );
}}}

Passing proper callables to the `xml_set_*_handler()` functions has been supported for the longest time and is cross-version compatible. So the above code is 100% equivalent to:

{{{
xml_set_character_data_handler( $parser, [$my_obj, 'method_name_on_my_obj'] );
}}}

The mechanism of setting the callbacks with `xml_set_object()` has now been deprecated as of PHP 8.4, in favour of passing proper callables to the `xml_set_*_handler()` functions. This is also means that calling the `xml_set_object()` function is deprecated as well.

This commit fixes this deprecation for the `IXR_Message::parse()` method.

This change is safeguarded via the new`Tests_XMLRPC_Message::test_parse_sets_handlers()` test method.

Note: Though this is "officially" an external library, this package is no longer externally maintained. The code style of the fix in the source file is in line with the existing code style for the file.

Refs:
* https://wiki.php.net/rfc/deprecations_php_8_4#xml_set_object_and_xml_set_handler_with_string_method_names
* https://www.php.net/manual/en/function.xml-set-object.php
* https://www.php.net/manual/en/ref.xml.php

Follow-up to [15612], [1346].

Props jrf, hellofromTonya.
See #62061.
Built from https://develop.svn.wordpress.org/trunk@59056


git-svn-id: http://core.svn.wordpress.org/trunk@58452 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 18:04:14 +00:00
hellofromTonya 9846d9ce8e Tests: Remove use of xml_set_object() in TestXMLParser.
The XML Parser extension still supports a quite dated mechanism for method based callbacks, where the object is first set via `xml_set_object()` and the callbacks are then set by passing only the name of the method to the relevant parameters on any of the `xml_set_*_handler()` functions.

{{{
xml_set_object( $parser, $my_obj );
xml_set_character_data_handler( $parser, 'method_name_on_my_obj' );
}}}

Passing proper callables to the `xml_set_*_handler()` functions has been supported for the longest time and is cross-version compatible. So the above code is 100% equivalent to:

{{{
xml_set_character_data_handler( $parser, [$my_obj, 'method_name_on_my_obj'] );
}}}

The mechanism of setting the callbacks with `xml_set_object()` has now been deprecated as of PHP 8.4, in favour of passing proper callables to the `xml_set_*_handler()` functions. This is also means that calling the `xml_set_object()` function is deprecated as well.

This commit fixes this deprecation for the `TestXMLParser` helper utility. In this case, the callbacks were already using the recommended format and the call to `xml_set_object()` was completely redundant.

As this is a test utility and was already causing pre-existing tests using the utility to fail, there is no need for dedicated tests to cover this change.

Refs:
* https://wiki.php.net/rfc/deprecations_php_8_4#xml_set_object_and_xml_set_handler_with_string_method_names
* https://www.php.net/manual/en/function.xml-set-object.php
* https://www.php.net/manual/en/ref.xml.php

Follow-up to [25002].

Props jrf.
See #62061.
Built from https://develop.svn.wordpress.org/trunk@59055


git-svn-id: http://core.svn.wordpress.org/trunk@58451 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 17:26:16 +00:00
hellofromTonya 71996c82e7 Tests: Fix Tests_Theme tests to run (and pass) cross-OS.
Uses `DIRECTORY_SEPARATOR` in closures for cross-OS differences.

Follow-up to [56635].

Props jrf.
See #61530.
Built from https://develop.svn.wordpress.org/trunk@59054


git-svn-id: http://core.svn.wordpress.org/trunk@58450 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 16:18:15 +00:00
hellofromTonya 37e081e8dc Code Modernization: Fix implicitly nullable parameter in WP_HTML_Processor.
PHP 8.4 deprecates implicitly nullable parameters, i.e. typed parameters with a `null` default value, which are not explicitly declared as nullable.

This commit the one instance of this in the `WP_HTML_Processor` class.

Fixed by adding the nullability operator to the type, which is supported since PHP 7.1, so we can use it now the minimum supported PHP version is PHP 7.2.

As this deprecation is thrown at compile time, it can be seen at the top of the test output when running on PHP 8.4 (which will be gone once this change has been committed). It is not possible to write a test to cover this.

Ref: https://wiki.php.net/rfc/deprecate-implicitly-nullable-types

Follow-up to [58867], [58769], [58304], [58192].

Props jrf.
See #62061.
Built from https://develop.svn.wordpress.org/trunk@59053


git-svn-id: http://core.svn.wordpress.org/trunk@58449 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 15:04:14 +00:00
hellofromTonya 800e34d2e4 Tests: Fix implicitly nullable parameters in Tests_HtmlApi_WpHtmlProcessorComments.
PHP 8.4 deprecates implicitly nullable parameters, i.e. typed parameters with a `null` default value, which are not explicitly declared as nullable.

The `Tests_HtmlApi_WpHtmlProcessorComments` test class contains one problematic parameter in the `test_comment_processing()` method declaration.

While this could be fixed by adding the nullability operator, the type declarations in the test method is removed instead, including other type declarations for this method and the second test method, which were not affected by the deprecation.

The reason for this is quite straight-forward: using type declarations in tests is bad practice and inhibits defense-in-depth type testing.

Using type declarations in tests prevents being able to test the "code under test" with unexpected input types as the values with unexpected (scalar) types will be juggled to the expected type between the data provider and the test method and the _real_ data value would therefore never reach the method under test.

The knock-on effects of this are:
* That the input handling of the "code under test" can not be safeguarded, whether this input handling is done via in-function type checking or via a type declaration in the "code under test".
* That if such "unexpected data type" tests are added to the data provider, they will silently pass (due to the type being juggled before reaching the "code under test"), giving a false sense of security, while in actual fact, these data sets would not be testing anything at all and if, for instance, the type declaration in the "code under test" would be removed, these tests would still pass, while by rights they should start failing.

Also note that this problem would only be exacerbated if the file would be put under `strict_types`.

Ref: https://wiki.php.net/rfc/deprecate-implicitly-nullable-types

Follow-up to [58734].

Props jrf.
See #62061.
Built from https://develop.svn.wordpress.org/trunk@59052


git-svn-id: http://core.svn.wordpress.org/trunk@58448 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 14:55:15 +00:00
Sergey Biryukov 11a4dc8aba Script Loader: Restore `user-profile.js` dependencies after an accidental revert.
Follow-up to [59033], [59046], [59047].

Props TobiasBg.
See #61754.
Built from https://develop.svn.wordpress.org/trunk@59051


git-svn-id: http://core.svn.wordpress.org/trunk@58447 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 14:24:17 +00:00
Drew Jaynes dbc9df26db Docs: Add missing @since and @param annotations for the `edit_post_{$field}` hook doc.
Props mukesh27
See #50654

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


git-svn-id: http://core.svn.wordpress.org/trunk@58446 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 06:04:10 +00:00
desrosj b863c8320c Build/Test Tools: Submit host test results for each PHP version.
The WordPress Hosting Test Results now supports multiple reports for the same commit from the same test bot. This updates the PHPUnit test workflow to submit results for each version of PHP running the tests.

Props swissspidy, jorbin, crixu, kirasong, desrosj.
See #61564.
Built from https://develop.svn.wordpress.org/trunk@59049


git-svn-id: http://core.svn.wordpress.org/trunk@58445 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 05:44:12 +00:00
ramonopoly 840f0fc053 Global Styles: allow read access to users with `edit_posts` capabilities
This patch any role that can edit a post, including custom post types, or edit theme options to read global styles from the API. This enables read-only access to global styles in the post editor. Test coverage in included.

Props ramonopoly, peterwilsoncc, mukesh27, aaronrobertshaw, mamaduka, spacedmonkey, talldanwp, timothyblynjacobs.
Fixes #62042.



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


git-svn-id: http://core.svn.wordpress.org/trunk@58444 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 05:19:14 +00:00
davidbaumwald 0ec15861c7 Script Loader: Revert removing unused array_merge.
Code is poetry, until it isn’t.

Unprops davidbaumwald.
See #61754.
Built from https://develop.svn.wordpress.org/trunk@59047


git-svn-id: http://core.svn.wordpress.org/trunk@58443 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 00:48:14 +00:00
Jeremy Felt 3c85d540d4 Application Passwords: Add copy button when adding new password.
Props circlecube, dhruvang21, ironprogrammer, desrosj.
Fixes #62019.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58442 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 00:14:13 +00:00
Drew Jaynes c9c2f41ab4 Docs: Add possible filter names to the hook docs for the following filters in `sanitize_post_field()`:
- `edit_{$field}`
- `{$field_no_prefix}_edit_pre`
- `edit_post_{$field}`
- `pre_{$field}`
- `{$field_no_prefix}_save_pre`
- `pre_post_{$field}`
- `{$field}_pre`
- `{$field}`
- `post_{$field}`

Props johnbillion, DrewAPicture.
Fixes #50654

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


git-svn-id: http://core.svn.wordpress.org/trunk@58441 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-18 00:02:13 +00:00
Aaron Jorbin 2597c1b946 Bootstrap/Load: Add documentation warning about updating `$table_prefix`.
Props bjerke-johannessen, swissspidy, SergeyBiryukov, morganestes, stevenlinx, jorbin.
Fixes #34189.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58440 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 23:58:13 +00:00
Helen Hou-Sandí d5206419d7 Bootstrap/Load: Give more context and warning about editing compat.php.
As indicated by name, this is a compatibility file which warrants more care to begin with, but it's still worth warning folks about how narrow function availability is in this file.

Props jorbin, dmsnell, helen.
See #61694.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58439 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 23:50:12 +00:00
Adam Silverstein d10887c93d Media: improve speed of AVIF image generation.
Set the AVIF encoder to work faster by raising heic:speed to 7 from the default of 5. AVIF generation time is reduced by up to 20% with minimal impact on image size.

Props: adamsilverstein, erikyo, mukesh27, yguyon, felixarntz, jzern.
Fixes #61758.



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


git-svn-id: http://core.svn.wordpress.org/trunk@58438 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 23:29:29 +00:00
joedolson 549f626d96 Accessibility: Add border around menus and submenus in high contrast mode.
Add outlines and borders to mark the boundaries between the admin navigation menu and content and around adminbar submenus that are visible when Windows High Contrast Mode is enabled. This clarifies the page structure and makes high contrast mode easier to use.

Props wildworks, hbhalodia, sabernhardt, joedolson, rcreators.
Fixes #61616.
Built from https://develop.svn.wordpress.org/trunk@59041


git-svn-id: http://core.svn.wordpress.org/trunk@58437 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 23:28:15 +00:00
K. Adam White 24a4ba8885 REST API: Allow posts to be published with a publication date of midnight 1970-01-01.
Explicitly checks date parsing return values for `false`, so that `0` (the value returned for the UNIX epoch of `1970-01-01 00:00:00`) is correctly treated as a valid timestamp.

It should be valid to create a post dated to any point in history.

Props emmanuel78, sabernhardt, siliconforks, drjosh07, antpb, TimothyBlynJacobs.
Fixes #60184.



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


git-svn-id: http://core.svn.wordpress.org/trunk@58436 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 23:24:12 +00:00
Aaron Jorbin 723d01e3e1 Bootstrap/Load: Ensure uses of set_time_limit are documented why.
`set_time_limit` can cause unexpected behavior so it general should be avoided. There are instances though where they should be used so those instances should be properly documented.

Props Rcrayno, ryan, kurtpayne, jorbin.
Fixes #21521. See #19487.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58435 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 22:41:13 +00:00
TimothyBlynJacobs d598d459ac Build Tools: Allow easier customization of the .env file.
The .env file allows for configuring how the WordPress Local environment should be configured. However, because the file is version controlled, developers must be careful not to commit their modifications.

This commit renames the .env file to be .env.example. During env start, the .env.example file is copied to .env if it does not exist. This allows for contributors to continue using the project without thinking about .env and to make changes when needed. This brings WordPress Core into the dotenv project guidelines.

Props johnbillion, afragen, h71, desrosj.
Fixes #52668.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58434 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 22:28:18 +00:00
antpb f92af0238e Coding Standards: Avoid using confusing `!` condition in Media Library selection check.
Checks that value is now equal or less than or equal to 0 which has the same result as the previous confusing `!` usage.

Props kadamwhite, drjosh07.
See #60369.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58433 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 22:26:17 +00:00
K. Adam White c418ba0205 REST API: Only check password value in query parameters while checking post permissions.
The `password` property which gets sent as part of a request POST body while setting a post's password should not be checked when calculating post visibility permissions.

That value in the request body is intended to update the post, not to authenticate, and may be malformed or an invalid non-string type which would cause a fatal when checking against the hashed post password value.

Query parameter `?password=` values are the correct interface to check, and are also guaranteed to be strings.

Props mlf20, devansh016, antonvlasenko, TimothyBlynJacobs, kadamwhite.
Fixes #61837.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58432 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 22:19:14 +00:00
antpb 2bc0e28dfe Media: Add Ctrl/Command + Enter shortcut to insert selected Media Library items.
Adds a Ctrl/Command + Enter keyboard shortcut to insert the currently selected single media or multiple media items when selecting in the Media Library modal.

Props poena, hirschferkel, antpb, joedolson, skobe, rcreators, plaidharper.
Fixes #60369.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58431 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 21:59:24 +00:00
Felix Arntz 1da67e31b5 REST API: Support exact search in the REST API posts endpoint.
This changeset adds support for a new `search_semantics` enum query parameter that can be passed alongside the `search` string parameter. At this point, it only supports "exact" as possible value, but an enum is used for forward compatibility with potential enhancements like "sentence" search support. If `search_semantics=exact` is passed, it will look for an exact match rather than do a full text search, which for some use-cases is more appropriate and more performant.

Props mehulkaklotar, timothyblynjacobs, jimmyh61, ironprogrammer, johnregan3, mukesh27, costdev.
Fixes #56350.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58430 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 21:58:14 +00:00
davidbaumwald 90d4f10e74 Script Loader: Remove unused array_merge.
This change removes an unused `array_merge` that was added in [44265].

Props kkmuffme, SergeyBiryukov, akshat2802.
Fixes #61754.
Built from https://develop.svn.wordpress.org/trunk@59033


git-svn-id: http://core.svn.wordpress.org/trunk@58429 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 21:54:13 +00:00
TimothyBlynJacobs b4acb10706 REST API: Automatically populate targetHints for the Allow header.
The REST API uses the "Allow" header to communicate what methods a user is authorized to perform on a resource. This works great when operating on a single item route, but can break down when needing to determine authorization over a collection of items.

This commit uses the "targetHints" property of JSON Hyper Schema to provide access to the "allow" header for "self" links. This alleviates needing to make a separate network request for each item in a collection.

Props mamaduka, noisysocks, peterwilsoncc, spacedmonkey, swissspidy, timothyblynjacobs, tyxla, youknowriad.
Fixes #61739.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58428 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 21:52:20 +00:00
John Blackbourn 757729e878 Plugins: Correct the item schema for the plugins REST API endpoint.
The `author` property contains the string name of the plugin author.

Props narenin.

Fixes #61920

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


git-svn-id: http://core.svn.wordpress.org/trunk@58427 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 21:33:14 +00:00
desrosj 7629bd782d External Libraries: Update PHPass library.
This updates the PHPass library to version `0.5.4` while maintaining the adjustments introduced in [30466].

Props jrf.
Fixes #62058.
Built from https://develop.svn.wordpress.org/trunk@59030


git-svn-id: http://core.svn.wordpress.org/trunk@58426 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 21:08:16 +00:00
Pascal Birchler 56eb5c22d8 I18N: Add a new way to determine whether a translation is available.
A new `has_translation()` function can be used to determine whether a translation exists for a given string.

Props louiswol94, swissspidy, drzraf, ckanitz, tomhine, mchirag2002, samuelsilvapt.
Fixes #52696.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58425 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 20:58:15 +00:00
Felix Arntz 90673b9066 Taxonomy: Remove redundant `$taxonomies` value from cache keys used for `WP_Term_Query`.
Props niravsherasiya7707, spacedmonkey.
Fixes #59594.
See #35381.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58424 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 17:00:14 +00:00
Sergey Biryukov 3cd067ee34 General: Add missing `initial-scale` value in viewport meta tags.
The viewport meta should include `initial-scale=1.0` to ensure that high DPI/mobile display works as expected.

References:
* [https://css-tricks.com/probably-use-initial-scale1/ CSS-Tricks: Probably Use initial-scale=1]
* [https://www.sitepoint.com/community/t/is-it-necessary-to-include-initial-scale-1-0-in-the-meta-viewport-tag/455119 SitePoint Forums: Is it necessary to include initial-scale=1.0 in the meta viewport tag?]

Follow-up to [59026].

Props dhruvang21, sabernhardt, kkmuffme, mukesh27, narenin, swissspidy, SergeyBiryukov.
Fixes #61988.
Built from https://develop.svn.wordpress.org/trunk@59027


git-svn-id: http://core.svn.wordpress.org/trunk@58423 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-17 00:03:54 +00:00
Sergey Biryukov 7a04eb9b86 Bundled Themes: Add missing `initial-scale` value in viewport meta tag.
The viewport meta should include `initial-scale=1.0` to ensure that high DPI/mobile display works as expected.

Includes standardizing on `1.0` vs. `1` for consistency.

References:
* [https://css-tricks.com/probably-use-initial-scale1/ CSS-Tricks: Probably Use initial-scale=1]
* [https://www.sitepoint.com/community/t/is-it-necessary-to-include-initial-scale-1-0-in-the-meta-viewport-tag/455119 SitePoint Forums: Is it necessary to include initial-scale=1.0 in the meta viewport tag?]

Props dhruvang21, sabernhardt, kkmuffme, mukesh27, swissspidy, SergeyBiryukov.
See #61988.
Built from https://develop.svn.wordpress.org/trunk@59026


git-svn-id: http://core.svn.wordpress.org/trunk@58422 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-16 22:18:35 +00:00
dmsnell 747bda52eb HTML API: Update html5lib test runner to support new features.
This patch updates the html5lib test runner following the merge of changes opening up a full HTML parser and additional fragment contents. It makes no Core code changes, but allows a more tests to complete which previously failed due to incomplete test runner support..

Developed in https://github.com/wordpress/wordpress-develop/pull/7346
Discussed in https://core.trac.wordpress.org/ticket/61646

Props jonsurrell.
See #61646.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58421 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-16 20:17:44 +00:00
dmsnell 3aeb2980f0 HTML API: Prevent infinite loop in foreign content reprocessing step.
An infinite loop was discovered in specific situations within foreign content inside the HTML Processor when a given node inside foreign content must be handled in the rules for the current insertion mode.

This patch resolves the loop by handling those nodes directly instead of reprocessing the node, which previously was redirecting control flow back to where the loop started.

Developed in https://github.com/wordpress/wordpress-develop/7347
Discussed in https://core.trac.wordpress.org/ticket/61656

Follow-up to [58868].

Props jonsurrell.
See #61576.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58420 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-16 17:57:13 +00:00
gziolo 6b56a33bfa Meta: Add label argument to register_meta function
With the introduction of Block Bindings, it became more common to see workflows where users need to see the custom fields that are available or connected. They were relying on the meta key, however it feelt too technical sometimes. The solution is adding a new label argument to include a human-readable name that can be used across the UI.

Props santosguillamot, mamaduka, gziolo, timothyblynjacobs, peterwilsoncc.
Fixes #61998.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58419 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-16 11:33:38 +00:00
Sergey Biryukov c0350f64a0 Themes: Improve the alignment of feature filters and inputs on Add Themes screen.
Follow-up to [35527], [38640], [40797].

Props Benjamin_Zekavica, sabernhardt, sumitsingh, gauravtiwari, krupajnanda, audrasjb, SergeyBiryukov.
Fixes #53314.
Built from https://develop.svn.wordpress.org/trunk@59022


git-svn-id: http://core.svn.wordpress.org/trunk@58418 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-15 13:49:15 +00:00
Sergey Biryukov 21142e7279 Tests: Add tests to ensure that the `WP_Network::$blog_id` property is a string.
Follow-up to [34097], [36340], [37657], [37870], [37871], [59020].

Fixes #62035.
Built from https://develop.svn.wordpress.org/trunk@59021


git-svn-id: http://core.svn.wordpress.org/trunk@58417 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-14 21:31:15 +00:00
Sergey Biryukov 997455c982 Networks and Sites: Set `WP_Network` properties via setters upon creation.
This ensures that `WP_Network::$id` is stored internally as `int`, to match the documented type.

Follow-up to [37870].

Props ironprogrammer, scottculverhouse, spacedmonkey, SergeyBiryukov.
See #62035.
Built from https://develop.svn.wordpress.org/trunk@59020


git-svn-id: http://core.svn.wordpress.org/trunk@58416 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-13 22:12:15 +00:00
Peter Wilson bd4c40b4c2 Editor: Deprecate "Social links with a shared background color" pattern.
Removes the pattern from the inserter while retaining the related code to ensure the content renders for sites making use of the pattern.

Props annezazu, talldanwp, richtabor, mikachan.
Fixes #61708.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58415 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-13 05:37:16 +00:00
Peter Wilson 81de03f277 Upgrade/Install: Indicate HEIC support when checking upgrades.
Adds tracking of HEIC image type support alongside WebP and AVID image types when requesting upgrade from WordPress.org

Props adamsilverstein, swissspidy, dd32, mukesh27.
Fixes #61981.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58414 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-13 05:23:22 +00:00
Sergey Biryukov 5c52d270ec Tests: Restore the environment before performing assertions in some canonical tests.
This aims to avoid affecting other tests in case of failure.

Follow-up to [28704], [45133].

See #61608.
Built from https://develop.svn.wordpress.org/trunk@59017


git-svn-id: http://core.svn.wordpress.org/trunk@58413 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-12 21:41:15 +00:00
Peter Wilson 5d3a6274b4 Administration: Increase frequency of heartbeat API requests.
Increases the frequency of heartbeat API requests from once every 15 seconds to once every 10 seconds.

The purpose of this change is to reduce the length of time before a post becomes unlocked as a user navigates around the WordPress Dashboard and ceases editing a post.

`wp.heartbeat.interval()` has been modified to allow theme and plugin authors to set the heartbeat interval to any value between one second and one hour rather than limiting them to a fixed set of values.

Props azaozz, annezazu, jorbin, kirasong.
Fixes #61960.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58412 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-11 23:09:16 +00:00
Peter Wilson e296eeb012 Taxonomy: Test inserting a child term flushes queries by term ID.
Adds a test to ensure that interting a child term invalidates the cache of a `get_terms()` query by the parent ID.

Props Dekadinious, peterwilsoncc.
See #62031, #61530.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58411 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-11 22:41:18 +00:00
dmsnell 7d9bb7efd3 HTML API: Make WP_HTML_Processor::get_tag() namespace aware.
The HTML specification indicates that an HTML tag with the name "IMAGE"
should be renamed as "IMG" and handled as if it were an "IMG", but this
only applies to elements in the HTML namespace.

In this patch the HTML Processor is updated to ensure that it doesn't
remap the tag name when processing foreign content, such as SVG and
MathML markup.

Developed in https://github.com/wordpress/wordpress-develop/7330
Discussed in https://core.trac.wordpress.org/ticket/61656

Props dmsnell, jonsurrell.
See #61576.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58410 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-11 16:13:17 +00:00
Felix Arntz 1d71540320 Comments: Reinstate original since annotation on `get_edit_comment_link` filter.
This was accidentally removed in [58875].

See #61727.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58409 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-11 15:44:13 +00:00
Felix Arntz f8a7a22bee Comments: Ensure `$comment_id` parameter on `get_edit_comment_link` filter is always a comment ID.
Follow up to [58875].

Props david.binda, peterwilsoncc, mukesh27, davidbaumwald.
Fixes #61727.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58408 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-11 15:40:17 +00:00
dmsnell ee69ec404e WP_Debug_Data: Extract `wp-mu-plugins` data into separate method.
This is the part five in a larger modularization of the data in `WP_Debug_Data`. Previously this was a single massive method drawing in debug data from various groups of related data, where the groups were independent from each other.

This patch separates the fifth of twelve groups, the `wp-mu-plugins` info, into a separate method focused on that data.

This work precedes changes to make the `WP_Debug_Data` class more extensible for better use by plugin and theme code.

Developed in https://github.com/wordpress/wordpress-develop/7305
Discussed in https://core.trac.wordpress.org/ticket/61648

Props apermo, dmsnell.
See #61648.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58407 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-11 14:47:20 +00:00
Sergey Biryukov 3c03500cea Docs: Remove the `@ignore` tag for `_wp_render_title_tag()`.
The function is referenced in the `_block_template_render_title_tag()` DocBlock, and should therefore be included in the documentation.

Follow-up to [30074], [30615], [31170], [35294], [51003].

Props poena.
See #61608.
Built from https://develop.svn.wordpress.org/trunk@59010


git-svn-id: http://core.svn.wordpress.org/trunk@58406 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-11 13:27:12 +00:00
John Blackbourn 87fd392188 Docs: Various docblock improvements and corrections.
See #61608

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


git-svn-id: http://core.svn.wordpress.org/trunk@58405 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-11 12:08:19 +00:00
Joe McGill 2f943897c9 Media: Add auto sizes for lazy-loaded images.
This implements the HTML spec for applying auto sizes to lazy-loaded images by prepending `auto` to the `sizes` attribute generated by WordPress if the image has a `loading` attribute set to `lazy`. For browser that support this HTML spec, the image's size value will be set to the concrete object size of the image. For browsers that don't support the spec, the word "auto" will be ignored when parsing the sizes value.

References:
- https://html.spec.whatwg.org/multipage/images.html#sizes-attributes
- https://github.com/whatwg/html/pull/8008

Props mukesh27, flixos90, joemcgill, westonruter, peterwilsoncc.
Fixes #61847.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58404 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-11 00:01:23 +00:00
Sergey Biryukov 7215ea4eb1 Docs: Fix typo in a comment in `get_block_templates()`.
Follow-up to [55687].

Props dj.cowan, mukesh27.
Fixes #62023.
Built from https://develop.svn.wordpress.org/trunk@59003


git-svn-id: http://core.svn.wordpress.org/trunk@58399 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-10 09:47:18 +00:00
dmsnell 3293d9ba89 WP_Debug_Data: Extract `wp-server` data into separate method.
This is the part four in a larger modularization of the data in `WP_Debug_Data`. Previously this was a single massive method drawing in debug data from various groups of related data, where the groups were independent from each other.

This patch separates the fourth of twelve groups, the `wp-server` info, into a separate method focused on that data.

This work precedes changes to make the `WP_Debug_Data` class more extensible for better use by plugin and theme code.

Developed in https://github.com/wordpress/wordpress-develop/7283
Discussed in https://core.trac.wordpress.org/ticket/61648

Props apermo, costdev, dmsnell, kebbet, mukesh27.
See #61648.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58398 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-10 00:04:19 +00:00
dmsnell 011d45abbc HTML API: Add sentinels for unreachable code.
There are places in the HTML API code where some tools get confused and flag invalid types for the return of a function because they are unable to detect that the end of the function is unreachable.

Since PHP doesn't provide a way to encode total matching in the source code, this patch adds a few extra lines in those unreachable locations to satisfy any tooling which isn't able to fully analyze the code.

Additionally this serves as extra guarding in case someone changes these functions in a way which would break them and the existing test suite doesn't catch those breakages.

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

Props dlh, dmsnell.
Fixes #62018.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58397 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-09 22:12:15 +00:00
Sergey Biryukov 7f0a5f518b Docs: Correct parameter reference for `manage_posts_columns` and related filters.
Follow-up to [27255], [42871].

Props truptikanzariya.
Fixes #62015.
Built from https://develop.svn.wordpress.org/trunk@59000


git-svn-id: http://core.svn.wordpress.org/trunk@58396 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-09 14:37:17 +00:00
Sergey Biryukov 911d37b465 Users: Remove obsolete conditional in `wp-admin/user-new.php`.
Since `$username` is set to `$user_details->user_login`, it will never be `null` in this specific line.

Follow-up to [https://mu.trac.wordpress.org/changeset/641 mu:641], [https://mu.trac.wordpress.org/changeset/1529 mu:1529], [12722], [16294].

Props akshat2802, mukesh27, aristath, SergeyBiryukov.
Fixes #62012.
Built from https://develop.svn.wordpress.org/trunk@58999


git-svn-id: http://core.svn.wordpress.org/trunk@58395 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-09 10:17:15 +00:00
Sergey Biryukov 11f8d8ec2b Coding Standards: Use strict comparison in `wp-includes/capabilities.php`.
Follow-up to [2703], [3297], [3513], [6697], [14189], [25177], [27390], [38378], [38698], [39588], [48356], [48664].

Props aristath, poena, afercia, SergeyBiryukov.
See #61607.
Built from https://develop.svn.wordpress.org/trunk@58998


git-svn-id: http://core.svn.wordpress.org/trunk@58394 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-08 19:18:17 +00:00
Sergey Biryukov 35b7340af9 Administration: Remove old IE9 code from `wp-admin/js/svg-painter.js`.
About half of the file's code was a back-compat polyfill of base64 functions for IE9.

Since WordPress no longer supports IE9 as of version 4.8, and all modern browsers come with these functions, the polyfills can be removed.

Follow-up to [26072], [26131], [26601], [47771].

Props TobiasBg, sabernhardt.
Fixes #61995.
Built from https://develop.svn.wordpress.org/trunk@58997


git-svn-id: http://core.svn.wordpress.org/trunk@58393 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-07 22:44:17 +00:00
dmsnell 76c06eb274 Debug Data: Encode section ordering in debug info.
During a refactor to modularize the debug data class, it came up that the ordering of the sections inside of the returned debug info is relevant to existing UIs, as they iterate the array, which happens in insertion order.

This patch presets each section at the start to ensure that the ordering remains consistent even as code within the method is rearranged. As the mini-project progresses, this assignment will be the final place all the sections are referenced.

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

Props apermo, dmsnell, sergeybiryukov.
See #61648.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58392 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-06 19:50:19 +00:00
Sergey Biryukov c311a9de36 Docs: Correct the order of `@since` and `@var` annotations.
Follow-up to [4673], [8656], [13041], [13827], [13895], [31134], [34490], [34566].

Props riddhipatel, shailu25.
Fixes #61999.
Built from https://develop.svn.wordpress.org/trunk@58995


git-svn-id: http://core.svn.wordpress.org/trunk@58391 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-06 14:36:19 +00:00
Sergey Biryukov 68ed51f937 Coding Standards: Use strict comparison in `wp-admin/includes/upgrade.php`.
Follow-up to [725], [1575], [1975], [2037], [2966], [3670], [4738], [11958], [12776], [14080], [14485], [32378].

Props faisalahammad, mujuonly, aristath, poena, afercia, SergeyBiryukov.
Fixes #58041, #61607.
Built from https://develop.svn.wordpress.org/trunk@58994


git-svn-id: http://core.svn.wordpress.org/trunk@58390 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-05 14:59:14 +00:00
Sergey Biryukov 3bf2de3ad2 Docs: Correct the first parameter name for the `pre_site_option_{$option}` filter.
Follow-up to [27365], [41013], [48193].

See #61608.
Built from https://develop.svn.wordpress.org/trunk@58993


git-svn-id: http://core.svn.wordpress.org/trunk@58389 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-04 21:10:14 +00:00
dmsnell 72bc81c048 HTML API: Only examine HTML nodes in `pop_until()` instack of open elements.
The `pop_until( $tag_name )` method in the stack of open elements should only be examining HTML elements, but it has only been checking the tag name. This has led to closing the wrong tags when run from inside foreign content. A very specific situation where this may arise is when a `TEMPLATE` closer is found inside foreign content, inside another template.

{{{
HTML:template   SVG:template                 HTML:/template
<template><svg><template><foreignObject><div></template><div>
╰──< this outer TEMPLATE is closed by this one >───╯
}}}

This patch constains the method to checking for elements matching the tag name which are in the HTML namespace so that the proper detection occurs.

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

Follow-up to [58867].

Props dmsnell, jonsurrell.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58388 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-04 19:25:14 +00:00
hellofromTonya 699ea88e6c Editor: Update packages for 6.6.2 RC1.
Updates the versions from the [a74a70ed20 released packages] for the following bugfixes:

* [https://github.com/WordPress/gutenberg/pull/63980 Global Styles: Fix block custom CSS pseudo element selectors]
* [https://github.com/WordPress/gutenberg/pull/64463 Featured Image Block: Reduce CSS specificity]
* [https://github.com/WordPress/gutenberg/pull/64076 Fix bumped specificity for layout styles in non-iframed editor]
* [https://github.com/WordPress/gutenberg/pull/64379 Don't allow duplicating template parts in non-block-based themes]
* [https://github.com/WordPress/gutenberg/pull/64250 Data Views: Don't render action modal when there are no eligible items]
* [https://github.com/WordPress/gutenberg/pull/63724 Fix canvas issues by removing VisualEditor’s height]
* [https://github.com/WordPress/gutenberg/pull/64992 Post Editor: fix click space after post content to append]
* [https://github.com/WordPress/gutenberg/pull/63939 Post Editor: Prevent popover from being hidden by metabox]
* [https://github.com/WordPress/gutenberg/pull/64639 Post editor: apply space below content using a pseudo-element instead of padding-bottom]
* [https://github.com/WordPress/gutenberg/pull/64015 Avoid errors for post types without a 'menu_icon']
* [https://github.com/WordPress/gutenberg/pull/64458 Update postcss-prefixwrap dependency to 1.51.0 to fix prefixing in :where selectors]

Props vcanales.
Fixes #61982.
See #61704, #61769, #61829.
Built from https://develop.svn.wordpress.org/trunk@58988


git-svn-id: http://core.svn.wordpress.org/trunk@58384 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-04 16:25:19 +00:00
dmsnell d0d8ba24d8 HTML API: Respect document compat mode when handling CSS class names.
The HTML API has been behaving as if CSS class name selectors matched class names in an ASCII case-insensitive manner. This is only true if the document in question is set to quirks mode. Unfortunately most documents processed will be set to no-quirks mode, meaning that some CSS behaviors have been matching incorrectly when provided with case variants of class names.

In this patch, the CSS methods have been audited and updated to adhere to the rules governing ASCII case sensitivity when matching classes. This includes `add_class()`, `remove_class()`, `has_class()`, and `class_list()`. Now, it is assumed that a document is in no-quirks mode unless a full HTML parser infers quirks mode, and these methods will treat class names in a byte-for-byte manner. Otherwise, when a document is in quirks mode, the methods will compare the provided class names against existing class names for the tag in an ASCII case insensitive way, while `class_list()` will return a lower-cased version of the existing class names.

The lower-casing in `class_list()` is performed for consistency, since it's possible that multiple case variants of the same comparable class name exists on a tag in the input HTML.

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

Props dmsnell, jonsurrell.
See #61531.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58381 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-04 04:34:15 +00:00
Mamaduka 1e6b860630 Editor: Update preloaded paths for the site editor
Add the `OPTIONS /wp/v2/pages` route to the list. The request is made via the `useBlockEditorSettings` hook at the top of the editor React tree. Preloading should improve the editor's loading time.

Avoid hardcoding paths for the 'attachment' post type; use the `rest_get_route_for_post_type_items` helper method instead.

Props mamaduka, noisysocks.
See #61884.
Built from https://develop.svn.wordpress.org/trunk@58984


git-svn-id: http://core.svn.wordpress.org/trunk@58380 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-04 04:17:14 +00:00
Sergey Biryukov d65e65cd6c Posts, Post Types: Check if the post type exists in `_admin_notice_post_locked()`.
This adds a guard to verify the result of `get_post_type_object()` before retrieving the `all_items` label, as the function returns `null` if the post type does not exist.

Follow-up to [24527].

Props pcarvalho, akshat280, mukesh27, SergeyBiryukov.
Fixes #60947.
Built from https://develop.svn.wordpress.org/trunk@58983


git-svn-id: http://core.svn.wordpress.org/trunk@58379 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-03 22:43:14 +00:00
joedolson 02d2fa959a Comments: Limit comments shortcut to not execute on links.
Exclude links from activating the comment submission shortcut.

[45790] introduced a shortcut to submit comment forms using `Ctrl/Cmd + Enter`. This keyboard combination is also the combination for opening a link in a new tab, which resulted in submitting the form when using the Log Out or Edit Profile links.

Props greentreefrog, sabernhardt, narenin.
Fixes #61919.
Built from https://develop.svn.wordpress.org/trunk@58981


git-svn-id: http://core.svn.wordpress.org/trunk@58377 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-03 20:36:10 +00:00
hellofromTonya 7b2eb3f79b Docs: Add changing existing items recommendations to 'admin_bar_menu' action.
Improves the `'admin_bar_menu'` docblock by adding recommendations for customizing / changing existing items.

It also improves the `wp_admin_bar_render()` function's docblock by removing the "most optimal point" sentence.

The [58748] changeset moved the user menu to a higher priority level (of `9991`) to achieve:

>so nodes added with higher priorities will still be shown visually before the user and recovery menu items, as they were prior to [58215].

When hooking into `'admin_bar_menu'` with a priority level less than 9991 and attempting to get the `'my-account'` node, `null` is returned. While the preferred approach is to hook into `'wp_before_admin_bar_render'`, the documentation of the `'admin_bar_menu'` action was previously misleading.

Follow-up to [58748], [58759].

Props michaelwp85, narenin, sabernhardt, joedolson, costdev, jorbin, hellofromTonya, mukesh27, pbiron.
Fixes #61738.
Built from https://develop.svn.wordpress.org/trunk@58978


git-svn-id: http://core.svn.wordpress.org/trunk@58374 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-03 19:58:11 +00:00
dmsnell 2ce04ceab9 HTML API: Ensure that NULL and whitespace-only CDATA sections don't forbid FRAMESET.
When CDATA sections (which can only occur inside SVG and MathML content) consist only of NULL bytes or whitespace characters they should not clear the "frameset ok" flag. Previously they have always been clearing this flag, but in this patch the logic is updated to detect these sequences properly.

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

Follow-up to [58867].

Props dmsnell, jonsurrell.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58373 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-03 19:50:14 +00:00
ryelle 8d1fb4e25a Help/About: Fix text wrapping on non-English locales.
In [57715], headings on the About pages were given `text-wrap: balance`. This rule causes unexpected breaks in non-latin langauges, e.g., Japanese, Korean. This fix sets the text-wrap to `pretty` for browsers that support it, and uses `balance` for English-only.

Props akshat2802, wildworks, ryelle, sabernhardt, hellofromTonya.
Fixes #60892.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58372 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-03 18:51:12 +00:00
Felix Arntz 4e167c593d Options, Meta APIs: Explicitly pass `$autoload` parameter to when potentially adding new options.
It is recommended that for every option it is explicitly set whether to autoload it or not. This changeset updates relevant `update_option()` and `add_option()` calls.

Note that the `$autoload` parameter is only needed for `update_option()` if the option is potentially not present yet, i.e. the call will pass through to `add_option()`. Since WordPress core adds the majority of its options to the database during installation, only `update_option()` calls for dynamically added options need to be modified, which is what this changeset does.

As part of revisiting the autoload values for dynamically added WordPress core options, this changeset modifies some options to no longer be autoloaded, since they are only accessed in a few specific places that are not relevant for a regular request. These options are:
* `recently_activated`
* `_wp_suggested_policy_text_has_changed`
* `{upgradeLock}.lock`
* `dashboard_widget_options`
* `ftp_credentials`
* `adminhash`
* `nav_menu_options`
* `wp_force_deactivated_plugins`
* `delete_blog_hash`
* `allowedthemes`
* `{sessionId}_paused_extensions`
* `recovery_keys`
* `https_detection_errors`
* `fresh_site`

An upgrade routine is present as well that sets those options to no longer autoload for existing sites.

Props pbearne, flixos90, mukesh27, swissspidy, SergeyBiryukov, joemcgill, adamsilverstein.
Fixes #61103.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58371 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-03 18:19:14 +00:00
Felix Arntz 77af97466f Media: Consistently pass 'src' attribute to `wp_get_loading_optimization_attributes()`.
A common use-case for the 'wp_get_loading_optimization_attributes' filter is to modify attributes based on the 'src' attribute. However, the `wp_img_tag_add_loading_optimization_attrs()` was not passing that attribute to the function as expected, which would make such usage of the filter unreliable. This changeset ensures the 'src' attribute is also passed in this scenario. All other calls to `wp_get_loading_optimization_attributes()` already included the attribute.

Props deepakrohilla, prestonwordsworth, mukesh27, adamsilverstein, joemcgill, flixos90.
Fixes #61436.
See #58893.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58370 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-03 17:07:16 +00:00
cbravobernal b734476509 Block bindings: Adds a filter to customize the output of a block bindings source.
Introduces a filter to the `block_bindings_source_value` to allow developers to
modify the value returned by any block binding source.

Props snehapatil02, cbravobernal, gziolo, santosguillamot, bacoords, codersantosh.
Fixes #61181.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58368 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-03 16:33:15 +00:00
dmsnell ec9fa01846 HTML API: Improve skipped test reporting with unsupported exception.
The `html5lib-tests` suite skips a number of tests due to unsupported markup. At the moment, these tests all report "Test includes unsupported markup." This patch calls the `get_unsupported_exception()` method in these skipped cases to improve the messages reported to PHPUnit so they're more informative: e.g. "Unsupported markup: Foster parenting is not supported."

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

Follow-up to [58714].

Props dmsnell, jonsurrell.
See #61646.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58367 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-03 16:27:14 +00:00
dmsnell 8d2a10b300 HTML API: Allow subdividing text nodes by meaningful prefixes.
HTML parsing rules at times differentiate character tokens that are all null bytes, all whitespace, or other content. This patch introduces a new function which may be used to classify text node sub-regions and lead to more efficient application of these parsing rules.

Further, when classified in this way, application code may skip some rules and decoding entirely, improving performance. For example, this can be used to ease the implementation of skipping inter-element whitespace, which is usually not rendered.

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

Props dmsnell, jonsurrell.
Fixes #61974.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58366 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-02 23:21:18 +00:00
dmsnell 3008472ffb HTML API: Replace null-bytes in class_list class names
As part of an audit of HTML API CSS behaviors, this patch resolves an issue with how the HTML API reports class names containing the NULL byte. NULL bytes should be replaced by the Unicode replacement character, U+FFFD, but previously weren't. This patch performs that replacement.

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

Follow-up to [56703].

Props dmsnell, jonsurrell.
See #61531.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58365 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-02 22:28:12 +00:00
Sergey Biryukov b428e1b5be Tests: Add a unit test for `get_metadata()` with a non-existing object ID.
Follow-up to [48658], [50641], [58962].

Props rodrigosprimo, jrf.
See #61530, #61608.
Built from https://develop.svn.wordpress.org/trunk@58968


git-svn-id: http://core.svn.wordpress.org/trunk@58364 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-02 22:18:17 +00:00
dmsnell eac35f6ae6 HTML API: Add missing NOBR end tag handling to HTML Processor.
When the HTML Processor was introduced, an oversight led to a missing case for handling a closing `NOBR` tag. The `NOBR` element is a deprecated tag and should not be used.

This patch adds the missing case so that the deprecated `NOBR` end tag is appropriately handled.

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

Follow-up to [56274].

Props jonsurrell.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58363 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-02 22:03:15 +00:00
dmsnell d7f9d30df8 HTML API: Fix logic bug in HTML Processor when opening A element.
A mistake in the original code handling opening A elements in the HTML Processor led to mistakes in parsing where the Processor would bail in situations when it could have proceeded. While this was errant behavior, it didn't violate the public contract since it would bail in these situations.

This patch fixes the mistake, which was to only break out of the innermost loop instead of breaking from the containing loop, which resolves the issue.

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

Follow-up to [56274].

Props jonsurrell.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58362 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-02 21:54:15 +00:00
dmsnell 3e8d4ddc1d HTML API: Add missing `@global` tag on HTML Decoder.
The `@global` documentation has been missing in the `class-wp-html-decoder.php` file, and this patch adds it.

Discussed in https://core.trac.wordpress.org/ticket/61968

Props dmsnell, jonsurrell, shailu25.
Resolves #61968.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-02 20:55:14 +00:00
dmsnell d0877b108a WP_Debug_Data: Extract `wp-database` data into separate method.
This is the part three in a larger modularization of the data in `WP_Debug_Data`. Previously this was a single massive method drawing in debug data from various groups of related data, where the groups were independent from each other.

This patch separates the third of twelve groups, the `wp-database` info, into a separate method focused on that data.

This work precedes changes to make the `WP_Debug_Data` class more extensible for better use by plugin and theme code.

Developed in https://github.com/wordpress/wordpress-develop/7143
Discussed in https://core.trac.wordpress.org/ticket/61648

Props dmsnell, kebbet, apermo.
See #61648.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-02 20:44:16 +00:00
Peter Wilson 4fc2975cb5 Options, Meta APIs: Prevent mail options triggering a deprecation warning.
Prevents a deprecation warning saving options when the post by email feature is turned off in code using the `enable_post_by_email_configuration` filter.

Props ironprogrammer, manbo, narenin, sebastienserre, siliconforks.
Fixes #61144.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58359 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-02 00:13:16 +00:00
Sergey Biryukov 8532edd526 Docs: Further clarify return results for a non-existing ID in metadata functions.
This adds a note that the functions return either an empty array or an empty string for a valid but non-existing ID, depending on the `$single` parameter.

Follow-up to [48658], [50641].

Props rodrigosprimo, jrf.
See #61608.
Built from https://develop.svn.wordpress.org/trunk@58962


git-svn-id: http://core.svn.wordpress.org/trunk@58358 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-01 18:30:16 +00:00
Sergey Biryukov c585121d5e Docs: Correct comment formatting in `wp_autosave_post_revisioned_meta_fields()`.
Follow-up to [56714].

See #61608.
Built from https://develop.svn.wordpress.org/trunk@58961


git-svn-id: http://core.svn.wordpress.org/trunk@58357 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-31 14:46:17 +00:00
Tammie Lister d7a3815245 Twenty Twenty: Correct font-size for Code block and other preformatted elements.
The code block font-size was not the same in the editor and front. This sets it to 1em and corrects the value for preformatted elements along with adding border and padding in the editor for pre elements.

Props viralsampat, mi5t4n, brobken, sabernhardt.
Fixes #61845.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58356 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-31 10:54:12 +00:00
Tammie Lister 0d5e01a52e Twenty Nineteen: Reduce bottom margin for Audio block.
The audio block was lacking a bottom margin in some editors. This resolves both non-framed and framed changes.

Props PGeorgiev, desrosj, sabernhardt, hmbashar.
Fixes #53681.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58355 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-31 10:39:16 +00:00
Peter Wilson 15aa25f351 Bundled Themes: Add contributors to copyright notices.
One of the benefits of contributing to WordPress is that contributors license their code under the GPL rather than assign copyright to the WordPress Foundation or another entity.

This updates the copyright notices in each of the bundled themes to acknowledge contributors own a portion of the copyright. For themes with a significant contribution from Automattic, the copyright notice is updated from Automattic.com to the legal entity Automattic Inc.

Props peterwilsoncc, desrosj, sabernhardt, jorbin, chanthaboune.
Fixes #61943.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58354 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-30 23:09:12 +00:00
joedolson 8d6f540982 Plugins: Delay AJAX search until after 2 characters.
Prevent the AJAX search results from firing until after at least 2 characters have been typed into the search boxes. Toggle `autocomplete` value once AJAX is firing. Add a changeable minimum character threshold.

Props armandsdz, adamsilverstein, afercia, mklusak, finalwebsites, joedolson.
Fixes #38211.
Built from https://develop.svn.wordpress.org/trunk@58957


git-svn-id: http://core.svn.wordpress.org/trunk@58353 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-30 22:17:16 +00:00
desrosj 42c2e3578e External Libraries: Update jQuery Color to version `3.0.0`.
This update most notably drops support for jQuery `< 1.12` and `< 2.2`. WordPress has not shipped with a version that matches these ranges since version 4.4 (see [36285]/#35380).

The update also changes the library’s browser support policy to only support the latest Chrome, Firefox, Safari, and Edge. This closely matches Core’s current policy to support the last 2 versions of these browsers. The library’s README notes that other versions nay “also work correctly with this plugin but support is not guaranteed”, which is reasonably similar.

Props vipulgupta003.
Fixes #61835.
Built from https://develop.svn.wordpress.org/trunk@58956


git-svn-id: http://core.svn.wordpress.org/trunk@58352 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-30 17:40:14 +00:00
Sergey Biryukov 8385861e3d Docs: Clarify the description for `wp_dropdown_users()`.
Follow-up to [8873].

See #61608.
Built from https://develop.svn.wordpress.org/trunk@58955


git-svn-id: http://core.svn.wordpress.org/trunk@58351 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-30 17:31:18 +00:00
Sergey Biryukov d564af0c7b Tests: Clarify description for `unregister_setting()` test with an unknown setting.
Follow-up to [56817].

See #61530.
Built from https://develop.svn.wordpress.org/trunk@58954


git-svn-id: http://core.svn.wordpress.org/trunk@58350 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-29 23:28:18 +00:00
Pascal Birchler 923afba171 Docs: Remove `@global` annotation after [58952].
Props mukesh27.
See #60970.
Built from https://develop.svn.wordpress.org/trunk@58953


git-svn-id: http://core.svn.wordpress.org/trunk@58349 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-29 06:16:09 +00:00
Pascal Birchler 6665a4e30a Script Loader: Remove `importmap` polyfill.
The polyfill was added in [57492], but all browsers supported by WordPress already support import maps.

This not only disables the polyfill, but completely removes it as it was only added recently and there is no usage outside of core.

Props swissspidy, desrosj, luisherranz, gziolo.
Fixes #60970.
Built from https://develop.svn.wordpress.org/trunk@58952


git-svn-id: http://core.svn.wordpress.org/trunk@58348 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-29 06:06:13 +00:00
ramonopoly 94b9ccd020 Block Styles: Ensure unique classname generation for variations
This commit simplifies block style variation class name generation to ensure unique class names by replacing the hashing of block attributes in the block style variation class names with a call to `wp_unique_id`.

Doing so avoids potential for non-unique class names and conflicting styles when exact copies of a block are inserted via a repeated pattern.


Props aaronrobertshaw, martinkrcho, mukesh27, peterwilsoncc, ramonopoly.

Fixes #61877.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58347 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-29 05:41:10 +00:00
ramonopoly 06e50d2cbb Fluid typography: allow individual preset overrides
In theme.json, individual font sizes may opt out of fluid typography if it is turned on globally.  

This commit ensures that individual font size presets can also opt in to fluid typography if it is not turned on globally. 

Props aaronrobertshaw, mmaattiiaass, ramonopoly, wildworks.

Fixes #61932.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58346 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-29 05:22:14 +00:00
Felix Arntz 4d0a623d7a Options, Meta APIs: Soft-deprecate use of 'yes' and 'no' as `$autoload` parameter.
WordPress 6.6 option autoload enhancements included discouraging the use of 'yes' and 'no' to indicate whether to autoload an option when calling `add_option()` or `update_option()`. Instead, a boolean should be used.

This changeset brings the newer autoload related functions `wp_set_option_autoload_values()`, `wp_set_options_autoload()`, and `wp_set_option_autoload()` in line with those changes. Additionally, it soft-deprecates the values more formally, as they should no longer be used. No PHP warnings will be emitted though as this is not a hard deprecation. This change is purely about documentation.

Props flixos90, joemcgill, jrf, mukesh27.
Fixes #61929.
See #61103, #61939.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58345 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-28 22:48:18 +00:00
Sergey Biryukov d79898ec1b Docs: Remove obsolete `@todo` entry in REST API post meta tests.
Follow-up to [56714].

See #61608.
Built from https://develop.svn.wordpress.org/trunk@58948


git-svn-id: http://core.svn.wordpress.org/trunk@58344 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-28 21:53:14 +00:00
antpb 81cfe7488c Media: Implement fallback to full-size thumbnails for PDFs in Media Library.
When medium-size thumbnails are disabled, PDF previews in the Media Library grid view now fall back to displaying full-size thumbnails instead of a generic document icon.

Props daleharrison, kushang78, mukesh27, sudipatel007, mai21, antpb.
Fixes #39630.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58343 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-28 17:01:13 +00:00
joedolson e57bee933a Media: Fix viewport scrolling and code style in image rotation.
Change `browsePopup` to use `onkeydown`, pass the `event` parameter from the calling control, and adjust variable naming style.

The `browsePopup` method used for the image rotation menu used `onkeyup` to trigger events, which prevented capturing browser scroll actions with arrows occurring on `onkeydown`.

Props afercia, deepakvijayan, nirajgirixd, joedolson, antpb.
Fixes #60548.
Built from https://develop.svn.wordpress.org/trunk@58946


git-svn-id: http://core.svn.wordpress.org/trunk@58342 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-28 16:45:11 +00:00
Felix Arntz 05541b406c Options, Meta APIs: Stop using 'yes' and 'no' for autoload parameter in favor of recommended boolean.
This changeset does not modify any behavior, it only updates the code to use the recommended type for the `$autoload` parameter as of WordPress 6.6. The old values 'yes' and 'no' are only maintained in certain tests that are explicitly about these backward compatibility values.

Props flixos90, joemcgill, mukesh27.
Fixes #61939.
See #61103, #61929.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58341 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-28 16:41:16 +00:00
Aaron Jorbin 4065eb8bc4 Bootstrap/Load: Add Words of warning about load order.
Since this file is loaded incredibly early, many functions are not available. Those deeply familiar with how load works might have some idea as to what's safe and what isn't, but it's generally confusing and a little opaque so let's warn people there be dragons.

Props helen, DrewAPicture, jorbin.
Fixes #38650.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58340 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-28 14:36:17 +00:00
Sergey Biryukov af0ddfb337 Twenty Nineteen: Remove the use of empty rulesets.
Follow-up to [43808].

Props pitamdey, mukesh27, narenin.
Fixes #61933.
Built from https://develop.svn.wordpress.org/trunk@58943


git-svn-id: http://core.svn.wordpress.org/trunk@58339 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-27 19:36:14 +00:00
Pascal Birchler 89519c939c Docs: Fix typo in `wp_show_heic_upload_error` docblock.
Follow-up to [58849].
See #53645.
Built from https://develop.svn.wordpress.org/trunk@58942


git-svn-id: http://core.svn.wordpress.org/trunk@58338 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-27 15:29:14 +00:00
dmsnell b8dbab9546 Add Adam Zieliński to the mailmap file.
Adds Adam Zieliński's display name to the `.mailmap` file.

Developed in https://github.com/wordpress/wordpress-develop/7204
Discussed in https://core.trac.wordpress.org/ticket/61864

Follow-up to [58899].

Props dmsnell, zieladam.
See #61864.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58337 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-27 03:44:10 +00:00
dmsnell 813d784931 HTML API: Fix a bug where the namespace was forced to 'html'
While working on other reviews and audits, a bug was discovered in the HTML API where the wrong namespace was being assigned to a token because the default value of 'html' was used. This patch fixes the bug by calling the `parent::get_namespace()` method instead of assuming 'html'.

Developed in https://github.com/wordpress/wordpress-develop/7232
Discussed in https://core.trac.wordpress.org/ticket/61576

Follow-up to [58868].

Props jonsurrell.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58336 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-27 03:37:12 +00:00
Peter Wilson bd20e0e8d2 Build/test tools: Remove prompt for trac ticket referenced with ticket: prefix.
Prevents the GitHub bot from posting a comment on pull requests requesting a trac ticket link if the ticket description includes a link via the ticket: prefix, eg ticket:61865.

The WordPress/WordPress-Develop repository is configured to automatically convert the text to a trac ticket link.

Props dd32, peterwilsoncc.
Fixes #61865.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58335 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-26 23:16:15 +00:00
Sergey Biryukov 3014749ed9 Coding Standards: Use a human-readable constant in the check for max memory limit.
Follow-up to [35286], [38011], [38015], [58937].

See #61607.
Built from https://develop.svn.wordpress.org/trunk@58938


git-svn-id: http://core.svn.wordpress.org/trunk@58334 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-26 20:57:13 +00:00
Felix Arntz ddd7f2142e Administration: Avoid using `WP_MAX_MEMORY_LIMIT` default that is smaller than `WP_MEMORY_LIMIT`.
Props eclare, dd32, pbearne.
Fixes #36426.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58333 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-26 20:14:14 +00:00
ramonopoly 9e650efbb8 Background images: resolve theme.json dynamic ref values and ensure appropriate style default values
The commit syncs the following changes from Gutenberg:

- Background images: add support for theme.json ref value resolution gutenberg#64128
- Background images: ensure appropriate default values gutenberg#64192
- Background image: ensure consistency with defaults and fix reset/remove functionality gutenberg#64328

These changes brings consistency to the default background image styles WordPress applies to user uploaded images, and adds support for ref resolution to "background" style properties.

Props andrewserong, aaronrobertshaw.  

Fixes #61858



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


git-svn-id: http://core.svn.wordpress.org/trunk@58332 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-26 05:40:16 +00:00
Peter Wilson 0735fa8ce0 Script Loader: Refactor Etag generation for concatenated assets.
Move Etag HTTP header generation in `load-scripts.php` and `load-styles.php` to `WP_Dependencies`.

Introduces the method `WP_Dependencies::get_etag()` and associated unit tests.

Follow up to [57943].

Props vrajadas, martinkrcho, mukesh27.
Fixes #61485.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58331 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-25 23:48:13 +00:00
Peter Wilson fd94bc45c6 HTTP API: Update `wp_http_supports()` to use Requests.
Update the capabilities check in `wp_http_supports` to use `WpOrg\Requests\Requests::has_capabilities` rather than the deprecated `WP_HTTP::_get_first_available_transport()`.

Props dd32, mukesh27, costdev, desrosj, johnbillion, jorbin, jrf, chaion07.
Fixes #37708.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58330 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-25 23:13:17 +00:00
TimothyBlynJacobs a0e8d31590 REST API: Improve error messages when registering an invalid route.
The error messages now include the REST API namespace and route to help identify the offending code.

Props lwangaman, timothyblynjacobs.
Fixes #50493.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58329 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-25 22:51:14 +00:00
Sergey Biryukov a45c25d272 Script Loader: Do not normalize absolute paths in inline block styles CSS.
`_wp_normalize_relative_css_links()` used to normalize all non-absolute URLs regardless of whether it's a relative path or an absolute path. The normalization should only happen for relative paths (paths without a leading `/`) and not for absolute paths.

Reference: [https://www.rfc-editor.org/rfc/rfc1808#section-4 RFC 1808, Section 4, Step 4].

Follow-up to [52036], [52695], [52754], [55658], [55669].

Props scholdstrom.
Fixes #61909.
Built from https://develop.svn.wordpress.org/trunk@58932


git-svn-id: http://core.svn.wordpress.org/trunk@58328 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-25 22:48:15 +00:00
Peter Wilson ac72a65949 Comments: Announce reply notices to screen reader users.
Improve experience for screen reader users by calling `wp.a11y.speak()` with the results of comment reply submissions within the WordPress dashboard.

Props joedolson, khokansardar.
Fixes #61480.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58327 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-25 22:37:19 +00:00
Tammie Lister f51cc56803 Twenty Seventeen: Fixes search block button styling variations.
The search block button was not the same back and front for background, text and font weight. This is an additional patch solving the previous issue of styles being in wrong section and also differences..

Props sabernhardt.
Fixes #61888.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58326 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-24 12:21:15 +00:00
Sergey Biryukov b754603f04 Toolbar: Use CSS variable for the admin bar height in `wp-admin/css/common.css`.
Follow-up to [16600], [21025], [26072].

Props tdrayson, niravsherasiya7707, mukesh27.
See #61898.
Built from https://develop.svn.wordpress.org/trunk@58929


git-svn-id: http://core.svn.wordpress.org/trunk@58325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-24 00:05:12 +00:00
Sergey Biryukov 9c0e9fb055 Upgrade/Install: Use an empty string for the default “Post via email” password.
This aims to avoid a security warning in Chrome, which could previously be triggered even if the default value is not actually used as a password.

Follow-up to [208], [230], [233], [662], [1599], [1601]

Props adamkheckler, sabernhardt, peterwilsoncc, psykro, petitphp.
Fixes #61332.
Built from https://develop.svn.wordpress.org/trunk@58928


git-svn-id: http://core.svn.wordpress.org/trunk@58324 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-23 23:17:13 +00:00
Peter Wilson d1386fb88c Administration: Modernize Site Icon UI in settings, customizer.
Updates the UI for previewing a site icon in general settings and the customizer to account for changes to browser designs over the past years.

Props joedolson, joen, kebbet, nhrrob, swissspidy, mukesh27, afercia, jorbin.
Fixes #60625.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58323 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-23 22:47:16 +00:00
dmsnell 01d2199622 HTML API: Add support for missing FRAMESET and "after" insertion modes.
As part of work to add more spec support to the HTML API, this patch adds support for the FRAMESET-related insertion modes, as well as the set of missing after insertion modes. These modes run at the end of parsing a document, closing it and taking care of any lingering tags.

Developed in https://github.com/wordpress/wordpress-develop/7165
Discussed in https://core.trac.wordpress.org/ticket/61576

Props dmsnell, jonsurrell.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58322 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-23 15:42:17 +00:00
dmsnell e3a3c13497 HTML API: Parse DOCTYPE tokens and set HTML parser mode accordingly.
This patch adds until-now missing code to parse the structure of HTML DOCTYPE declarations. The DOCTYPE is mostly unused but can dictate the document compatability mode, which governs whether CSS class names match in a ASCII-case-insensitive way or not, and whether TABLE elements close an open P element.

The DOCTYPE information is made available through a new method on the Tag Processor, `get_doctype_info()`.

Developed in https://github.com/wordpress/wordpress-develop/pull/7195
Discussed in https://core.trac.wordpress.org/ticket/61576

Props dmsnell, jonsurrell.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58321 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-23 14:55:15 +00:00
Sergey Biryukov 83c2045588 Docs: Correct inline comment formatting in `redirect_canonical()`.
Follow-up to [57357].

See #61608.
Built from https://develop.svn.wordpress.org/trunk@58924


git-svn-id: http://core.svn.wordpress.org/trunk@58320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-22 23:47:15 +00:00
Peter Wilson 78a0c7a5b3 Date/Time: Prevent type errors in `current_time()`.
Prevents a potential type error when calling `current_time( 'timestamp' )` by casting `get_option( 'gmt_offset' )` to a float prior to performing calculations with the value.

This mainly accounts for incorrect storage of values, such as an empty string or city name.

Follow up to [45856], [55054], [55598].

Props hellofromtonya, peterwilsoncc, rarst, costdev, Nick_theGeek, SergeyBiryukov, johnbillion, desrosj, reputeinfosystems, audrasjb, oglekler.
Fixes #57035.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-22 23:27:24 +00:00
Pascal Birchler 2531f22a15 I18N: Add hardening for invalid meta lines in MO files.
Props swissspidy, pander.
Fixes #61794.
Built from https://develop.svn.wordpress.org/trunk@58922


git-svn-id: http://core.svn.wordpress.org/trunk@58318 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-22 08:08:28 +00:00
Sergey Biryukov cddaa30f95 Site Health: Check if the directories are allowed when testing for a VCS checkout.
As part of determining whether to perform automatic updates, WordPress checks if it is running within a version-controlled environment, recursively looking up the filesystem to the top of the drive, looking for a Subversion, Git, Mercurial, or Bazaar directory, erring on the side of detecting a VCS checkout somewhere.

This commit reuses `WP_Automatic_Updater::is_allowed_dir()` in the Site Health test to avoid a PHP warning if the `open_basedir` directive is in use and any of the directories checked in the process are not allowed:
{{{
is_dir(): open_basedir restriction in effect. File(/.git) is not within the allowed path(s)
}}}

Follow-up to [44986], [55425].

Props Keffr3n, narenin.
Fixes #61834.
Built from https://develop.svn.wordpress.org/trunk@58921


git-svn-id: http://core.svn.wordpress.org/trunk@58317 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-21 22:23:16 +00:00
hellofromTonya 337bee97b7 Tests: Remove 'errors' assertion when not WP_Error in Tests_Term_WpInsertTerm.
Removes the assertion for 'errors' being empty when the instance is `WP_Term` and not `WP_Error`. This property exists on `WP_Error`.

This assertion always passed because it was checking a dynamic property on `WP_Term` that does not exist and is not added within Core. Thus, this assertion is not needed and fails with dynamic property deprecations.

Follow-up to [51403], [34646], [29830].

See #61890, #61530.
Built from https://develop.svn.wordpress.org/trunk@58920


git-svn-id: http://core.svn.wordpress.org/trunk@58316 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-21 21:06:16 +00:00
hellofromTonya 84e11e89c0 Tests: Remove WP_Term::$filter property unset() within term tests.
Removes the `unset()` of the `WP_Term::$filter` property within the term tests.

Why?

Prior to the introduction of WP_Term, the term was added to the cache when its filter property was empty. To test the cache, the tests unset this property to trigger `wp_cache_add()` in `get_term()`. [34997] changed that behavior to trigger `wp_cache_add()` when the term was not found after `wp_cache_get()` (i.e. happened in `WP_Term::get_instance()`).

Unsetting the filter property is and was not needed. Prior to `WP_Term`, the condition was an empty value. With `WP_Term`, the filter property is no longer part of the conditional logic for caching.

Follow-up to [34997], [30954], [34035].

See #61890, #61530.
Built from https://develop.svn.wordpress.org/trunk@58919


git-svn-id: http://core.svn.wordpress.org/trunk@58315 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-20 20:07:16 +00:00
Sergey Biryukov 1aa22ca3c6 Taxonomy: Correct the check for error messages in `wp-admin/edit-tag-form.php`.
Instead of checking for a specific message, e.g. “Item not updated”, the `$_REQUEST['error']` variable is now checked. This allows for custom messages added via the `term_updated_messages` filter to be considered an error when appropriate, and displayed with the correct CSS class.

This also brings consistency with a similar check in `wp-admin/edit-tags.php`.

Follow-up to [31823], [44663].

Props xipasduarte.
Fixes #61896.
Built from https://develop.svn.wordpress.org/trunk@58918


git-svn-id: http://core.svn.wordpress.org/trunk@58314 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-20 17:50:16 +00:00
hellofromTonya fbf02475bc Media: Fix Media Library "Upload files" tab focus outline.
Adds a z-index to `.media-menu .media-menu-item:focus` to fix the "Upload files" tab's outline on the side next to the other tab.

Follow-up to [57553], [46363].

Props wildworks, antpb, huzaifaalmesbah, krupajnanda, nhrrob, oglekler, rajinsharwar, sabernhardt.
Fixes #60632.
Built from https://develop.svn.wordpress.org/trunk@58917


git-svn-id: http://core.svn.wordpress.org/trunk@58313 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-20 16:57:14 +00:00
joedolson a88967db6e Media: Fix admin image cropping calculations.
The admin image editor crop function introduced rounding errors by using a scaled image to calculate values. Fix uses the image at 100% scale for calculations. Also avoid recalculating selection when the selection position is changed, and prevent incorrect values after scaling or restoration.

Previously committed in [58456] and reverted in [58571]. The revert was due to a misattributed test failure.

Props Jossnaz, johnillo, shailu25, rachelbaker, sudipatel007, joedolson, kevin940726 , andrewserong, hmbashar.
Fixes #32282.
Built from https://develop.svn.wordpress.org/trunk@58915


git-svn-id: http://core.svn.wordpress.org/trunk@58311 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-19 20:47:17 +00:00
joedolson ce2b9f1fb2 Themes: Fix themes search event not firing on enter.
Attach the submit event to the parent search form in the installed and add new theme screen. Following [58405], the submit event was no longer attached to an object that was able to handle form submissions.

Props nithi22, nithins53, josklever, the-ank, debarghyabanerjee, sabernhardt, jeherve, hellofromtonya.
Fixes #61578.
Built from https://develop.svn.wordpress.org/trunk@58914


git-svn-id: http://core.svn.wordpress.org/trunk@58310 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-19 19:19:17 +00:00
Sergey Biryukov 4b49b0d168 Site Health: Correct the check for disk space available to safely perform updates.
The `wp-content/upgrade` directory does not exist initially after installation, so the Site Health check could not determine the available disk space until the directory was subsequently created during an update.

By testing `WP_CONTENT_DIR` instead, the check can complete successfully.

This also brings consistency with similar checks in `_unzip_file_ziparchive()` and `_unzip_file_pclzip()`.

Follow-up to [55720], [56401].

Props wbdv, khokansardar, mi5t4n, SergeyBiryukov.
Fixes #61602.
Built from https://develop.svn.wordpress.org/trunk@58913


git-svn-id: http://core.svn.wordpress.org/trunk@58309 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-19 15:21:14 +00:00
Sergey Biryukov 6c8056c2dd Tests: Bring some consistency to personal data email notification tests.
Includes:
* Adding a test for `wp_privacy_send_personal_data_export_email()` to verify the `user_request` post type.
* Reordering some pre-existing tests to check the request ID and post type first.

Follow-up to [43291], [43499], [44535].

Props garrett-eclipse, berubenic.
See #46560.
Built from https://develop.svn.wordpress.org/trunk@58912


git-svn-id: http://core.svn.wordpress.org/trunk@58308 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-18 23:45:16 +00:00
Tammie Lister 2a6b396d8d Twenty Seventeen Fixes search block button styles not being the same.
The search block button was not the same back and front for background, text and font weight. This also reflects in editor-blocks stylesheet.

Props viralsampat, pamprn, sabernhardt, shailu25.
Fixes #61888.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58307 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-18 11:27:17 +00:00
Tammie Lister 72899185b7 Twenty Fifteen: Fixes hover effect being different in editors for link.
The link hover effect was different between the editor and front. As links are rarely focusable in the editor this patch does not set the outline color also.

Props pitamdey, sabernhardt, mi5t4n.
Fixes #61844.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58306 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-18 09:30:12 +00:00
Tammie Lister 14b463ac91 Twenty Twenty: Fixes image block caption alignment not being centered on mobile.
The image block caption was not being centered on mobile. This was set to start at 1000 pixels and wider. This might have been intended to prevent wrapping, but you can resolve this by unselecting alignment.

Props spanglishwebs, sabernhardt, sudipatel007, shailu25.
Fixes #50317.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58305 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-18 09:15:14 +00:00
Tammie Lister 4267b760ef Twenty Twenty: Fixes pullquote block font size not changing.
The pullquote block was not reflecting the size changes. This also accounts for letter spacing in the editor.

Props kmadhak, SergeyBiryukov, nidhidhandhukiya, harshvaishnav, sabernhardt, shailu25.
Fixes #55975.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58304 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-17 20:12:09 +00:00
Tammie Lister 8ea2151eec Twenty Sixteen: Fixes pullquote block typography not working.
The pullquote block was not reflecting the typography changes. This updated patch keeps the size and also fixes the line height.

Props pranitdugad, nidhidhandhukiya, jorbin, darshitrayaguru97, yurajsinj2211, ankit-k-gupta, poena, sabernhardt, shailu25.
Fixes #59919.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58303 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-17 20:06:10 +00:00
Sergey Biryukov e7e1e6549f Upgrade/Install: Remove the return value of `_wp_delete_all_temp_backups()`.
This function is only utilized as a `shutdown` action callback, so the return value is not used anywhere.

`wp_trigger_error()` is now used instead under the same conditions.

Follow-up to [55720], [56342].

Props johnbillion, amitraj2203, narenin.
Fixes #61116.
Built from https://develop.svn.wordpress.org/trunk@58906


git-svn-id: http://core.svn.wordpress.org/trunk@58302 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-17 19:54:13 +00:00
Sergey Biryukov 8efc6e1807 Script Loader: Check if `error_reporting()` exists in `load-(scripts|styles).php`.
This avoids a fatal error on PHP 8 if `error_reporting()` is disabled in `php.ini`.

On systems with this function disabled, it's best to add a dummy function to the `wp-config.php` file, as there are multiple other calls in core or plugins.

However, as this call to the function is run prior to `wp-config.php` loading, it is now wrapped in a `function_exists()` check.

Follow-up to [50447].

Props gansbrest, sabernhardt, jrf, martin.krcho, SergeyBiryukov.
Fixes #61873.
Built from https://develop.svn.wordpress.org/trunk@58905


git-svn-id: http://core.svn.wordpress.org/trunk@58301 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-16 14:29:15 +00:00
Mamaduka bfcd875946 Editor: Fix preloaded REST API paths
When providing an incorrect path to preload, the `rest_preload_api_request` will silently fail, and nothing will be preloaded.

* Fix typo for `wp_template_part` post type preload path for the Site Editor.
* Do not preload the `wp_block` post type for post editors. The endpoint doesn't support unbound queries, and the data is no longer needed during editor initialization.

Props kirasong, tyxla, mamaduka.
Fixes #61884.
Built from https://develop.svn.wordpress.org/trunk@58904


git-svn-id: http://core.svn.wordpress.org/trunk@58300 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-16 06:23:17 +00:00
Aaron Jorbin af61bf819e Build/Test: update Props Bot to correct event type
The proper name is the plural `types`. This will cause the action to run only when necessary. Very Demure. Very mindful.

Ref: https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#issue_comment

Props jeherve.
Fixes #61883

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


git-svn-id: http://core.svn.wordpress.org/trunk@58299 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-15 17:48:16 +00:00
Sergey Biryukov c6324a7388 Script Loader: Remove redundant check in `wp_register_tinymce_scripts()`.
Since removing the build steps for a gzipped version of TinyMCE, the check whether gzip is supported on the server is superfluous. It may also result in the uncompressed files being used when the compressed files are available and could be used.

Follow-up to [44114], [44651].

Props MattyRob, hbhalodia.
Fixes #61862.
Built from https://develop.svn.wordpress.org/trunk@58902


git-svn-id: http://core.svn.wordpress.org/trunk@58298 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-15 14:58:16 +00:00
Peter Wilson 1b400d5c47 Build/test tools: Remove prompt for trac ticket referenced with `Core-` prefix.
Prevents the GitHub bot from posting a comment on pull requests requesting a trac ticket link if the ticket description includes a link via the Core- prefix, eg Core-61865.

The WordPress/WordPress-Develop repository is configured to automatically convert the text to a trac ticket link.

Props martinkrcho, peterwilsoncc.
Fixes #61865.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58297 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-15 04:58:16 +00:00
Peter Wilson af6ec4afee Meta: Tidy up and update `.mailmap`.
Updates the name mappings to sort display names ascii-alphabetically and to ascribe commits to updated usernames.

Accounts without a seperate display name remain listed in the footer of the file.

Props dmsnell, jorbin.
See #61864.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58296 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-15 04:25:16 +00:00
dmsnell 8d8bd66d02 Meta: Add .mailmap to ascribe git commits to proper author.
From time to time a new commit will appear from an existing commit which has a different name or email address (or both) than an existing name or email address. This occurs because of changing names and changing emails and because of mistakes. Additionally, the `svg`-to-`git` process double-encodes names from `profiles.wordpress.org` causing corruption in names with non-US-ASCII characters.

This patch introduces a `.mailmap` file to alias committers so that:

 - All contributions for a given person are shown for that person.
 - Committers will be able to control or fix the display of their own name.

The `.mailmap` file is a standard `git` configuration.

Developed in https://github.com/wordpress/wordpress-develop/pull/7180
Discussed in https://core.trac.wordpress.org/ticket/61864

Fixes #61864.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58295 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-14 22:57:16 +00:00
dmsnell 5cd8048fc2 HTML API: Make "reset insertion mode appropriately" algorithm private.
The algorithm is described and referred to in the specification as
"reset the insertion mode appropriately." This patch renames it to
more accurately reflect the specification, and it turns the public
method private. As an internal algorithm from the HTML specification
it should not be open to extension.

Developed in https://github.com/wordpress/wordpress-develop/pull/7194
Discussed in https://core.trac.wordpress.org/ticket/61549

Follow-up to [28656].
Props jonsurrell.
See #61549.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58294 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-14 21:19:16 +00:00
dmsnell edd34df6ea HTML API: Use strict in_array comparison for checking URI attributes.
This patch modifies the URL-escaping code in the HTML API to rely on strict comparisons. This prevents accidental matching via type-coercion.

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

Follow-up to [58473].
Props jonsurrell.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58293 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-14 19:51:17 +00:00
hellofromTonya 713e76f16b Editor: Fix block custom CSS pseudo element selectors in global styles.
Fixes a regression introduced in [58241] where selectors with pseudo elements are wrapped within `:where()` causing malformed CSS and the CSS rule(s) not being applied.

When processing custom CSS for blocks, this changeset:

* Strips the pseudo-elements from the original nested selector, performs the required wrapping in `:root :where`, then re-appends the pseudo-element selector with its leading combinators if present.
* Removes empty CSS rules.

It includes the PHP changes.

Reference:
* PHP changes from [https://github.com/WordPress/gutenberg/pull/63980 Gutenberg PR 63980].

Follow-up to [58241], [56812], [55216].

Props aaronrobertshaw, wongjn, harlet7, dballari, ramonopoly, andrewserong, aristath, hellofromTonya.
Fixes #61769.
Built from https://develop.svn.wordpress.org/trunk@58896


git-svn-id: http://core.svn.wordpress.org/trunk@58292 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-14 18:57:19 +00:00
Sergey Biryukov 87ec4292ae Network Admin: Improve button alignment in Right Now dashboard widget.
Follow-up to [16237].

Props sabernhardt.
Fixes #61869.
Built from https://develop.svn.wordpress.org/trunk@58895


git-svn-id: http://core.svn.wordpress.org/trunk@58291 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-14 16:05:18 +00:00
Peter Wilson c1af99e7e6 Bulk/Quick Edit: Remove duplicate HTML IDs from post list tables.
Removes duplicate IDs on the post list admin pages affecting various list items, selects and checkboxes:

* JavaScript duplication of the inline editing HTML for bulk editing renames various IDs to include the prefix `bulk-edit-`,
* IDs in the Category Checkbox Walker make use of `wp_unique_prefixed_id()` to avoid duplicates, resulting in a numeric suffix, and,
* the post parent dropdown for the bulk editor is given a custom ID `bulk_edit_post_parent`.

Props peterwilsoncc, sergeybiryukov, azaozz, joedolson, siliconforks, zodiac1978, rcreators.
Fixes #61014.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58290 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-13 23:37:16 +00:00
dmsnell f957219299 HTML API: Only stop on full matches for requested tag name.
An optimization pass on the HTML API left a bug in the `matches()`
method, whereby it would falsely detect a tag name match if the
found tag were a lexical subset of the requested tag. This occurred
because of the use of `substr_compare()` without checking that the
outer lengths matched.

This patch resolves the bug by adding the length check.

Developed in https://github.com/wordpress/wordpress-develop/pull/7189
Discussed in https://core.trac.wordpress.org/ticket/61545

Follow-up to [58613].
Props dmsnell, westonruter.
See #61545.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58289 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-13 22:14:16 +00:00
dmsnell 9aaf4b144a HTML API: Remove unnecessary skips in tests for unsupported markup.
The HTML API allowed tests to be skipped for unsupported HTML, for example tags that had not yet been implemented. This provided stability to the test suite while primary support was being added.

In many places, the tags are now fully supported and the test skips can be removed.

Developed in https://github.com/wordpress/wordpress-develop/pull/7186
Discussed in https://core.trac.wordpress.org/ticket/61646

Props jonsurrell.
See #61646.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58288 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-13 21:44:18 +00:00
hellofromTonya 30cd5e4ea0 Editor: Fix bumped specificity for layout styles in non-iframed editor.
Fixes a regression introduced in [58241] which inadvertently bumped the specificity in a non-iframed editor for `.editor-styles-wrapper .is-layout-flow > *` from (0,1,0) to (0,2,0). This fix restores theme.json spacing rules taking precedence over the implicit spacing rules in a non-iframed editor.

**The What**

When the block editor is not iframed (which can happen when Custom Fields are active, or blocks that use and older `apiVersion` are present), style rules are processed using post css to append the `.editor-styles-wrapper` class name. This has the effect of scoping the the style rules to ensure they don't affect the editor chrome or admin.

With [58241], one of the rules was changed to `.is-layout-flow > *`. In a iframed editor, the specificity of this rule is okay (0,1,0), but in a non-iframed editor it becomes `.editor-styles-wrapper .is-layout-flow > *`, a specificity of (0,2,0). Comparing this to before [58241], the same rule was `.editor-styles-wrapper :where(body .is-layout-flow) > *` (specificity 0,1,0). This is a regression in specificity that has caused some issues. Notably themes can no longer properly override the spacing for blocks using theme.json and have the results correctly shown in the non-iframed editor.

**The How**

This changeset modifies the selector to `:root :where(.is-layout-flow) > *` (still specificity 0,1,0). `transformStyles` handles 'root' selectors a little differently, it'll instead replace the `:root` part so it becomes `.editor-styles-wrapper where(.is-layout-flow) > *` (keeping the specificity at 0,1,0).

The other layout selector that this affects is the `:first-child` `:last-child` selectors that are responsible for resetting margin at the start and end of a block list. They traditionally have a 0,2,0 specificity so that they can override both the above rule and any rules in the theme.json. Those selectors are also maintained at 0,2,0 with this change, they become something like `:root :where(.is-layout-flow) > :first-child`.

**References:**
* PHP changes from [https://github.com/WordPress/gutenberg/pull/64076 Gutenberg PR 64076].

Follow-up to [58241], [58228], [55956], [54162].

Props talldanwp, aaronrobertshaw, andrewserong, markhowellsmead, ramonopoly, hellofromTonya.
Fixes #61829.
Built from https://develop.svn.wordpress.org/trunk@58890


git-svn-id: http://core.svn.wordpress.org/trunk@58286 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-13 17:45:18 +00:00
Sergey Biryukov 6eebb7cd54 Coding Standards: Replace an empty `foreach` loop in `wp_replace_in_html_tags()`.
This aims to clarify the intention of the code and improve readability.

Follow-up to [33359].

Props jrf, TobiasBg, mi5t4n, dhruvang21, mayura8991, nadimcse, Presskopp, SergeyBiryukov.
Fixes #61860.
Built from https://develop.svn.wordpress.org/trunk@58889


git-svn-id: http://core.svn.wordpress.org/trunk@58285 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-13 16:29:18 +00:00
Sergey Biryukov 0058fa9195 Coding Standards: Bring some consistency to setting up comment moderation links.
Follow-up to [7082], [7175], [9103], [10102], [11749], [12008], [12286], [32516].

Props kebbet.
See #61607.
Built from https://develop.svn.wordpress.org/trunk@58888


git-svn-id: http://core.svn.wordpress.org/trunk@58284 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-12 21:28:13 +00:00
Tammie Lister cda3a2e2b3 Twenty Twelve: Fixes navigation block submenus being cut off.
The navigation block submenus were being cut off. This is the simpler method proposed in patches.

Props poena, sabernhardt.
Fixes #61672.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58283 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-12 15:19:16 +00:00
Tammie Lister 95f6808e03 Twenty Seventeen: Fixes Pullquote block text color not changing on front.
The Pullquote block text color was not changing on the front. This overrides the inlined styles.

Props iamjaydip, laurelfulford, sabernhardt.
Fixes #46080.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58282 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-12 13:44:15 +00:00
Tammie Lister 4f8f6e9fa2 Twenty Twelve: Fixes Button block outline style having wrong text color on front.
The Button block has a different text color on the front to the editor when you apply text color. This resolves it without changing other styles.

Props pitamdey, ugyensupport, sabernhardt.
Fixes #61846.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58281 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-12 10:56:16 +00:00
Peter Wilson 8fa1b1d696 Site Health: Check if directories exist before checking size.
Prevents the Site Health Debug tab from stalling when reporting directory sizes if the directory does not exist.

Props clorith, aristath, narenin, kowsar89, hellofromTonya, ironprogrammer, shailu25.
Fixes #61638.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58280 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-12 04:54:15 +00:00
Sergey Biryukov a596bd6848 Docs: Switch canonical location for the `comment_row_actions` filter.
This aims to bring consistency with the other `*_row_actions` filters.

Follow-up to [6705], [8217], [9103], [15491], [26138], [27669].

See #61608.
Built from https://develop.svn.wordpress.org/trunk@58883


git-svn-id: http://core.svn.wordpress.org/trunk@58279 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-11 21:10:13 +00:00
Tammie Lister c057097377 Twenty Twelve: Fixes Code block font family difference in editors.
The Code block font family was different in the front-end and the editor. This resolves the overruling in the iframe editor.

Props pitamdey, sabernhardt.
Fixes #61808.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58278 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-11 14:26:17 +00:00
Tammie Lister 3b734c3e0b Twenty Nineteen: Fixes translatable strings with HTML code not appearing.
Only the translatable part not HTML, should appear for translators to avoid issues. This resolves one string that was not appearing. This only fixed for one theme although discussion on the ticket was for multiples. Other tickets should be open for those if desireable.

Props Presskopp, SergeyBiryukov, pratikkry, pento, mukesh27, laurelfulford, kjellr, desrosj, sabernhardt.
Fixes #45473.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58277 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-11 09:45:17 +00:00
Peter Wilson d09e94165e External Libraries: Update the Underscore.js library to version 1.13.7.
This updates the Underscore library from version 1.13.6 to 1.13.7. This is a minor bug fix release.

The full list of changes can be found in the Underscore.js change log: https://underscorejs.org/#changelog.

Props hbhalodia, aristath, desrosj, mcrisp1972.
Fixes #61836.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58276 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-10 23:57:16 +00:00
Sergey Biryukov 8a164c4d9c Administration: Replace contracted verb forms for better consistency.
Follow-up to [14951], [37221], [52979], [52978], [55977].

Props kebbet, sabernhardt.
Fixes #58639.
Built from https://develop.svn.wordpress.org/trunk@58879


git-svn-id: http://core.svn.wordpress.org/trunk@58275 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-10 23:02:06 +00:00
Peter Wilson bf103e6621 Code Quality: Clarify variable names in dependency classes.
Renames several variables in the `WP_Scripts` and `WP_Styles` classes to clarify their purpose for developers reading the code.

Props peterwilsoncc, sergeybiryukov.
See #61607.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58274 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-10 23:00:14 +00:00
dmsnell 98e51518b3 HTML API: Remove completed TODO comments.
This patch removes TODO comments indicating the need to verify certain behaviors and algorithms. Those verifications have taken place and the comments are no longer needed.

Developed in https://github.com/wordpress/wordpress-develop/pull/7174
Discussed in https://core.trac.wordpress.org/ticket/61646

Follow-up to [58867], [58870].

Props jonsurrell.
See #64646.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58273 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-10 05:00:14 +00:00
Felix Arntz 79e47b14ab Build/Test Tools: Avoid using `wp_delete_user()` in PHPUnit tests unless explicitly acknowledging or ignoring Multisite.
`wp_delete_user()` does not actually delete the entire user when using WordPress Multisite. Therefore tests should typically use the test helper method to fully delete the user, unless explicitly ignoring Multisite or testing the `wp_delete_user()` function while taking Multisite behavior into account.

Fixes #61851.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58272 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-09 18:31:13 +00:00
Felix Arntz 3fdbfb0f4a Comments: Add optional `$context` parameter to `get_edit_comment_link()` to get the URL without HTML entities.
This brings the function in line with the similar `get_edit_post_link()` parameter. The 'get_edit_comment_link' filter now additionally receives the `$comment_id` and `$context` as parameters.

Additionally, as a minor enhancement, the capability check is now more defensive, as it will no longer cause an error if the given comment ID is invalid.

As part of the changeset, comprehensive test coverage for the `get_edit_comment_link()` including the new behavior is added.

Props deepakrohilla.
Fixes #61727.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58271 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-09 18:01:19 +00:00
Sergey Biryukov ddab80be2c Docs: Remove unsupported values in `plugins_api()` DocBlocks.
The `group` field and the `hot_categories` action were never actually implemented on the WordPress.org side.

Follow-up to [34596], [meta3227].

Props lopo, milana_cap.
See #55645.
Built from https://develop.svn.wordpress.org/trunk@58873


git-svn-id: http://core.svn.wordpress.org/trunk@58269 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-09 00:18:16 +00:00
desrosj 32bf860db4 External Libraries: Update the Backbone.js library to version `1.6.0`.
This updates the `backbone` library from version `1.5.0` to `1.6.0`. This is a minor bug fix release.

The full list of changes can be found in the Backbone.js change log: https://backbonejs.org/#changelog.

Props manooweb mardroid.
Fixes #60512.
Built from https://develop.svn.wordpress.org/trunk@58872


git-svn-id: http://core.svn.wordpress.org/trunk@58268 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-08 19:37:19 +00:00
dmsnell c834d20762 HTML API: Test and fix SVG script handling.
When support was added for foreign content, an ambiguity in the HTML specification led to code that followed the wrong path when encountering a self-closing SCRIPT element in the SVG namespace. Further, a fallthrough was discovered during manual testing.

This patch adds a new test to assert the proper behaviors and fixes these issues. In the case of the SCRIPT element, the outcome was the same with the wrong code path, making the defect benign. In the case of the fallthrough, the wrong behavior would occur.

The updates in this patch also resolves a todo relating to the spec ambiguity.

Developed in https://github.com/wordpress/wordpress-develop/pull/7164
Discussed in https://core.trac.wordpress.org/ticket/61576

Follow-up to [58868].

Props: dmsnell, jonsurrell.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58267 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-08 17:04:19 +00:00
dmsnell 7611ec9415 HTML API: `expect_closer()` should report false for self-closing foreign elements.
Previously, `WP_HTML_Processor::expects_closer()` would report `true` for self-closing foreign elements when called without supplying a node in question, but it should have been reporting `true` just as it does for HTML elements.

This patch adds a test case demonstrating the issue and a bugfix.

The `html5lib` test runner was relying on the incorrect behavior, accidentally working. This is also corrected and the `html5lib` test now relies on the correct behavior of `expects_closer()`.

Developed in https://github.com/wordpress/wordpress-develop/pull/7162
Discussed in https://core.trac.wordpress.org/ticket/61576

Follow-up to [58868].

Props: dmsnell.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58266 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-08 16:15:20 +00:00
dmsnell ed0e5cff79 HTML API: Add support for SVG and MathML (Foreign content) (remove file)
As part of work to add more spec support to the HTML API, this patch adds support for SVG and MathML elements, or more generally, "foreign content."

The rules in foreign content are a mix of XML and HTML parsing rules and introduce additional complexity into the processor, but is important in order to avoid getting lost when inside these elements.

This patch follows the first by deleting the empty files, which were mistakenly left in during the initial merge.

Developed in https://github.com/wordpress/wordpress-develop/pull/6006
Discussed in https://core.trac.wordpress.org/ticket/61576

Follow-up to [58867].

Props: dmsnell, jonsurrell, westonruter.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58264 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-08 07:33:19 +00:00
dmsnell 1ffe7a456c HTML API: Add support for SVG and MathML (Foreign content)
As part of work to add more spec support to the HTML API, this patch adds
support for SVG and MathML elements, or more generally, "foreign content."

The rules in foreign content are a mix of XML and HTML parsing rules and
introduce additional complexity into the processor, but is important in
order to avoid getting lost when inside these elements.

Developed in https://github.com/wordpress/wordpress-develop/pull/6006
Discussed in https://core.trac.wordpress.org/ticket/61576

Props: dmsnell, jonsurrell, westonruter.
See #61576.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58263 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-08 07:25:15 +00:00
dmsnell f200230d18 HTML API: Ensure that `get_modifiable_text()` reads enqueued updates.
When `set_modifiable_text()` was added to the Tag Processor, it was considered that the same information could be queried after setting its value and before proceeding to the next token, but unfortunately overlooked that if the starting modifiable text length was zero, then the read in `get_modifiable_text()` would ignore enqueued updates.

In this patch, `get_modifiable_text()` will read any enqueued values before reading from the input HTML document to ensure consistency.

Follow-up to [58829].
Props dmsnell, jonsurrell, ramonopoly.
Fixes #61617.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58262 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-08 04:26:13 +00:00
Sergey Biryukov 0fca569339 Docs: Correct alignment for `rest_insert_attachment` action DocBlock.
Follow-up to [39348].

Props krupalpanchal.
See #61608.
Built from https://develop.svn.wordpress.org/trunk@58865


git-svn-id: http://core.svn.wordpress.org/trunk@58261 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-08 02:27:18 +00:00
hellofromTonya 25cd14c509 Docs: Remove bugfix since annotations from WP_Theme_JSON::get_block_nodes().
Removes the `@since` bugfix annotations from `WP_Theme_JSON::get_block_nodes()` docblock. Bugfixes are not annotated in docblocks.

Follow-up to [58856].
See #61704.
Built from https://develop.svn.wordpress.org/trunk@58864


git-svn-id: http://core.svn.wordpress.org/trunk@58260 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-07 19:58:17 +00:00
desrosj cb0f56f131 External Libraries: Update the `whatwg-fetch` polyfill library.
This updates the `whatwg-fetch` library from version `3.6.17` to `3.6.20`, the latest current version.

This library is included and registered within WordPress as the `wp-polyfill-fetch` script but is no longer used by WordPress itself. Updates are provided as a courtesy, and all projects using this polyfill should reevaluate usage.

Props manooweb.
Fixes #60514.
Built from https://develop.svn.wordpress.org/trunk@58860


git-svn-id: http://core.svn.wordpress.org/trunk@58256 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-07 15:52:22 +00:00
dmsnell c4cd3c1c4b HTML API: Use full parser in html5lib tests.
Previously the `html5lib` tests have only run in the fragment parser mode,
assuming IN BODY context. This limited the number of tests which could run
and was a result of the HTML Processor only supporting the IN BODY fragment
parser. In [58836], however, a full parser was added to the HTML Processor.

In this patch the full parser is utilized in order to run more of the
previously-skipped tests, asserting more behaviors in the HTML parsing.

Developed in https://github.com/wordpress/wordpress-develop/pull/7117
Discussed in https://core.trac.wordpress.org/ticket/61646

Props: dmsnell, jonsurrell.
See #61646.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58255 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-06 22:07:19 +00:00
dmsnell ac4ebc8d07 HTML API: Truncated funky comments should cause the Tag Processor to pause.
A state change was missing in the Tag Processor when the input is too short to
find a comment closer after an opened funky comment. This patch fixes a issue
where `</#` does not correctly report incomplete input, but `</# ` does.

Developed in https://github.com/wordpress/wordpress-develop/pull/7146
Discussed in https://core.trac.wordpress.org/ticket/61831

Props: jonsurrell.
Fixes #61831.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58254 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-06 20:43:18 +00:00
Sergey Biryukov 1396f6e30c Site Health: Clarify the description for `max_file_uploads` in Site Health Info.
Follow-up to [48535].

Props iflairwebtechnologies, hbhalodia, mukesh27, SergeyBiryukov.
Fixes #61814.
Built from https://develop.svn.wordpress.org/trunk@58857


git-svn-id: http://core.svn.wordpress.org/trunk@58253 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-06 13:22:11 +00:00
talldanwp f2bf0373a5 Theme JSON: Ensure root selector (body) is not wrapped in :root :where().
Pre-WordPress 6.6, the `body` selector was used for styles associated with the body.

In 6.6, this was mistakenly changed to `:root :where(body)`, an increase in specificity, causing some issues for themes.

This change reverts the specificity increase, styles again use the `body` selector.

Syncs PHP changes from https://github.com/WordPress/gutenberg/pull/63726.

Props talldanwp, andrewserong, aaronrobertshaw, mukesh27, hellofromtonya.
Fixes #61704.


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


git-svn-id: http://core.svn.wordpress.org/trunk@58252 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-06 08:26:12 +00:00
dmsnell dc84e3d2c2 WP_Debug_Data: Extract `wp-constants` data into separate method.
This is the part two in a larger modularization of the data in `WP_Debug_Data`.
Previously this was a single massive method drawing in debug data from various
groups of related data, where the groups were independent from each other.

This patch separates the second of twelve groups, the `wp-constants` info,
into a separate method focused on that data.

This work precedes changes to make the `WP_Debug_Data` class more extensible
for better use by plugin and theme code.

Developed in https://github.com/wordpress/wordpress-develop/pull/7106
Discussed in https://core.trac.wordpress.org/ticket/61648

Props: apermo, costdev, dmsnell.
See #61648.

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


git-svn-id: http://core.svn.wordpress.org/trunk@58251 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-05 21:39:11 +00:00
Sergey Biryukov 1a2b5794da Menus: Check if taxonomy term exists in `wp_update_nav_menu_item()`.
When inserting a term from a non-existing taxonomy as a nav item, the `post_title` property should be empty, and the function should not throw a fatal error for `wp_specialchars_decode()`.

Includes bringing some consistency to similar checks for post types and post type archives in the same code fragment.

Follow-up to [14283], [14450], [35382], [36095].

Props dd32, narenin, mukesh27, SergeyBiryukov.
Fixes #61799.
Built from https://develop.svn.wordpress.org/trunk@58854


git-svn-id: http://core.svn.wordpress.org/trunk@58250 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-08-05 19:00:19 +00:00