Merge "Do not require titles on Special:ComparePages"
[lhc/web/wiklou.git] / includes / upload / UploadFromChunks.php
index 449fc05..ee6f250 100644 (file)
@@ -63,6 +63,52 @@ class UploadFromChunks extends UploadFromFile {
                }
        }
 
+       /**
+        * @inheritDoc
+        */
+       public function tryStashFile( User $user, $isPartial = false ) {
+               try {
+                       $this->verifyChunk();
+               } catch ( UploadChunkVerificationException $e ) {
+                       return Status::newFatal( $e->msg );
+               }
+
+               return parent::tryStashFile( $user, $isPartial );
+       }
+
+       /**
+        * @inheritDoc
+        * @throws UploadChunkVerificationException
+        * @deprecated since 1.28 Use tryStashFile() instead
+        */
+       public function stashFile( User $user = null ) {
+               wfDeprecated( __METHOD__, '1.28' );
+               $this->verifyChunk();
+               return parent::stashFile( $user );
+       }
+
+       /**
+        * @inheritDoc
+        * @throws UploadChunkVerificationException
+        * @deprecated since 1.28
+        */
+       public function stashFileGetKey() {
+               wfDeprecated( __METHOD__, '1.28' );
+               $this->verifyChunk();
+               return parent::stashFileGetKey();
+       }
+
+       /**
+        * @inheritDoc
+        * @throws UploadChunkVerificationException
+        * @deprecated since 1.28
+        */
+       public function stashSession() {
+               wfDeprecated( __METHOD__, '1.28' );
+               $this->verifyChunk();
+               return parent::stashSession();
+       }
+
        /**
         * Calls the parent doStashFile and updates the uploadsession table to handle "chunks"
         *
@@ -74,7 +120,6 @@ class UploadFromChunks extends UploadFromFile {
                $this->mChunkIndex = 0;
                $this->mOffset = 0;
 
-               $this->verifyChunk();
                // Create a local stash target
                $this->mStashFile = parent::doStashFile( $user );
                // Update the initial file offset (based on file size)
@@ -113,7 +158,7 @@ class UploadFromChunks extends UploadFromFile {
 
        /**
         * Append the final chunk and ready file for parent::performUpload()
-        * @return FileRepoStatus
+        * @return Status
         */
        public function concatenateChunks() {
                $chunkIndex = $this->getChunkIndex();
@@ -165,7 +210,7 @@ class UploadFromChunks extends UploadFromFile {
                // override doStashFile() with completely different functionality in this class...
                $error = $this->runUploadStashFileHook( $this->user );
                if ( $error ) {
-                       call_user_func_array( [ $status, 'fatal' ], $error );
+                       $status->fatal( ...$error );
                        return $status;
                }
                try {
@@ -313,7 +358,7 @@ class UploadFromChunks extends UploadFromFile {
         *
         * @param string $chunkPath
         * @throws UploadChunkFileException
-        * @return FileRepoStatus
+        * @return Status
         */
        private function outputChunk( $chunkPath ) {
                // Key is fileKey + chunk index
@@ -377,9 +422,9 @@ class UploadChunkFileException extends MWException {
 
 class UploadChunkVerificationException extends MWException {
        public $msg;
-       public function __construct( $res ) {
-               $this->msg = call_user_func_array( 'wfMessage', $res );
-               parent::__construct( call_user_func_array( 'wfMessage', $res )
+       public function __construct( array $res ) {
+               $this->msg = wfMessage( ...$res );
+               parent::__construct( wfMessage( ...$res )
                        ->inLanguage( 'en' )->useDatabase( false )->text() );
        }
 }