resourceloader: Always send headers with a 304 response
There was a code path that sent plain 304s without Expires or any other headers. Fix this by moving the call to sendResponseHeaders() into tryLastModified(). Bug: 51283 Change-Id: I15d13c5d32102f53bf3e3aaac01d76967e968f78
This commit is contained in:
parent
a129edcc5e
commit
a4379d8f9e
2 changed files with 7 additions and 3 deletions
|
|
@ -17,6 +17,7 @@ production.
|
|||
==== External libraries ====
|
||||
|
||||
=== Bug fixes in 1.26 ===
|
||||
* (bug 51283) load.php sometimes sends 304 response without full headers
|
||||
|
||||
=== Action API changes in 1.26 ===
|
||||
* API action=query&list=tags: The displayname can now be boolean false if the
|
||||
|
|
|
|||
|
|
@ -764,6 +764,9 @@ class ResourceLoader {
|
|||
|
||||
header( 'HTTP/1.0 304 Not Modified' );
|
||||
header( 'Status: 304 Not Modified' );
|
||||
|
||||
// Send content type and cache headers
|
||||
$this->sendResponseHeaders( $context, $mtime, false );
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -798,18 +801,18 @@ class ResourceLoader {
|
|||
}
|
||||
if ( $good ) {
|
||||
$ts = $fileCache->cacheTimestamp();
|
||||
// Send content type and cache headers
|
||||
$this->sendResponseHeaders( $context, $ts, false );
|
||||
// If there's an If-Modified-Since header, respond with a 304 appropriately
|
||||
if ( $this->tryRespondLastModified( $context, $ts ) ) {
|
||||
return false; // output handled (buffers cleared)
|
||||
}
|
||||
$response = $fileCache->fetchText();
|
||||
// Capture any PHP warnings from the output buffer and append them to the
|
||||
// response in a comment if we're in debug mode.
|
||||
if ( $context->getDebug() && strlen( $warnings = ob_get_contents() ) ) {
|
||||
$response = "/*\n$warnings\n*/\n" . $response;
|
||||
}
|
||||
// Send content type and cache headers
|
||||
$this->sendResponseHeaders( $context, $ts, false );
|
||||
$response = $fileCache->fetchText();
|
||||
// Remove the output buffer and output the response
|
||||
ob_end_clean();
|
||||
echo $response . "\n/* Cached {$ts} */";
|
||||
|
|
|
|||
Loading…
Reference in a new issue