Made OutputPage only ask for a style from ResourceLoader once with media=all, and...
authorTrevor Parscal <tparscal@users.mediawiki.org>
Fri, 10 Sep 2010 18:24:45 +0000 (18:24 +0000)
committerTrevor Parscal <tparscal@users.mediawiki.org>
Fri, 10 Sep 2010 18:24:45 +0000 (18:24 +0000)
includes/OutputPage.php
includes/ResourceLoader.php
includes/ResourceLoaderContext.php

index 4510b09..67810d0 100644 (file)
@@ -2280,7 +2280,7 @@ class OutputPage {
                return $ret;
        }
        
-       static function makeResourceLoaderLink( $skin, $modules, $only, $media = 'all' ) {
+       static function makeResourceLoaderLink( $skin, $modules, $only ) {
                global $wgUser, $wgLang, $wgRequest;
                // TODO: Should this be a static function of ResourceLoader instead?
                $query = array(
@@ -2292,8 +2292,7 @@ class OutputPage {
                );
                // Automatically select style/script elements
                if ( $only === 'styles' ) {
-                       $query['media'] = $media;
-                       return Html::linkedStyle( wfAppendQuery( wfScript( 'load' ), $query ), $media );
+                       return Html::linkedStyle( wfAppendQuery( wfScript( 'load' ), $query ) );
                } else {
                        return Html::linkedScript( wfAppendQuery( wfScript( 'load' ), $query ) );
                }
@@ -2489,15 +2488,11 @@ class OutputPage {
                // Support individual script requests in debug mode
                if ( $wgRequest->getBool( 'debug' ) && $wgRequest->getVal( 'debug' ) !== 'false' ) {
                        foreach ( $this->getModuleStyles() as $name ) {
-                               $tags[] = self::makeResourceLoaderLink( $sk, $name, 'styles', 'all' );
-                               $tags[] = self::makeResourceLoaderLink( $sk, $name, 'styles', 'screen' );
-                               $tags[] = self::makeResourceLoaderLink( $sk, $name, 'styles', 'print' );
+                               $tags[] = self::makeResourceLoaderLink( $sk, $name, 'styles' );
                        }
                } else {
                        if ( count( $this->getModuleStyles() ) ) {
-                               $tags[] = self::makeResourceLoaderLink( $sk, $this->getModuleStyles(), 'styles', 'all' );
-                               $tags[] = self::makeResourceLoaderLink( $sk, $this->getModuleStyles(), 'styles', 'screen' );
-                               $tags[] = self::makeResourceLoaderLink( $sk, $this->getModuleStyles(), 'styles', 'print' );
+                               $tags[] = self::makeResourceLoaderLink( $sk, $this->getModuleStyles(), 'styles' );
                        }
                }
                
index ad0d0bf..ede4341 100644 (file)
@@ -275,7 +275,7 @@ class ResourceLoader {
 
                // Pre-fetch blobs
                $blobs = $context->shouldIncludeMessages() ?
-                       MessageBlobStore::get( $modules, $context->getLanguage() ) : array();
+               MessageBlobStore::get( $modules, $context->getLanguage() ) : array();
 
                // Generate output
                foreach ( $modules as $name ) {
@@ -290,8 +290,7 @@ class ResourceLoader {
                        $styles = array();
 
                        if (
-                               $context->shouldIncludeStyles() &&
-                               ( count( $styles = self::$modules[$name]->getStyles( $context ) ) )
+                               $context->shouldIncludeStyles() && ( count( $styles = self::$modules[$name]->getStyles( $context ) ) )
                        ) {
                                foreach ( $styles as $media => $style ) {
                                        if ( self::$modules[$name]->getFlip( $context ) ) {
@@ -308,8 +307,8 @@ class ResourceLoader {
 
                        // Output
                        if ( $context->getOnly() === 'styles' ) {
-                               if ( isset( $styles[$context->getMedia()] ) ) {
-                                       echo $styles[$context->getMedia()];
+                               foreach ( $styles as $media => $style ) {
+                                       echo "@media $media {\n$style\n}\n";
                                }
                        } else if ( $context->getOnly() === 'scripts' ) {
                                echo $scripts;
index 39e650c..b97638a 100644 (file)
@@ -33,7 +33,6 @@ class ResourceLoaderContext {
        protected $skin;
        protected $debug;
        protected $only;
-       protected $media;
        protected $hash;
 
        /* Methods */
@@ -50,7 +49,6 @@ class ResourceLoaderContext {
                $this->skin = $request->getVal( 'skin' );
                $this->debug = $request->getVal( 'debug' ) === 'true' || $request->getBool( 'debug' );
                $this->only = $request->getVal( 'only' );
-               $this->media = $request->getVal( 'media', 'all' );
 
                // Fallback on system defaults
                if ( !$this->language ) {
@@ -97,10 +95,6 @@ class ResourceLoaderContext {
        public function getOnly() {
                return $this->only;
        }
-       
-       public function getMedia() {
-               return $this->media;
-       }
 
        public function shouldIncludeScripts() {
                return is_null( $this->only ) || $this->only === 'scripts';
@@ -117,6 +111,6 @@ class ResourceLoaderContext {
        public function getHash() {
                return isset( $this->hash ) ?
                        $this->hash : $this->hash =
-                               implode( '|', array( $this->language, $this->skin, $this->debug, $this->only, $this->media ) );
+                               implode( '|', array( $this->language, $this->skin, $this->debug, $this->only ) );
        }
 }