From 7c27e42fb84856e7fdaddda602a549d06d93b1f6 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Sat, 9 Jan 2010 19:14:43 +0000 Subject: [PATCH] Revert 60864: "Use wfClientAcceptsGzip() in wfGzipHandler." Causes PHP Notice: Undefined index: HTTP_ACCEPT_ENCODING in GlobalFunctions.php on line 1175 --- RELEASE-NOTES | 17 +++++++---------- includes/GlobalFunctions.php | 20 +++++++++++--------- includes/OutputHandler.php | 9 ++++++--- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 586ecc4eb4..4fb568c4f6 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -19,7 +19,6 @@ Those wishing to use the latest code instead of a branch release can obtain it from source control: http://www.mediawiki.org/wiki/Download_from_SVN === Configuration changes in 1.16 === - * (bug 18222) $wgMinimalPasswordLength default is now 1 * $wgSessionHandler can be used to configure session.save_handler * $wgLocalFileRepo/$wgForeignFileRepos now have a 'fileMode' parameter to @@ -82,12 +81,12 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN similarly to the category namespace. * $wgEnableSorbs renamed to $wgDnsBlacklistUrls ($wgEnableSorbs kept for backward compatibility) -* $wgUploadNavigationUrl now also affects images inline images that do not - exist. In that case the URL will get (?|&)wpDestFile= appended to +* $wgUploadNavigationUrl now also affects images inline images that do not + exist. In that case the URL will get (?|&)wpDestFile= appended to it as appropriate. * If $wgLocaltimezone is null, use the server's timezone as the default for signatures. This was always the behaviour documented in DefaultSettings.php - but has not been the actual behaviour for some time: instead, UTC was used + but has not been the actual behaviour for some time: instead, UTC was used by default. @@ -660,10 +659,10 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN only displayed to the users that have "editinterface" right * (bug 21740) Attempting to protect a page that doesn't exist (salting) returns "unknown error" -* (bug 18762) both redirects and links get fixed one after another if +* (bug 18762) both redirects and links get fixed one after another if redirects-only switch is not present * (bug 20159) thumbnails rerendered if older that $wgThumbnailEpoch -* Fixed a bug which in some situations causes the job queue to grow forever, +* Fixed a bug which in some situations causes the job queue to grow forever, due to an infinite loop of job requeues. * (bug 21523) File that can have multiple pages (djvu, pdf, ...) no longer have the page selector when they have only one page @@ -694,8 +693,6 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * (bug 2658) Don't attempt to set the TZ environment variable. * (bug 9794) User rights log entries for foreign user now links to the foreign user's page if possible -* (bug 22034) Use wfClientAcceptsGzip() in wfGzipHandler instead of - reimplementing it. == API changes in 1.16 == @@ -766,8 +763,8 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * (bug 21441) meta=userinfo&uiprop=options no longer returns default options for logged-in users under certain circumstances * (bug 21945) Add chomp control in YAML -* Expand the thumburl to an absolute url to make it consistent with url and - descriptionurl +* Expand the thumburl to an absolute url to make it consistent with url and + descriptionurl * (bug 20233) ApiLogin::execute() doesn't handle LoginForm :: RESET_PASS === Languages updated in 1.16 === diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php index d3d1cd45d2..306498eaf5 100644 --- a/includes/GlobalFunctions.php +++ b/includes/GlobalFunctions.php @@ -1168,15 +1168,17 @@ function wfNumLink( $offset, $limit, $title, $query = '' ) { */ function wfClientAcceptsGzip() { global $wgUseGzip; - # FIXME: we may want to blacklist some broken browsers - $m = array(); - if( preg_match( - '/\bgzip(?:;(q)=([0-9]+(?:\.[0-9]+)))?\b/', - $_SERVER['HTTP_ACCEPT_ENCODING'], - $m ) ) { - if( isset( $m[2] ) && ( $m[1] == 'q' ) && ( $m[2] == 0 ) ) return false; - wfDebug( " accepts gzip\n" ); - return true; + if( $wgUseGzip ) { + # FIXME: we may want to blacklist some broken browsers + $m = array(); + if( preg_match( + '/\bgzip(?:;(q)=([0-9]+(?:\.[0-9]+)))?\b/', + $_SERVER['HTTP_ACCEPT_ENCODING'], + $m ) ) { + if( isset( $m[2] ) && ( $m[1] == 'q' ) && ( $m[2] == 0 ) ) return false; + wfDebug( " accepts gzip\n" ); + return true; + } } return false; } diff --git a/includes/OutputHandler.php b/includes/OutputHandler.php index 72e6562601..061f7505ef 100644 --- a/includes/OutputHandler.php +++ b/includes/OutputHandler.php @@ -74,9 +74,12 @@ function wfGzipHandler( $s ) { return $s; } - if( wfClientAcceptsGzip() ) { - header( 'Content-Encoding: gzip' ); - $s = gzencode( $s, 6 ); + if( isset( $_SERVER['HTTP_ACCEPT_ENCODING'] ) ) { + $tokens = preg_split( '/[,; ]/', $_SERVER['HTTP_ACCEPT_ENCODING'] ); + if ( in_array( 'gzip', $tokens ) ) { + header( 'Content-Encoding: gzip' ); + $s = gzencode( $s, 6 ); + } } // Set vary header if it hasn't been set already -- 2.20.1