X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fmedia%2FTiff.php;h=bea6cab365d87558964337818709a07dee310212;hb=e3bd13db0c285f312e31bb1b7271af4628cca80c;hp=55acb120e6ba8607402317a04caa966cf5cf0e54;hpb=0fcde42a6ae2dab803f20f67da70545d240eaec8;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/media/Tiff.php b/includes/media/Tiff.php index 55acb120e6..2e732493bf 100644 --- a/includes/media/Tiff.php +++ b/includes/media/Tiff.php @@ -27,6 +27,7 @@ * @ingroup Media */ class TiffHandler extends ExifBitmapHandler { + const EXPENSIVE_SIZE_LIMIT = 10485760; // TIFF files over 10M are considered expensive to thumbnail /** * Conversion to PNG for inline display can be disabled here... @@ -36,12 +37,12 @@ class TiffHandler extends ExifBitmapHandler { * InstantCommons will have thumbnails managed from the remote instance, * so we can skip this check. * - * @param $file - * + * @param File $file * @return bool */ - function canRender( $file ) { + public function canRender( $file ) { global $wgTiffThumbnailType; + return (bool)$wgTiffThumbnailType || $file->getRepo() instanceof ForeignAPIRepo; } @@ -50,22 +51,22 @@ class TiffHandler extends ExifBitmapHandler { * Browsers don't support TIFF inline generally... * For inline display, we need to convert to PNG. * - * @param $file - * + * @param File $file * @return bool */ - function mustRender( $file ) { + public function mustRender( $file ) { return true; } /** - * @param $ext - * @param $mime - * @param $params + * @param string $ext + * @param string $mime + * @param array $params * @return bool */ function getThumbType( $ext, $mime, $params = null ) { global $wgTiffThumbnailType; + return $wgTiffThumbnailType; } @@ -85,16 +86,21 @@ class TiffHandler extends ExifBitmapHandler { throw new MWException( 'Metadata array is not an array' ); } $meta['MEDIAWIKI_EXIF_VERSION'] = Exif::version(); + return serialize( $meta ); - } - catch ( MWException $e ) { + } catch ( Exception $e ) { // BitmapMetadataHandler throws an exception in certain exceptional // cases like if file does not exist. wfDebug( __METHOD__ . ': ' . $e->getMessage() . "\n" ); + return ExifBitmapHandler::BROKEN_FILE; } } else { return ''; } } + + public function isExpensiveToThumbnail( $file ) { + return $file->getSize() > static::EXPENSIVE_SIZE_LIMIT; + } }