Commit Graph

48 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 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
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 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
Sergey Biryukov 86bff28a19 Script Loader: Ensure default packages are registered when loaded via load-scripts.php.
Props CantoThemes, ocean90.
Merges [43877] to trunk.
Fixes #45271.
Built from https://develop.svn.wordpress.org/trunk@44237


git-svn-id: http://core.svn.wordpress.org/trunk@44067 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-17 03:15:20 +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
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 618c5b4333 When outputting JS with a `Content-Type` header:
`text/javascript` is obsolete, `application/x-javascript` was experimental. `application/javascript` is the recommended type per RFC 4329.

Props sergej.mueller.
Fixes #29196.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31010 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-03 02:57:21 +00:00
Drew Jaynes 9ef7c41a15 Inline docs syntax fixes following [28978].
See #28740.

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


git-svn-id: http://core.svn.wordpress.org/trunk@28803 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-07 16:42:16 +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
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 2763e74dd8 Script loader: Chunk the script names as passed to load-scripts.php into 128-character pieces. Avoids hitting a limit for the length of a single variable, such as suhosin.get.max_value_length which defaults to 512. fixes #22757.
git-svn-id: http://core.svn.wordpress.org/trunk@23074 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-12-05 18:57:56 +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
nacin bc2655affc If a plugin triggers the WP_Scripts constructor prior to init, fire wp_default_scripts()
then and again on init.

Only add our localized strings once we've fired init, in case we do have the situation
where we fire wp_default_scripts() twice.

Fixes issues where plugins or themes try to enqueue a default script handle prior to
init. Does not allow #19959 to regress.

see #20971 for trunk.



git-svn-id: http://core.svn.wordpress.org/trunk@21132 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-06-26 05:33: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
nacin 31e5be0b66 Define json_encode() in load-scripts.php. see #19524 for trunk.
git-svn-id: http://svn.automattic.com/wordpress/trunk@19597 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-12-14 23:02:42 +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
dd32 ba0153096a Revert [17608] adding back [17596] and actually include the dummy function this time. See #17057 Fixes #17050
git-svn-id: http://svn.automattic.com/wordpress/trunk@17609 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-04-06 00:42:07 +00:00
nacin 9e81303893 Define home_url() in load-scripts.php. see #9008, props ocean90.
git-svn-id: http://svn.automattic.com/wordpress/trunk@14442 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-05-04 17:08:28 +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
azaozz 75850602a5 Detect when the server compresses output, see #8628
git-svn-id: http://svn.automattic.com/wordpress/trunk@10476 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-02-01 09:45:24 +00:00
azaozz e62f8c0eb9 Support output_handler = ob_gzhandler in script/style compressor, props DD32, fixes #9000
git-svn-id: http://svn.automattic.com/wordpress/trunk@10466 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-01-30 13:45:05 +00:00
azaozz f20f62b27d Improvements to the script loader: allows plugins to queue scripts for the front end head and footer, adds hooks for server side caching of compressed scripts, adds support for ENFORCE_GZIP constant (deflate is used by default since it's faster), see #8628, fixes #8884
git-svn-id: http://svn.automattic.com/wordpress/trunk@10442 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-01-26 12:59:10 +00:00
azaozz b396079aa0 Use gzip instead of deflate as more servers seem to understand it, add separate switch for disabling CSS compression
git-svn-id: http://svn.automattic.com/wordpress/trunk@10372 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-01-17 14:08:15 +00:00
azaozz fc7d871678 Split the script queue in head and footer part, concatenate and compress the default js and css, first run, see #8628
git-svn-id: http://svn.automattic.com/wordpress/trunk@10357 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2009-01-14 14:18:51 +00:00