Replace MimeMagic::singleton() calls
authorReedy <reedy@wikimedia.org>
Mon, 27 Nov 2017 01:33:57 +0000 (01:33 +0000)
committerReedy <reedy@wikimedia.org>
Mon, 27 Nov 2017 02:13:51 +0000 (02:13 +0000)
Change-Id: Ieed41b5d6b0f568fe2872e7754f2feae7868fe7a

19 files changed:
includes/Feed.php
includes/StreamFile.php
includes/api/ApiFormatBase.php
includes/filebackend/FileBackendGroup.php
includes/filerepo/FileRepo.php
includes/filerepo/RepoGroup.php
includes/filerepo/file/File.php
includes/filerepo/file/ForeignAPIFile.php
includes/filerepo/file/LocalFile.php
includes/filerepo/file/UnregisteredLocalFile.php
includes/media/DjVu.php
includes/media/MediaHandler.php
includes/specials/SpecialMediaStatistics.php
includes/upload/UploadBase.php
includes/upload/UploadStash.php
includes/utils/MWFileProps.php
maintenance/importImages.php
tests/phpunit/includes/media/MediaWikiMediaTestCase.php
tests/phpunit/includes/media/WebPTest.php

index fd223e6..35f2ce9 100644 (file)
@@ -232,7 +232,8 @@ abstract class ChannelFeed extends FeedItem {
                header( "Content-type: $mimetype; charset=UTF-8" );
 
                // Set a sane filename
-               $exts = MimeMagic::singleton()->getExtensionsForType( $mimetype );
+               $exts = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer()
+                       ->getExtensionsForType( $mimetype );
                $ext = $exts ? strtok( $exts, ' ' ) : 'xml';
                header( "Content-Disposition: inline; filename=\"feed.{$ext}\"" );
 
index 71113a8..2ad42e5 100644 (file)
@@ -113,7 +113,7 @@ class StreamFile {
                        return 'unknown/unknown';
                }
 
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                // Use the extension only, rather than magic numbers, to avoid opening
                // up vulnerabilities due to uploads of files with allowed extensions
                // but disallowed types.
index c5f2fcf..4348fc8 100644 (file)
@@ -78,7 +78,8 @@ abstract class ApiFormatBase extends ApiBase {
                } elseif ( $this->getIsHtml() ) {
                        return 'api-result.html';
                } else {
-                       $exts = MimeMagic::singleton()->getExtensionsForType( $this->getMimeType() );
+                       $exts = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer()
+                               ->getExtensionsForType( $this->getMimeType() );
                        $ext = $exts ? strtok( $exts, ' ' ) : strtolower( $this->mFormat );
                        return "api-result.$ext";
                }
index 5d0da6d..0b61979 100644 (file)
@@ -229,7 +229,7 @@ class FileBackendGroup {
         * @since 1.27
         */
        public function guessMimeInternal( $storagePath, $content, $fsPath ) {
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                // Trust the extension of the storage path (caller must validate)
                $ext = FileBackend::extensionFromPath( $storagePath );
                $type = $magic->guessTypesForExtension( $ext );
index 5005280..5d22b8d 100644 (file)
@@ -1543,7 +1543,7 @@ class FileRepo {
         */
        public function getFileProps( $virtualUrl ) {
                $fsFile = $this->getLocalReference( $virtualUrl );
-               $mwProps = new MWFileProps( MimeMagic::singleton() );
+               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                if ( $fsFile ) {
                        $props = $mwProps->getPropsFromPath( $fsFile->getPath(), true );
                } else {
index 2edd6d0..5e37d67 100644 (file)
@@ -452,7 +452,7 @@ class RepoGroup {
 
                        return $repo->getFileProps( $fileName );
                } else {
-                       $mwProps = new MWFileProps( MimeMagic::singleton() );
+                       $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
 
                        return $mwProps->getPropsFromPath( $fileName, true );
                }
index 827f4ca..4e79de2 100644 (file)
@@ -250,7 +250,7 @@ abstract class File implements IDBAccessObject {
                $oldMime = $old->getMimeType();
                $n = strrpos( $new, '.' );
                $newExt = self::normalizeExtension( $n ? substr( $new, $n + 1 ) : '' );
-               $mimeMagic = MimeMagic::singleton();
+               $mimeMagic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
 
                return $mimeMagic->isMatchingExtension( $newExt, $oldMime );
        }
index 43b6855..16c154f 100644 (file)
@@ -286,7 +286,7 @@ class ForeignAPIFile extends File {
         */
        function getMimeType() {
                if ( !isset( $this->mInfo['mime'] ) ) {
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $this->mInfo['mime'] = $magic->guessTypesForExtension( $this->getExtension() );
                }
 
@@ -300,7 +300,7 @@ class ForeignAPIFile extends File {
                if ( isset( $this->mInfo['mediatype'] ) ) {
                        return $this->mInfo['mediatype'];
                }
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
 
                return $magic->getMediaType( null, $this->getMimeType() );
        }
index bb12515..4248f95 100644 (file)
@@ -1284,7 +1284,7 @@ class LocalFile extends File {
                        ) {
                                $props = $this->repo->getFileProps( $srcPath );
                        } else {
-                               $mwProps = new MWFileProps( MimeMagic::singleton() );
+                               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                                $props = $mwProps->getPropsFromPath( $srcPath, true );
                        }
                }
index cdad5fc..fde68bb 100644 (file)
@@ -151,7 +151,7 @@ class UnregisteredLocalFile extends File {
         */
        function getMimeType() {
                if ( !isset( $this->mime ) ) {
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $this->mime = $magic->guessMimeType( $this->getLocalRefPath() );
                }
 
index aae66d3..eb7b6ba 100644 (file)
@@ -357,7 +357,7 @@ class DjVuHandler extends ImageHandler {
                global $wgDjvuOutputExtension;
                static $mime;
                if ( !isset( $mime ) ) {
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $mime = $magic->guessTypesForExtension( $wgDjvuOutputExtension );
                }
 
index 481e880..8551a12 100644 (file)
@@ -288,7 +288,7 @@ abstract class MediaHandler {
         * @return array Thumbnail extension and MIME type
         */
        function getThumbType( $ext, $mime, $params = null ) {
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                if ( !$ext || $magic->isMatchingExtension( $ext, $mime ) === false ) {
                        // The extension is not valid for this MIME type and we do
                        // recognize the MIME type
index a6d4a3e..15749b2 100644 (file)
@@ -237,7 +237,8 @@ class MediaStatisticsPage extends QueryPage {
         * @return string Comma separated list of allowed extensions (e.g. ".ogg, .oga")
         */
        private function getExtensionList( $mime ) {
-               $exts = MimeMagic::singleton()->getExtensionsForType( $mime );
+               $exts = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer()
+                       ->getExtensionsForType( $mime );
                if ( $exts === null ) {
                        return '';
                }
index da3f9f8..c335e2b 100644 (file)
@@ -420,7 +420,7 @@ abstract class UploadBase {
                        $chunk = fread( $fp, 256 );
                        fclose( $fp );
 
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $extMime = $magic->guessTypesForExtension( $this->mFinalExtension );
                        $ieTypes = $magic->getIEMimeTypes( $this->mTempPath, $chunk, $extMime );
                        foreach ( $ieTypes as $ieType ) {
@@ -446,7 +446,7 @@ abstract class UploadBase {
                        return $status;
                }
 
-               $mwProps = new MWFileProps( MimeMagic::singleton() );
+               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                $this->mFileProps = $mwProps->getPropsFromPath( $this->mTempPath, $this->mFinalExtension );
                $mime = $this->mFileProps['mime'];
 
@@ -505,7 +505,7 @@ abstract class UploadBase {
                # getTitle() sets some internal parameters like $this->mFinalExtension
                $this->getTitle();
 
-               $mwProps = new MWFileProps( MimeMagic::singleton() );
+               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                $this->mFileProps = $mwProps->getPropsFromPath( $this->mTempPath, $this->mFinalExtension );
 
                # check MIME type, if desired
@@ -950,7 +950,7 @@ abstract class UploadBase {
                        $this->mFinalExtension = '';
 
                        # No extension, try guessing one
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $mime = $magic->guessMimeType( $this->mTempPath );
                        if ( $mime !== 'unknown/unknown' ) {
                                # Get a space separated list of extensions
@@ -1207,7 +1207,7 @@ abstract class UploadBase {
         * @return bool
         */
        public static function verifyExtension( $mime, $extension ) {
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
 
                if ( !$mime || $mime == 'unknown' || $mime == 'unknown/unknown' ) {
                        if ( !$magic->isRecognizableExtension( $extension ) ) {
index c2ab899..ce087bf 100644 (file)
@@ -218,7 +218,7 @@ class UploadStash {
                        );
                }
 
-               $mwProps = new MWFileProps( MimeMagic::singleton() );
+               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                $fileProps = $mwProps->getPropsFromPath( $path, true );
                wfDebug( __METHOD__ . " stashing file at '$path'\n" );
 
@@ -490,9 +490,9 @@ class UploadStash {
                        $extension = $n ? substr( $path, $n + 1 ) : '';
                } else {
                        // If not, assume that it should be related to the MIME type of the original file.
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $mimeType = $magic->guessMimeType( $path );
-                       $extensions = explode( ' ', MimeMagic::singleton()->getExtensionsForType( $mimeType ) );
+                       $extensions = explode( ' ', $magic->getExtensionsForType( $mimeType ) );
                        if ( count( $extensions ) ) {
                                $extension = $extensions[0];
                        }
index e60b9ab..9d05c6a 100644 (file)
@@ -30,9 +30,9 @@ class MWFileProps {
        private $magic;
 
        /**
-        * @param MimeMagic $magic
+        * @param MimeAnalyzer $magic
         */
-       public function __construct( MimeMagic $magic ) {
+       public function __construct( MimeAnalyzer $magic ) {
                $this->magic = $magic;
        }
 
index 526561c..d3aa280 100644 (file)
@@ -299,7 +299,7 @@ class ImportImages extends Maintenance {
                                                " publishing {$file} by '{$wgUser->getName()}', comment '$commentText'... "
                                        );
                                } else {
-                                       $mwProps = new MWFileProps( MimeMagic::singleton() );
+                                       $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                                        $props = $mwProps->getPropsFromPath( $file, true );
                                        $flags = 0;
                                        $publishOptions = [];
index 196f688..a4e8056 100644 (file)
@@ -76,7 +76,7 @@ abstract class MediaWikiMediaTestCase extends MediaWikiTestCase {
        protected function dataFile( $name, $type = null ) {
                if ( !$type ) {
                        // Autodetect by file extension for the lazy.
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $parts = explode( $name, '.' );
                        $type = $magic->guessTypesForExtension( $parts[count( $parts ) - 1] );
                }
index f51693d..b8dadaf 100644 (file)
@@ -123,7 +123,7 @@ class WebPHandlerTest extends MediaWikiTestCase {
         * @dataProvider provideTestGetMimeType
         */
        public function testGuessMimeType( $path ) {
-               $mime = MimeMagic::singleton();
+               $mime = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                $this->assertEquals( 'image/webp', $mime->guessMimeType( $path, false ) );
        }
        public function provideTestGetMimeType() {