From 120d71495ba964abc78c158b6fda95bb4470c7f4 Mon Sep 17 00:00:00 2001 From: Brian Wolff Date: Sun, 19 Jul 2015 05:26:58 -0600 Subject: [PATCH] Do not suggest alternate svg sizes bigger than $wgMaxSVGSize on img pg Suggesting a size bigger than the max svg size, will simply result in a smaller rendering than the user has been lead to believe they would recieve. Additionally fix wrong argument order to $this->getThumbSizes which was causing the nominal size for an SVG to not be suggested as an alternate size on the image page. See some of the comments T106263 (However, that bug is not about this issue). Change-Id: Ia63ddd6e89725f8e7979687310c3b6819da0cbbc --- includes/page/ImagePage.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/includes/page/ImagePage.php b/includes/page/ImagePage.php index 7ea4ed7464..4ec377adfd 100644 --- a/includes/page/ImagePage.php +++ b/includes/page/ImagePage.php @@ -296,7 +296,7 @@ class ImagePage extends Article { } protected function openShowImage() { - global $wgEnableUploads, $wgSend404Code; + global $wgEnableUploads, $wgSend404Code, $wgSVGMaxSize; $this->loadFile(); $out = $this->getContext()->getOutput(); @@ -351,7 +351,7 @@ class ImagePage extends Article { ); $linktext = $this->getContext()->msg( 'show-big-image' )->escaped(); - $thumbSizes = $this->getThumbSizes( $width, $height, $width_orig, $height_orig ); + $thumbSizes = $this->getThumbSizes( $width_orig, $height_orig ); # Generate thumbnails or thumbnail links as needed... $otherSizes = array(); foreach ( $thumbSizes as $size ) { @@ -361,10 +361,12 @@ class ImagePage extends Article { // the current thumbnail's size ($width/$height) // since that is added to the message separately, so // it can be denoted as the current size being shown. - // Vectorized images are "infinitely" big, so all thumb - // sizes are shown. + // Vectorized images are limited by $wgSVGMaxSize big, + // so all thumbs less than or equal that are shown. if ( ( ( $size[0] <= $width_orig && $size[1] <= $height_orig ) - || $this->displayImg->isVectorized() ) + || ( $this->displayImg->isVectorized() + && max( $size[0], $size[1] ) <= $wgSVGMaxSize ) + ) && $size[0] != $width && $size[1] != $height ) { $sizeLink = $this->makeSizeLink( $params, $size[0], $size[1] ); -- 2.20.1