X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FOutputHandler.php;h=2f470062721e246cf0b680d116935be217303a42;hb=bb30a53039da0e0c14528d6f293c1d7b6b42b321;hp=b3b3b889a70aef50030ab3dc886d128afc5d07cf;hpb=7fa77c2d52a8aa5c7c6fe7fd7af27770f1ecad12;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/OutputHandler.php b/includes/OutputHandler.php index b3b3b889a7..2f47006272 100644 --- a/includes/OutputHandler.php +++ b/includes/OutputHandler.php @@ -28,8 +28,10 @@ * @return string */ function wfOutputHandler( $s ) { - global $wgDisableOutputCompression, $wgValidateAllHtml; - $s = wfMangleFlashPolicy( $s ); + global $wgDisableOutputCompression, $wgValidateAllHtml, $wgMangleFlashPolicy; + if ( $wgMangleFlashPolicy ) { + $s = wfMangleFlashPolicy( $s ); + } if ( $wgValidateAllHtml ) { $headers = headers_list(); $isHTML = false; @@ -127,16 +129,17 @@ function wfGzipHandler( $s ) { $headers = headers_list(); $foundVary = false; foreach ( $headers as $header ) { - if ( substr( $header, 0, 5 ) == 'Vary:' ) { + $headerName = strtolower( substr( $header, 0, 5 ) ); + if ( $headerName == 'vary:' ) { $foundVary = true; break; } } if ( !$foundVary ) { header( 'Vary: Accept-Encoding' ); - global $wgUseXVO; - if ( $wgUseXVO ) { - header( 'X-Vary-Options: Accept-Encoding;list-contains=gzip' ); + global $wgUseKeyHeader; + if ( $wgUseKeyHeader ) { + header( 'Key: Accept-Encoding;match=gzip' ); } } return $s; @@ -151,15 +154,15 @@ function wfGzipHandler( $s ) { */ function wfMangleFlashPolicy( $s ) { # Avoid weird excessive memory usage in PCRE on big articles - if ( preg_match( '/\<\s*cross-domain-policy\s*\>/i', $s ) ) { - return preg_replace( '/\<\s*cross-domain-policy\s*\>/i', '', $s ); + if ( preg_match( '/\<\s*cross-domain-policy(?=\s|\>)/i', $s ) ) { + return preg_replace( '/\<(\s*)(cross-domain-policy(?=\s|\>))/i', '<$1NOT-$2', $s ); } else { return $s; } } /** - * Add a Content-Length header if possible. This makes it cooperate with squid better. + * Add a Content-Length header if possible. This makes it cooperate with CDN better. * * @param int $length */ @@ -192,13 +195,13 @@ function wfHtmlValidationHandler( $s ) { $out .= Html::openElement( 'ul' ); $error = strtok( $errors, "\n" ); - $badLines = array(); + $badLines = []; while ( $error !== false ) { if ( preg_match( '/^line (\d+)/', $error, $m ) ) { $lineNum = intval( $m[1] ); $badLines[$lineNum] = true; $out .= Html::rawElement( 'li', null, - Html::element( 'a', array( 'href' => "#line-{$lineNum}" ), $error ) ) . "\n"; + Html::element( 'a', [ 'href' => "#line-{$lineNum}" ], $error ) ) . "\n"; } $error = strtok( "\n" ); } @@ -209,7 +212,7 @@ function wfHtmlValidationHandler( $s ) { $line = strtok( $s, "\n" ); $i = 1; while ( $line !== false ) { - $attrs = array(); + $attrs = []; if ( isset( $badLines[$i] ) ) { $attrs['class'] = 'highlight'; $attrs['id'] = "line-$i"; @@ -225,7 +228,7 @@ function wfHtmlValidationHandler( $s ) { li { white-space: pre } CSS; - $out = Html::htmlHeader( array( 'lang' => 'en', 'dir' => 'ltr' ) ) . + $out = Html::htmlHeader( [ 'lang' => 'en', 'dir' => 'ltr' ] ) . Html::rawElement( 'head', null, Html::element( 'title', null, 'HTML validation error' ) . Html::inlineStyle( $style ) ) .