Commit Graph

55 Commits

Author SHA1 Message Date
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
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
Peter Wilson
f4fb98f366 Script Loader: Improve asset concatenation Etags.
Include the asset version of JavaScript and CSS files when generating the ETag for concatenated assets in `load-scripts.php` and `load-styles.php`. This ensures the ETag is updated as script versions change (for example editor package updates) rather than only when the WordPress version changes.

The `W\` prefix is added to the generated ETag to allow for CDNs and proxy servers modifying the script to add or improve the compression algorithm.

Props azaozz, dav4, ironprogrammer, johnbillion, kkmuffme, monzuralam, peterwilsoncc, sergeybiryukov.
Fixes #58433.

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


git-svn-id: http://core.svn.wordpress.org/trunk@57440 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-04-07 23:53:19 +00:00
Sergey Biryukov
3e3c741d08 Database: Replace str_contains() and str_ends_with() usage in wpdb methods.
This avoids fatal errors on PHP < 8.0 if the file is included directly outside of WordPress core, e.g. by HyperDB.

While WordPress core does include polyfills for these functions, they are not directly loaded in the `wpdb` class.

Follow-up to [54384], [55157], [55158], [55988], [55990].

Props dd32, ryelle, joedolson.
See #58206.
Built from https://develop.svn.wordpress.org/trunk@55994


git-svn-id: http://core.svn.wordpress.org/trunk@55506 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-06-23 12:17:24 +00:00
Sergey Biryukov
27c4548f19 General: Restore strpos() check in wp-admin/load-styles.php.
This resolves a fatal error on PHP < 8.0, as `wp-includes/compat.php` is not loaded in this file, so `str_starts_with()` may not be available.

Follow-up to [55703].

Props dd32, flixos90, DigTek.
Fixes #58244. See #58012.
Built from https://develop.svn.wordpress.org/trunk@55710


git-svn-id: http://core.svn.wordpress.org/trunk@55222 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-05-03 15:46:22 +00:00
Sergey Biryukov
2ec23a82ed Code Modernization: Replace usage of strpos() with str_starts_with().
`str_starts_with()` was introduced in PHP 8.0 to perform a case-sensitive check indicating if the string to search in (haystack) begins with the given substring (needle).

WordPress core includes a polyfill for `str_starts_with()` on PHP < 8.0 as of WordPress 5.9.

This commit replaces `0 === strpos( ... )` with `str_starts_with()` in core files, making the code more readable and consistent, as well as improving performance.

While `strpos()` is slightly faster than the polyfill on PHP < 8.0, `str_starts_with()` is noticeably faster on PHP 8.0+, as it is optimized to avoid unnecessarily searching along the whole haystack if it does not find the needle.

Follow-up to [52039], [52040], [52326].

Props spacedmonkey, costdev, sabernhardt, mukesh27, desrosj, jorbin, TobiasBg, ayeshrajans, lgadzhev, SergeyBiryukov.
Fixes #58012.
Built from https://develop.svn.wordpress.org/trunk@55703


git-svn-id: http://core.svn.wordpress.org/trunk@55215 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-05-02 15:45:22 +00:00
Sergey Biryukov
75fc6b755b Docs: Update a comment in wp-admin/load-styles.php per the documentation standards.
Follow-up to [52352].

See #53399.
Built from https://develop.svn.wordpress.org/trunk@52356


git-svn-id: http://core.svn.wordpress.org/trunk@51948 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-12-12 14:52:02 +00:00
Sergey Biryukov
3beb1d25ab Docs: Correct the format of some comments per the documentation standards.
Follow-up to [10357], [10939], [43309], [51003], [51266], [51653], [51738], [52110].

See #53399.
Built from https://develop.svn.wordpress.org/trunk@52352


git-svn-id: http://core.svn.wordpress.org/trunk@51944 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-12-10 20:30:05 +00:00
davidbaumwald
d5f7417686 Bootstrap/Load: Add HTTP/3 as a valid HTTP protocol.
As of November 2021, the `HTTP/3` protocol is still officially an Internet Draft, but is already supported by 74% of running web browsers and, according to W3Techs, 23% of the top 10 million websites. It has been supported by Google Chrome (including Chrome for Android, and Microsoft Edge, which is based on it) since April 2020 and by Mozilla Firefox since May 2021. Safari 14 (on macOS Big Sur and iOS 14) has also implemented the protocol but support is hidden behind a feature flag.

Based on the wide support, this change adds `HTTP/3` as a valid HTTP protocol.

Props malthert.
Fixes #54404.
Built from https://develop.svn.wordpress.org/trunk@52087


git-svn-id: http://core.svn.wordpress.org/trunk@51679 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-11-09 23:07:01 +00:00
jorgefilipecosta
d8fe393934 Add: Public functions for interacting with global styles & settings.
This commit ports the public functions to interact with the global styles & settings.

See #54336.
Props oandregal.
Built from https://develop.svn.wordpress.org/trunk@52054


git-svn-id: http://core.svn.wordpress.org/trunk@51646 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-11-08 21:45:58 +00:00
Sergey Biryukov
033c742a4e Block Editor: Load the WP_Theme_JSON_Resolver class in wp-admin/load-styles.php.
This ensures correct load order when style concatenation is used, e.g. when `SCRIPT_DEBUG` is off.

Additionally, make sure the `WP_CONTENT_DIR` constant is defined for use in `get_theme_root()` via `get_stylesheet_directory()`.

Follow-up to [50992], [51001], [51013].

Props nosolosw.
See #53175.
Built from https://develop.svn.wordpress.org/trunk@51056


git-svn-id: http://core.svn.wordpress.org/trunk@50665 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-06-01 23:09:58 +00:00
Sergey Biryukov
7b192d406a Coding Standards: Fix instances of Generic.WhiteSpace.ArbitraryParenthesesSpacing.FoundEmpty.
See #49542.
Built from https://develop.svn.wordpress.org/trunk@47855


git-svn-id: http://core.svn.wordpress.org/trunk@47631 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-26 09:37:10 +00:00
Sergey Biryukov
aa69c25d5f Coding Standards: Use strict comparison in some wp-admin files.
Props pikamander2, mukesh27, SergeyBiryukov.
Fixes #49239.
Built from https://develop.svn.wordpress.org/trunk@47785


git-svn-id: http://core.svn.wordpress.org/trunk@47561 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-12 18:32:08 +00:00
Sergey Biryukov
38676936ba Coding Standards: Use strict type check for in_array() and array_search() where strings are involved.
This reduces the number of `WordPress.PHP.StrictInArray.MissingTrueStrict` issues from 486 to 50.

Includes minor code layout fixes for better readability.

See #49542.
Built from https://develop.svn.wordpress.org/trunk@47550


git-svn-id: http://core.svn.wordpress.org/trunk@47325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-04-05 03:02:11 +00:00
Sergey Biryukov
47ed56f38f Code Modernization: Replace dirname( __FILE__ ) calls with __DIR__ magic constant.
This avoids the performance overhead of the function call every time `dirname( __FILE__ )` was used instead of `__DIR__`.

This commit also includes:

* Removing unnecessary parentheses from `include`/`require` statements. These are language constructs, not function calls.
* Replacing `include` statements for several files with `require_once`, for consistency:
 * `wp-admin/admin-header.php`
 * `wp-admin/admin-footer.php`
 * `wp-includes/version.php`

Props ayeshrajans, desrosj, valentinbora, jrf, joostdevalk, netweb.
Fixes #48082.
Built from https://develop.svn.wordpress.org/trunk@47198


git-svn-id: http://core.svn.wordpress.org/trunk@46998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-02-06 06:33:11 +00:00
Sergey Biryukov
001ffe81fb Docs: Improve inline comments per the documentation standards.
Includes minor code layout fixes for better readability.

See #48303.
Built from https://develop.svn.wordpress.org/trunk@47122


git-svn-id: http://core.svn.wordpress.org/trunk@46922 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-01-29 00:45:18 +00:00
Sergey Biryukov
7dbc4d28e5 Script Loader: Send a 400 Bad Request status code in load-scripts.php and load-styles.php if the required load[] parameter is not set.
Props compilenix.
Fixes #44108.
Built from https://develop.svn.wordpress.org/trunk@45731


git-svn-id: http://core.svn.wordpress.org/trunk@45542 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-08-03 22:17:57 +00:00
Andrew Ozz
6de52463a7 Script loader: prevent sorting of the load array in the query string when passing the script handles to load-scripts.php and load-styles.php.
Fixes #45346 #26886.
Built from https://develop.svn.wordpress.org/trunk@45456


git-svn-id: http://core.svn.wordpress.org/trunk@45267 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-05-28 02:43:55 +00:00
Andrew Ozz
1521b64337 Script loader: remove (PHP based) compression from load-styles.php and load-scripts.php. WIth the amount of scripts and stylesheets grown a lot over the years, it has become pretty slow and consumes a lot of server resources. Also, most servers are set to compress PHP output anyway.
Props LucasRolff, azaozz.

Fixes #44815.
See #43308.
Built from https://develop.svn.wordpress.org/trunk@43580


git-svn-id: http://core.svn.wordpress.org/trunk@43409 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-20 13:51:24 +00:00
Gary Pendergast
aaf99e6913 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.


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


git-svn-id: http://core.svn.wordpress.org/trunk@42172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-11-30 23:11:00 +00:00
Scott Taylor
a3ffebce30 Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389.
See #36335.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38411 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-31 16:31:29 +00:00
Scott Taylor
2a9b372471 Script Loader: autoload in load-{scripts|styles}.php.
Props JohnPBloch.
See #36335.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38353 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-28 00:07:33 +00:00
Sergey Biryukov
4074bcc6a1 Bootstrap/Load: Allow for ABSPATH to be defined outside of wp-load.php, e.g. in a script loaded via auto_prepend_file.
Props barry.
Fixes #26592.
Built from https://develop.svn.wordpress.org/trunk@37207


git-svn-id: http://core.svn.wordpress.org/trunk@37173 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-04-14 17:53:28 +00:00
Dion Hulse
987ce83cfc CSS: Stop using wp-admin.min.css and instead queue the individual stylesheets up through load-styles.php.
We still generate the `wp-admin.*` files for compabitility purposes, however they only include the `@import()` lines.

Fixes #35229

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


git-svn-id: http://core.svn.wordpress.org/trunk@36308 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-01-18 09:57:29 +00:00
Pascal Birchler
9ea68bc533 Script Loader: Add Etag: $wp_version header in load-scripts.php and load-styles.php.
This improves performance since browsers won't re-download the scripts and styles when there was no change in `$wp_version`.

Props sergej.mueller, dd32, swissspidy.
Fixes #28722.
Built from https://develop.svn.wordpress.org/trunk@36312


git-svn-id: http://core.svn.wordpress.org/trunk@36279 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-01-15 10:23:25 +00:00
Scott Taylor
b9bbdabfe7 Create a new file, wp-admin/includes/noop.php, which loads all of the noop functions for load-script|styles.php and is only loaded by those files. DRYs in the process.
See #33813.

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


git-svn-id: http://core.svn.wordpress.org/trunk@34005 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-11 05:04:23 +00:00
Scott Taylor
ef87172270 foreach is a statement, not a function.
See #33491.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-25 20:28:22 +00:00
Scott Taylor
c6a4512b1b Add missing doc blocks to wp-admin/includes/*.
Fix some egregious uses of tabbing.
Some functions can simply return `apply_filters(...)` instead of setting a variable that is immediately returned.

See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-29 20:17:26 +00:00
Andrew Nacin
b35982cbff Simplify the setup-config.php UI flow and load process.
When no configuration file is detected, we now redirect to setup-config.php. This process now uses the WordPress bootstrap, rather than a set of fragile hacks.

fixes #28740.

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


git-svn-id: http://core.svn.wordpress.org/trunk@28767 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-03 19:57:14 +00:00
Scott Taylor
0ef5c92164 Admin screens should use the WPINC constant
Props wojtek.szkutnik
See #14157.

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


git-svn-id: http://core.svn.wordpress.org/trunk@28705 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-29 22:21:15 +00:00
Sergey Biryukov
a73ce3610b Force UTF-8 in load-styles.php, like we do in load-scripts.php.
props iamfriendly, mjbanks.
fixes #25012.
Built from https://develop.svn.wordpress.org/trunk@27253


git-svn-id: http://core.svn.wordpress.org/trunk@27110 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-25 01:28:15 +00:00
Dion Hulse
a0f43f5cbf Style Concatenation: Fix loading of dashicons non-woff files when concatenation is in use. Fixes #26250
Built from https://develop.svn.wordpress.org/trunk@26374


git-svn-id: http://core.svn.wordpress.org/trunk@26274 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-26 01:47:10 +00:00
Andrew Nacin
1b3e9d33ce Fix new RTL file loading when style concatenation is enabled.
see #24977.

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


git-svn-id: http://core.svn.wordpress.org/trunk@26040 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-13 05:10:10 +00:00
Andrew Nacin
93ca609f53 Unique load array in load-scripts and load-styles.
git-svn-id: http://core.svn.wordpress.org/trunk@24868 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-29 17:57:04 +00:00
Andrew Nacin
afd3c7eeb3 Fix minified RTL style loading via load-styles.php. props ocean90. fixes #22482.
git-svn-id: http://core.svn.wordpress.org/trunk@22623 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-16 22:18:33 +00:00
Andrew Nacin
e7767b1eba Add comments to time intervals we cannot express with the constants. Fix a comment. props SergeyBiryukov. fixes #20987.
git-svn-id: http://core.svn.wordpress.org/trunk@22531 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-10 18:13:09 +00:00
Andrew Nacin
70ae01e133 Do not use time constants in files the WP bootstrap is not or may not be loaded. see #20987.
git-svn-id: http://core.svn.wordpress.org/trunk@21997 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-25 07:05:48 +00:00
Andrew Nacin
557d9313a7 Introduce constants to allow for easier expression of time periods in seconds. Adds MINUTE_IN_SECONDS, HOUR_IN_SECONDS, DAY_IN_SECONDS, WEEK_IN_SECONDS, YEAR_IN_SECONDS. props nbachiyski, SergeyBiryukov. fixes #20987.
git-svn-id: http://core.svn.wordpress.org/trunk@21996 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-25 05:26:19 +00:00
ryan
616c35e71c One newline is enough.
git-svn-id: http://svn.automattic.com/wordpress/trunk@19684 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-01-05 20:10:39 +00:00
azaozz
6e3e6da9bd Fix editor icons when no SCRIPT_DEBUG, see #17144
git-svn-id: http://svn.automattic.com/wordpress/trunk@18503 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-08-03 23:56:21 +00:00
azaozz
21058cf460 Use json_encode() for adding script data (formerly l10n). Add the same functionality to WP_Styles for adding inline css after a stylesheet has been outputted. See #11520
git-svn-id: http://svn.automattic.com/wordpress/trunk@18464 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-07-25 00:36:06 +00:00
ryan
64552a67ee Use stripos() instead of strpos( strtolower() ). Props hakre. see #16920
git-svn-id: http://svn.automattic.com/wordpress/trunk@17630 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-04-11 18:55:11 +00:00
ryan
fc204c952d Don't use deprecated functions. Props filosofo. fixes #11807
git-svn-id: http://svn.automattic.com/wordpress/trunk@12878 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-01-27 17:55:39 +00:00
azaozz
42df991367 Check if $_SERVER['HTTP_ACCEPT_ENCODING'] is set before determining whether to compress scripts, props nacin, fixes #11169
git-svn-id: http://svn.automattic.com/wordpress/trunk@12214 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-11-19 09:46:07 +00:00
markjaquith
6c2ffddf31 _a(), _ea(), _xa(), attr() are now esc_attr__(), esc_attr_e(), esc_attr_x(), esc_attr() -- still short, but less cryptic. see #9650
git-svn-id: http://svn.automattic.com/wordpress/trunk@11204 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-05-05 19:43:53 +00:00
ryan
2d489767bb s/attribute_escape/attr/. see #9650
git-svn-id: http://svn.automattic.com/wordpress/trunk@11109 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-04-28 05:58:45 +00:00
ryan
a61bc0ec8a Trailing whitespace cleanup
git-svn-id: http://svn.automattic.com/wordpress/trunk@11013 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-04-20 18:18:39 +00:00
azaozz
1e31cc81a0 Disable PHP error reporting in gears-manifest.php, load-scripts.php and load-styles.php since they don't load wp-settings, fix some notices
git-svn-id: http://svn.automattic.com/wordpress/trunk@10939 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-04-15 19:55:41 +00:00
azaozz
9c7ba66e64 Correct ABSPATH in load-scripts.php, load-styles.php and gears-manifest.php, props hakre, fixes #9461
git-svn-id: http://svn.automattic.com/wordpress/trunk@10871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-04-05 03:32:49 +00:00
ryan
b1222311f7 gettext comments. Props nbachiyski. see #9112
git-svn-id: http://svn.automattic.com/wordpress/trunk@10774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-03-13 03:53:39 +00:00