Gilles has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/357895 )
Change subject: Remove X-Content-Dimensions header ...................................................................... Remove X-Content-Dimensions header Bug: T150741 Bug: T167034 Change-Id: I39cfcf2cb231b6dfef569968fba6f473da258916 --- M RELEASE-NOTES-1.30 M includes/filerepo/file/File.php M includes/filerepo/file/LocalFile.php M includes/libs/filebackend/FileBackendStore.php M includes/media/DjVu.php M includes/media/MediaHandler.php M maintenance/importImages.php M tests/phpunit/includes/media/MediaHandlerTest.php D tests/phpunit/includes/media/XContentDimensionsTest.php 9 files changed, 6 insertions(+), 128 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/95/357895/1 diff --git a/RELEASE-NOTES-1.30 b/RELEASE-NOTES-1.30 index 343c296..7595d23 100644 --- a/RELEASE-NOTES-1.30 +++ b/RELEASE-NOTES-1.30 @@ -34,9 +34,6 @@ ParserOptions::setWrapOutputClass(). * Added 'ChangeTagsAllowedAdd' hook, enabling extensions to allow software- specific tags to be added by users. -* File storage backends that supports headers (eg. Swift) now store an - X-Content-Dimensions header for originals that contain the media's dimensions - as page ranges keyed by dimensions. * Added a 'ParserOptionsRegister' hook to allow extensions to register additional parser options. diff --git a/includes/filerepo/file/File.php b/includes/filerepo/file/File.php index 53211fe..9aa2b18 100644 --- a/includes/filerepo/file/File.php +++ b/includes/filerepo/file/File.php @@ -2173,7 +2173,7 @@ $metadata = []; } - return $handler->getContentHeaders( $metadata, $this->getWidth(), $this->getHeight() ); + return $handler->getContentHeaders( $metadata ); } return []; diff --git a/includes/filerepo/file/LocalFile.php b/includes/filerepo/file/LocalFile.php index a90156f..8d715e8 100644 --- a/includes/filerepo/file/LocalFile.php +++ b/includes/filerepo/file/LocalFile.php @@ -1206,9 +1206,7 @@ $metadata = []; } - $options['headers'] = $handler->getContentHeaders( - $metadata, $props['width'], $props['height'] - ); + $options['headers'] = $handler->getContentHeaders( $metadata ); } else { $options['headers'] = []; } diff --git a/includes/libs/filebackend/FileBackendStore.php b/includes/libs/filebackend/FileBackendStore.php index e2f7886..039bd42 100644 --- a/includes/libs/filebackend/FileBackendStore.php +++ b/includes/libs/filebackend/FileBackendStore.php @@ -1250,7 +1250,7 @@ * @return array */ protected function sanitizeOpHeaders( array $op ) { - static $longs = [ 'content-disposition', 'x-content-dimensions' ]; + static $longs = [ 'content-disposition' ]; if ( isset( $op['headers'] ) ) { // op sets HTTP headers $newHeaders = []; diff --git a/includes/media/DjVu.php b/includes/media/DjVu.php index f260850a..aae66d3 100644 --- a/includes/media/DjVu.php +++ b/includes/media/DjVu.php @@ -461,43 +461,4 @@ return false; } } - - /** - * Get useful response headers for GET/HEAD requests for a file with the given metadata - * @param $metadata Array Contains this handler's unserialized getMetadata() for a file - * @param $fallbackWidth int|null Width to fall back to if metadata doesn't have any - * @param $fallbackHeight int|null Height to fall back to if metadata doesn't have any - * @return Array - * @since 1.30 - */ - public function getContentHeaders( $metadata, $fallbackWidth = null, $fallbackHeight = null ) { - if ( !isset( $metadata['xml'] ) ) { - return []; - } - - $trees = $this->extractTreesFromMetadata( $metadata['xml'] ); - $dimensionInfo = $this->getDimensionInfoFromMetaTree( $trees['MetaTree'] ); - - if ( !$dimensionInfo ) { - return []; - } - - $pagesByDimensions = []; - $count = $dimensionInfo['pageCount']; - - for ( $i = 1; $i <= $count; $i++ ) { - $dimensions = $dimensionInfo['dimensionsByPage'][ $i - 1 ]; - $dimensionString = $dimensions['width'] . 'x' . $dimensions['height']; - - if ( isset ( $pagesByDimensions[ $dimensionString ] ) ) { - $pagesByDimensions[ $dimensionString ][] = $i; - } else { - $pagesByDimensions[ $dimensionString ] = [ $i ]; - } - } - - $pageRangesByDimensions = MediaHandler::getPageRangesByDimensions( $pagesByDimensions ); - - return [ 'X-Content-Dimensions' => $pageRangesByDimensions ]; - } } diff --git a/includes/media/MediaHandler.php b/includes/media/MediaHandler.php index ec4d372..8896264 100644 --- a/includes/media/MediaHandler.php +++ b/includes/media/MediaHandler.php @@ -916,32 +916,10 @@ /** * Get useful response headers for GET/HEAD requests for a file with the given metadata * @param $metadata Array Contains this handler's unserialized getMetadata() for a file - * @param $fallbackWidth int|null Width to fall back to if metadata doesn't have any - * @param $fallbackHeight int|null Height to fall back to if metadata doesn't have any * @return Array * @since 1.30 */ - public function getContentHeaders( $metadata, $fallbackWidth = null, $fallbackHeight = null ) { - if ( !isset( $metadata['width'] ) ) { - if ( is_null( $fallbackWidth ) ) { - return []; - } - - $metadata['width'] = $fallbackWidth; - } - - if ( !isset( $metadata['height'] ) ) { - if ( is_null( $fallbackHeight ) ) { - return []; - } - - $metadata['height'] = $fallbackHeight; - } - - $dimensionString = $metadata['width'] . 'x' . $metadata['height']; - $pagesByDimensions = [ $dimensionString => [ 1 ] ]; - $pageRangesByDimensions = MediaHandler::getPageRangesByDimensions( $pagesByDimensions ); - - return [ 'X-Content-Dimensions' => $pageRangesByDimensions ]; + public function getContentHeaders( $metadata ) { + return []; } } diff --git a/maintenance/importImages.php b/maintenance/importImages.php index d396703..b3866c1 100644 --- a/maintenance/importImages.php +++ b/maintenance/importImages.php @@ -309,9 +309,7 @@ if ( $handler ) { $metadata = MediaWiki\quietCall( 'unserialize', $props['metadata'] ); - $publishOptions['headers'] = $handler->getContentHeaders( - $metadata, $props['width'], $props['height'] - ); + $publishOptions['headers'] = $handler->getContentHeaders( $metadata ); } else { $publishOptions['headers'] = []; } diff --git a/tests/phpunit/includes/media/MediaHandlerTest.php b/tests/phpunit/includes/media/MediaHandlerTest.php index 530afa0..7a052f6 100644 --- a/tests/phpunit/includes/media/MediaHandlerTest.php +++ b/tests/phpunit/includes/media/MediaHandlerTest.php @@ -65,27 +65,4 @@ } return $result; } - - /** - * @covers MediaHandler::getPageRangesByDimensions - * - * @dataProvider provideTestGetPageRangesByDimensions - */ - public function testGetPageRangesByDimensions( $pagesByDimensions, $expected ) { - $this->assertEquals( $expected, MediaHandler::getPageRangesByDimensions( $pagesByDimensions ) ); - } - - public static function provideTestGetPageRangesByDimensions() { - return [ - [ [ '123x456' => [ 1 ] ], '123x456:1' ], - [ [ '123x456' => [ 1, 2 ] ], '123x456:1-2' ], - [ [ '123x456' => [ 1, 2, 3 ] ], '123x456:1-3' ], - [ [ '123x456' => [ 1, 2, 3, 5 ] ], '123x456:1-3,5' ], - [ [ '123x456' => [ 1, 3 ] ], '123x456:1,3' ], - [ [ '123x456' => [ 1, 2, 3, 5, 6, 7 ] ], '123x456:1-3,5-7' ], - [ [ '123x456' => [ 1, 2, 3, 5, 6, 7 ], - '789x789' => [ 4, 8, 9 ] ], '123x456:1-3,5-7/789x789:4,8-9' - ], - ]; - } } diff --git a/tests/phpunit/includes/media/XContentDimensionsTest.php b/tests/phpunit/includes/media/XContentDimensionsTest.php deleted file mode 100644 index dddcc98..0000000 --- a/tests/phpunit/includes/media/XContentDimensionsTest.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php - -/** - * @group Media - */ -class XContentDimensionsTest extends MediaWikiMediaTestCase { - /** - * @param string $filename - * @param string $expectedXContentDimensions - * @dataProvider provideGetContentHeaders - * @covers File::getContentHeaders - */ - public function testGetContentHeaders( $filename, $expectedXContentDimensions ) { - $file = $this->dataFile( $filename ); - $headers = $file->getContentHeaders(); - $this->assertEquals( true, isset( $headers['X-Content-Dimensions'] ) ); - $this->assertEquals( $headers['X-Content-Dimensions'], $expectedXContentDimensions ); - } - - public static function provideGetContentHeaders() { - return [ - [ '80x60-2layers.xcf', '80x60:1' ], - [ 'animated.gif', '45x30:1' ], - [ 'landscape-plain.jpg', '1024x768:1' ], - [ 'portrait-rotated.jpg', '768x1024:1' ], - [ 'Wikimedia-logo.svg', '1024x1024:1' ], - [ 'webp_animated.webp', '300x225:1' ], - [ 'test.tiff', '20x20:1' ], - ]; - } -} -- To view, visit https://gerrit.wikimedia.org/r/357895 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I39cfcf2cb231b6dfef569968fba6f473da258916 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Gilles <gdu...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits