Preferences: Use mediawiki.confirmCloseWindow module
[lhc/web/wiklou.git] / thumb.php
index ebcf79f..70cd1e6 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -252,10 +252,12 @@ function wfStreamThumb( array $params ) {
        try {
                $thumbName = $img->thumbName( $params );
                if ( !strlen( $thumbName ) ) { // invalid params?
-                       wfThumbError( 400, 'The specified thumbnail parameters are not valid.' );
-                       return;
+                       throw new MediaTransformInvalidParametersException( 'Empty return from File::thumbName' );
                }
                $thumbName2 = $img->thumbName( $params, File::THUMB_FULL_NAME ); // b/c; "long" style
+       } catch ( MediaTransformInvalidParametersException $e ) {
+               wfThumbError( 400, 'The specified thumbnail parameters are not valid: ' . $e->getMessage() );
+               return;
        } catch ( MWException $e ) {
                wfThumbError( 500, $e->getHTML() );
                return;
@@ -426,66 +428,6 @@ function wfGenerateThumbnail( File $file, array $params, $thumbName, $thumbPath
        return array( $thumb, $errorHtml );
 }
 
-/**
- * Returns true if this thumbnail is one that MediaWiki generates
- * links to on file description pages and possibly parser output.
- *
- * $params is considered non-standard if they involve a non-standard
- * width or any non-default parameters aside from width and page number.
- * The number of possible files with standard parameters is far less than
- * that of all combinations; rate-limiting for them can thus be more generious.
- *
- * @param File $file
- * @param array $params
- * @return bool
- */
-function wfThumbIsStandard( File $file, array $params ) {
-       global $wgThumbLimits, $wgImageLimits;
-
-       $handler = $file->getHandler();
-       if ( !$handler || !isset( $params['width'] ) ) {
-               return false;
-       }
-
-       $basicParams = array();
-       if ( isset( $params['page'] ) ) {
-               $basicParams['page'] = $params['page'];
-       }
-
-       // Check if the width matches one of $wgThumbLimits
-       if ( in_array( $params['width'], $wgThumbLimits ) ) {
-               $normalParams = $basicParams + array( 'width' => $params['width'] );
-               // Append any default values to the map (e.g. "lossy", "lossless", ...)
-               $handler->normaliseParams( $file, $normalParams );
-       } else {
-               // If not, then check if the width matchs one of $wgImageLimits
-               $match = false;
-               foreach ( $wgImageLimits as $pair ) {
-                       $normalParams = $basicParams + array( 'width' => $pair[0], 'height' => $pair[1] );
-                       // Decide whether the thumbnail should be scaled on width or height.
-                       // Also append any default values to the map (e.g. "lossy", "lossless", ...)
-                       $handler->normaliseParams( $file, $normalParams );
-                       // Check if this standard thumbnail size maps to the given width
-                       if ( $normalParams['width'] == $params['width'] ) {
-                               $match = true;
-                               break;
-                       }
-               }
-               if ( !$match ) {
-                       return false; // not standard for description pages
-               }
-       }
-
-       // Check that the given values for non-page, non-width, params are just defaults
-       foreach ( $params as $key => $value ) {
-               if ( !isset( $normalParams[$key] ) || $normalParams[$key] != $value ) {
-                       return false;
-               }
-       }
-
-       return true;
-}
-
 /**
  * Convert pathinfo type parameter, into normal request parameters
  *
@@ -626,7 +568,11 @@ function wfThumbError( $status, $msg ) {
                $debug = '';
        }
        echo <<<EOT
-<html><head><title>Error generating thumbnail</title></head>
+<!DOCTYPE html>
+<html><head>
+<meta charset="UTF-8" />
+<title>Error generating thumbnail</title>
+</head>
 <body>
 <h1>Error generating thumbnail</h1>
 <p>