Never serve 304s from RL in debug mode. This causes inadvertent caching of debug...
[lhc/web/wiklou.git] / includes / resourceloader / ResourceLoaderFileModule.php
index e17a848..2837913 100644 (file)
@@ -197,6 +197,8 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                                        break;
                        }
                }
+               // Make sure the remote base path is a complete valid url
+               $this->remoteBasePath = wfExpandUrl( $this->remoteBasePath );
        }
 
        /**
@@ -206,8 +208,6 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * @return String: JavaScript code for $context
         */
        public function getScript( ResourceLoaderContext $context ) {
-               global $wgServer;
-               
                $files = array_merge(
                        $this->scripts,
                        self::tryForKey( $this->languageScripts, $context->getLanguage() ),
@@ -218,7 +218,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        if ( $this->debugRaw ) {
                                $script = '';
                                foreach ( $files as $file ) {
-                                       $path = $wgServer . $this->getRemotePath( $file );
+                                       $path = $this->getRemotePath( $file );
                                        $script .= "\n\t" . Xml::encodeJsCall( 'mediaWiki.loader.load', array( $path ) );
                                }
                                return $script;
@@ -355,6 +355,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                // If a module is nothing but a list of dependencies, we need to avoid 
                // giving max() an empty array
                if ( count( $files ) === 0 ) {
+                       wfProfileOut( __METHOD__ );
                        return $this->modifiedTime[$context->getHash()] = 1;
                }
                
@@ -364,6 +365,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                $this->modifiedTime[$context->getHash()] = max( 
                        $filesMtime, 
                        $this->getMsgBlobMtime( $context->getLanguage() ) );
+
                wfProfileOut( __METHOD__ );
                return $this->modifiedTime[$context->getHash()];
        }
@@ -464,12 +466,13 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                }
                $styles = self::collateFilePathListByOption( $styles, 'media', 'all' );
                foreach ( $styles as $media => $files ) {
+                       $uniqueFiles = array_unique( $files );
                        $styles[$media] = implode(
                                "\n",
                                array_map(
                                        array( $this, 'readStyleFile' ),
-                                       array_unique( $files ),
-                                       array( $flip )
+                                       $uniqueFiles,
+                                       array_fill( 0, count( $uniqueFiles ), $flip )
                                )
                        );
                }