resourceloader: Remove only=messages
authorTimo Tijhof <krinklemail@gmail.com>
Wed, 13 May 2015 19:17:35 +0000 (20:17 +0100)
committerTimo Tijhof <krinklemail@gmail.com>
Wed, 13 May 2015 19:17:35 +0000 (20:17 +0100)
This isn't needed.

* Deprecate 'modulemessages' API, return empty result and warning.
* Remove half-implemented only=templates.

Change-Id: Ia6c87d687c6670b3ebf24251572191732651e8f5

includes/OutputPage.php
includes/api/ApiParse.php
includes/parser/ParserOutput.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderContext.php
includes/resourceloader/ResourceLoaderModule.php

index 8f9f9c6..2d90147 100644 (file)
@@ -162,9 +162,6 @@ class OutputPage extends ContextSource {
        /** @var array */
        protected $mModuleStyles = array();
 
-       /** @var array */
-       protected $mModuleMessages = array();
-
        /** @var ResourceLoader */
        protected $mResourceLoader;
 
@@ -613,24 +610,24 @@ class OutputPage extends ContextSource {
        /**
         * Get the list of module messages to include on this page
         *
+        * @deprecated since 1.26 Obsolete
         * @param bool $filter
         * @param string|null $position
-        *
         * @return array Array of module names
         */
        public function getModuleMessages( $filter = false, $position = null ) {
-               return $this->getModules( $filter, $position, 'mModuleMessages' );
+               wfDeprecated( __METHOD__, '1.26' );
+               return array();
        }
 
        /**
-        * Add only messages of one or more modules recognized by the resource loader.
-        * Module messages added through this function will be loaded by the resource
-        * loader when the page loads.
+        * Load messages of one or more ResourceLoader modules.
         *
+        * @deprecated since 1.26 Use addModules() instead
         * @param string|array $modules Module name (string) or array of module names
         */
        public function addModuleMessages( $modules ) {
-               $this->mModuleMessages = array_merge( $this->mModuleMessages, (array)$modules );
+               wfDeprecated( __METHOD__, '1.26' );
        }
 
        /**
@@ -1758,7 +1755,6 @@ class OutputPage extends ContextSource {
                $this->addModules( $parserOutput->getModules() );
                $this->addModuleScripts( $parserOutput->getModuleScripts() );
                $this->addModuleStyles( $parserOutput->getModuleStyles() );
-               $this->addModuleMessages( $parserOutput->getModuleMessages() );
                $this->addJsConfigVars( $parserOutput->getJsConfigVars() );
                $this->mPreventClickjacking = $this->mPreventClickjacking
                        || $parserOutput->preventClickjacking();
@@ -1805,7 +1801,6 @@ class OutputPage extends ContextSource {
                $this->addModules( $parserOutput->getModules() );
                $this->addModuleScripts( $parserOutput->getModuleScripts() );
                $this->addModuleStyles( $parserOutput->getModuleStyles() );
-               $this->addModuleMessages( $parserOutput->getModuleMessages() );
 
                $this->addJsConfigVars( $parserOutput->getJsConfigVars() );
        }
@@ -2980,11 +2975,6 @@ class OutputPage extends ContextSource {
                $links[] = $this->makeResourceLoaderLink( $embedScripts, ResourceLoaderModule::TYPE_COMBINED );
 
                // Scripts and messages "only" requests marked for top inclusion
-               // Messages should go first
-               $links[] = $this->makeResourceLoaderLink(
-                       $this->getModuleMessages( true, 'top' ),
-                       ResourceLoaderModule::TYPE_MESSAGES
-               );
                $links[] = $this->makeResourceLoaderLink(
                        $this->getModuleScripts( true, 'top' ),
                        ResourceLoaderModule::TYPE_SCRIPTS
@@ -3018,14 +3008,9 @@ class OutputPage extends ContextSource {
         * @return string
         */
        function getScriptsForBottomQueue( $inHead ) {
-               // Scripts and messages "only" requests marked for bottom inclusion
+               // Scripts "only" requests marked for bottom inclusion
                // If we're in the <head>, use load() calls rather than <script src="..."> tags
-               // Messages should go first
                $links = array();
-               $links[] = $this->makeResourceLoaderLink( $this->getModuleMessages( true, 'bottom' ),
-                       ResourceLoaderModule::TYPE_MESSAGES, /* $useESI = */ false, /* $extraQuery = */ array(),
-                       /* $loadCall = */ $inHead
-               );
                $links[] = $this->makeResourceLoaderLink( $this->getModuleScripts( true, 'bottom' ),
                        ResourceLoaderModule::TYPE_SCRIPTS, /* $useESI = */ false, /* $extraQuery = */ array(),
                        /* $loadCall = */ $inHead
index 4bb99d5..cc8ca97 100644 (file)
@@ -350,7 +350,9 @@ class ApiParse extends ApiBase {
                        $result_array['modules'] = array_values( array_unique( $p_result->getModules() ) );
                        $result_array['modulescripts'] = array_values( array_unique( $p_result->getModuleScripts() ) );
                        $result_array['modulestyles'] = array_values( array_unique( $p_result->getModuleStyles() ) );
-                       $result_array['modulemessages'] = array_values( array_unique( $p_result->getModuleMessages() ) );
+                       // To be removed in 1.27
+                       $result_array['modulemessages'] = array();
+                       $this->setWarning( 'modulemessages is deprecated since MediaWiki 1.26' );
                }
 
                if ( isset( $prop['jsconfigvars'] ) ) {
index 65b527c..a8db1c9 100644 (file)
@@ -41,7 +41,6 @@ class ParserOutput extends CacheTime {
                $mModules = array(),          # Modules to be loaded by the resource loader
                $mModuleScripts = array(),    # Modules of which only the JS will be loaded by the resource loader
                $mModuleStyles = array(),     # Modules of which only the CSSS will be loaded by the resource loader
-               $mModuleMessages = array(),   # Modules of which only the messages will be loaded by the resource loader
                $mJsConfigVars = array(),     # JavaScript config variable for mw.config combined with this page
                $mOutputHooks = array(),      # Hook tags as per $wgParserOutputHooks
                $mWarnings = array(),         # Warning text to be returned to the user. Wikitext formatted, in the key only
@@ -191,8 +190,13 @@ class ParserOutput extends CacheTime {
                return $this->mModuleStyles;
        }
 
+       /**
+        * @deprecated since 1.26 Obsolete
+        * @return array
+        */
        public function getModuleMessages() {
-               return $this->mModuleMessages;
+               wfDeprecated( __METHOD__, '1.26' );
+               return array();
        }
 
        /** @since 1.23 */
@@ -445,8 +449,12 @@ class ParserOutput extends CacheTime {
                $this->mModuleStyles = array_merge( $this->mModuleStyles, (array)$modules );
        }
 
+       /**
+        * @deprecated since 1.26 Use addModules() instead
+        * @param string|array $modules
+        */
        public function addModuleMessages( $modules ) {
-               $this->mModuleMessages = array_merge( $this->mModuleMessages, (array)$modules );
+               wfDeprecated( __METHOD__, '1.26' );
        }
 
        /**
@@ -476,7 +484,6 @@ class ParserOutput extends CacheTime {
                $this->addModules( $out->getModules() );
                $this->addModuleScripts( $out->getModuleScripts() );
                $this->addModuleStyles( $out->getModuleStyles() );
-               $this->addModuleMessages( $out->getModuleMessages() );
                $this->addJsConfigVars( $out->getJsConfigVars() );
 
                $this->mHeadItems = array_merge( $this->mHeadItems, $out->getHeadItemsArray() );
index 8c9c130..5df2651 100644 (file)
@@ -1006,16 +1006,6 @@ MESSAGE;
                                                // Module returns either an empty array or a numerical array with css strings.
                                                $out .= isset( $styles['css'] ) ? implode( '', $styles['css'] ) : '';
                                                break;
-                                       case 'messages':
-                                               $out .= self::makeMessageSetScript( new XmlJsCode( $messagesBlob ) );
-                                               break;
-                                       case 'templates':
-                                               $out .= Xml::encodeJsCall(
-                                                       'mw.templates.set',
-                                                       array( $name, (object)$module->getTemplates() ),
-                                                       ResourceLoader::inDebugMode()
-                                               );
-                                               break;
                                        default:
                                                $out .= self::makeLoaderImplementScript(
                                                        $name,
@@ -1087,8 +1077,8 @@ MESSAGE;
         * @throws MWException
         * @return string
         */
-       public static function makeLoaderImplementScript( $name, $scripts, $styles,
-               $messages, $templates
+       public static function makeLoaderImplementScript(
+               $name, $scripts, $styles, $messages, $templates
        ) {
                if ( is_string( $scripts ) ) {
                        $scripts = new XmlJsCode( "function ( $, jQuery ) {\n{$scripts}\n}" );
index a6a7d34..988bfa6 100644 (file)
@@ -314,7 +314,7 @@ class ResourceLoaderContext {
         * @return bool
         */
        public function shouldIncludeMessages() {
-               return is_null( $this->getOnly() ) || $this->getOnly() === 'messages';
+               return is_null( $this->getOnly() );
        }
 
        /**
index d1b024f..c4041a4 100644 (file)
@@ -29,7 +29,6 @@ abstract class ResourceLoaderModule {
        # Type of resource
        const TYPE_SCRIPTS = 'scripts';
        const TYPE_STYLES = 'styles';
-       const TYPE_MESSAGES = 'messages';
        const TYPE_COMBINED = 'combined';
 
        # sitewide core module like a skin file or jQuery component