http://www.mediawiki.org/wiki/Special:Code/MediaWiki/76207

Revision: 76207
Author:   platonides
Date:     2010-11-06 18:52:32 +0000 (Sat, 06 Nov 2010)
Log Message:
-----------
Remove checks for debug mode and module count on every makeResourceLoaderLink() 
invocation.
Moved inside makeResourceLoaderLink()
The only difference would be having now 'user' and 'user.options' modules split 
on debug mode.

Modified Paths:
--------------
    trunk/phase3/includes/OutputPage.php

Modified: trunk/phase3/includes/OutputPage.php
===================================================================
--- trunk/phase3/includes/OutputPage.php        2010-11-06 18:51:45 UTC (rev 
76206)
+++ trunk/phase3/includes/OutputPage.php        2010-11-06 18:52:32 UTC (rev 
76207)
@@ -2294,7 +2294,14 @@
                return $ret;
        }
 
-       // TODO: Document
+       /**
+        * TODO: Document
+        * @param $skin Skin
+        * @param $modules Array/string with the module name
+        * @param $only string May be styles, messages or scripts
+        * @param $useESI boolean
+        * @return string html <script> and <style> tags
+        */
        protected function makeResourceLoaderLink( $skin, $modules, $only, 
$useESI = false ) {
                global $wgUser, $wgLang, $wgLoadScript, $wgResourceLoaderUseESI,
                        $wgResourceLoaderInlinePrivateModules;
@@ -2310,10 +2317,27 @@
                        'skin' => $wgUser->getSkin()->getSkinName(),
                        'only' => $only,
                );
-               // Remove duplicate module requests
-               $modules = array_unique( (array) $modules );
-               // Sort module names so requests are more uniform
-               sort( $modules );
+               
+               if ( !count( $modules ) ) {
+                       return '';
+               }
+               
+               if ( count( $modules ) > 1 ) {
+                       // Remove duplicate module requests
+                       $modules = array_unique( (array) $modules );
+                       // Sort module names so requests are more uniform
+                       sort( $modules );
+               
+                       if ( ResourceLoader::inDebugMode() ) {
+                               // Recursively call us for every item
+                               $links = '';
+                               foreach ( $modules as $name ) {
+                                       $links .= 
$this->makeResourceLoaderLink( $sk, $name, $only, $useESI );
+                               }
+                               return $links;
+                       }
+               }
+               
                // Create keyed-by-group list of module objects from modules 
list
                $groups = array();
                foreach ( (array) $modules as $name ) {
@@ -2403,26 +2427,13 @@
                $scripts .= Skin::makeGlobalVariablesScript( $sk->getSkinName() 
) . "\n";
 
                // Script and Messages "only"
-               if ( ResourceLoader::inDebugMode() ) {
-                       // Scripts
-                       foreach ( $this->getModuleScripts() as $name ) {
-                               $scripts .= $this->makeResourceLoaderLink( $sk, 
$name, 'scripts' );
-                       }
-                       // Messages
-                       foreach ( $this->getModuleMessages() as $name ) {
-                               $scripts .= $this->makeResourceLoaderLink( $sk, 
$name, 'messages' );
-                       }
-               } else {
-                       // Scripts
-                       if ( count( $this->getModuleScripts() ) ) {
-                               $scripts .= $this->makeResourceLoaderLink( $sk, 
$this->getModuleScripts(), 'scripts' );
-                       }
-                       // Messages
-                       if ( count( $this->getModuleMessages() ) ) {
-                               $scripts .= $this->makeResourceLoaderLink( $sk, 
$this->getModuleMessages(), 'messages' );
-                       }
-               }
+               
+               // Scripts
+               $scripts .= $this->makeResourceLoaderLink( $sk, 
$this->getModuleScripts(), 'scripts' );
 
+               // Messages
+               $scripts .= $this->makeResourceLoaderLink( $sk, 
$this->getModuleMessages(), 'messages' );
+
                // Modules - let the client calculate dependencies and batch 
requests as it likes
                if ( $this->getModules() ) {
                        $modules = FormatJson::encode( $this->getModules() );
@@ -2571,16 +2582,7 @@
                        }
                }
 
-               // Support individual script requests in debug mode
-               if ( ResourceLoader::inDebugMode() ) {
-                       foreach ( $this->getModuleStyles() as $name ) {
-                               $tags[] = $this->makeResourceLoaderLink( $sk, 
$name, 'styles' );
-                       }
-               } else {
-                       if ( count( $this->getModuleStyles() ) ) {
-                               $tags[] = $this->makeResourceLoaderLink( $sk, 
$this->getModuleStyles(), 'styles' );
-                       }
-               }
+               $tags[] = $this->makeResourceLoaderLink( $sk, 
$this->getModuleStyles(), 'styles' );
 
                return implode( "\n", $tags );
        }


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to