http://www.mediawiki.org/wiki/Special:Code/MediaWiki/72730
Revision: 72730
Author: tparscal
Date: 2010-09-10 18:24:45 +0000 (Fri, 10 Sep 2010)
Log Message:
-----------
Made OutputPage only ask for a style from ResourceLoader once with media=all,
and ResourceLoader respond with styles wrapped in @media [type] { ... } blocks.
Modified Paths:
--------------
trunk/phase3/includes/OutputPage.php
trunk/phase3/includes/ResourceLoader.php
trunk/phase3/includes/ResourceLoaderContext.php
Modified: trunk/phase3/includes/OutputPage.php
===================================================================
--- trunk/phase3/includes/OutputPage.php 2010-09-10 17:34:06 UTC (rev
72729)
+++ trunk/phase3/includes/OutputPage.php 2010-09-10 18:24:45 UTC (rev
72730)
@@ -2280,7 +2280,7 @@
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 @@
);
// 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 @@
// 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' );
}
}
Modified: trunk/phase3/includes/ResourceLoader.php
===================================================================
--- trunk/phase3/includes/ResourceLoader.php 2010-09-10 17:34:06 UTC (rev
72729)
+++ trunk/phase3/includes/ResourceLoader.php 2010-09-10 18:24:45 UTC (rev
72730)
@@ -275,7 +275,7 @@
// 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 @@
$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 @@
// 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;
Modified: trunk/phase3/includes/ResourceLoaderContext.php
===================================================================
--- trunk/phase3/includes/ResourceLoaderContext.php 2010-09-10 17:34:06 UTC
(rev 72729)
+++ trunk/phase3/includes/ResourceLoaderContext.php 2010-09-10 18:24:45 UTC
(rev 72730)
@@ -33,7 +33,6 @@
protected $skin;
protected $debug;
protected $only;
- protected $media;
protected $hash;
/* Methods */
@@ -50,7 +49,6 @@
$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 @@
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 @@
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 ) );
}
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs