diff options
author | jenkins-bot <jenkins-bot@gerrit.wikimedia.org> | 2024-06-10 13:46:03 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@wikimedia.org> | 2024-06-10 13:46:03 +0000 |
commit | ae43ba9202551fcbafe485ed908ab9a511c7a089 (patch) | |
tree | 19c6edc39aacfdc6ac40a1c9864095b5cd4202b1 /includes | |
parent | 851dd097ddb30710eddd582cd9657fac4ca82e3b (diff) | |
parent | b99e249112f53b5730300bd0d36f2c10345b8c98 (diff) | |
download | mediawikicore-ae43ba9202551fcbafe485ed908ab9a511c7a089.tar.gz mediawikicore-ae43ba9202551fcbafe485ed908ab9a511c7a089.zip |
Merge "ResourceLoader: Add 1min grace via stale-while-revalidate Cache-Control" into REL1_39
Diffstat (limited to 'includes')
-rw-r--r-- | includes/ResourceLoader/ResourceLoader.php | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/includes/ResourceLoader/ResourceLoader.php b/includes/ResourceLoader/ResourceLoader.php index 818521f48b02..6b4752a89ced 100644 --- a/includes/ResourceLoader/ResourceLoader.php +++ b/includes/ResourceLoader/ResourceLoader.php @@ -935,7 +935,13 @@ class ResourceLoader implements LoggerAwareInterface { header( 'Cache-Control: private, no-cache, must-revalidate' ); header( 'Pragma: no-cache' ); } else { - header( "Cache-Control: public, max-age=$maxage, s-maxage=$maxage" ); + // T132418: When a resource expires mid-way a browsing session, prefer to renew it in + // the background instead of blocking the next page load (eg. startup module, or CSS). + $staleDirective = ( $maxage > self::MAXAGE_RECOVER + ? ", stale-while-revalidate=" . min( 60, intval( $maxage / 2 ) ) + : '' + ); + header( "Cache-Control: public, max-age=$maxage, s-maxage=$maxage" . $staleDirective ); header( 'Expires: ' . ConvertibleTimestamp::convert( TS_RFC2822, time() + $maxage ) ); } foreach ( $extra as $header ) { |