* Added $wgResourceLoaderDebug, a default fallback for debug mode which can be overri...
authorTrevor Parscal <tparscal@users.mediawiki.org>
Wed, 22 Sep 2010 20:44:12 +0000 (20:44 +0000)
committerTrevor Parscal <tparscal@users.mediawiki.org>
Wed, 22 Sep 2010 20:44:12 +0000 (20:44 +0000)
* Merged $wgResourceLoader(Unv|V)ersioned(Client|Server)Maxage vars into $wgResourceLoaderMaxage, which contains an array of the same values.

RELEASE-NOTES
includes/DefaultSettings.php
includes/OutputPage.php
includes/ResourceLoader.php
includes/ResourceLoaderContext.php

index 6a4c143..132ede9 100644 (file)
@@ -57,11 +57,11 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * $wgVectorExtraStyles was removed, and is no longer in use.
 * $wgLoadScript was added to specify alternative locations for ResourceLoader
   requests.
-* $wgResourceLoaderVersionedClientMaxage, $wgResourceLoaderVersionedServerMaxage,
-  $wgResourceLoaderUnversionedClientMaxage and
-  $wgResourceLoaderUnversionedServerMaxage were added to specify maxage and
-  smaxage times for responses from ResourceLoader based on whether the request's
-  URL contained a version parameter or not.
+* $wgResourceLoaderMaxage was added to specify maxage and smaxage times for
+  responses from ResourceLoader based on whether the request's URL contained a
+  version parameter or not.
+* $wgResourceLoaderDebug was added to specify the default state of debug mode;
+  this will still be overridden with the debug URL parameter a la $wgLanguageCode.
 
 === New features in 1.17 ===
 * (bug 10183) Users can now add personal styles and scripts to all skins via
index 65276e9..74015ae 100644 (file)
@@ -1645,30 +1645,26 @@ $wgUseETag = false;
 $wgClockSkewFudge = 5;
 
 /**
- * Maximum time in seconds to cache versioned resources served by the resource
- * loader on the client side (e.g. in the browser cache).
- */
-$wgResourceLoaderVersionedClientMaxage = 30 * 24 * 60 * 60; // 30 days
-
-/**
- * Maximum time in seconds to cache versioned resources served by the resource
- * loader on the server side. This means Squid/Varnish but also any other public
- * proxy cache between the client and MediaWiki.
- */
-$wgResourceLoaderVersionedServerMaxage = 30 * 24 * 60 * 60; // 30 days
-
-/**
- * Maximum time in seconds to cache unversioned resources served by the resource
- * loader on the client.
- */
-$wgResourceLoaderUnversionedClientMaxage = 5 * 60; // 5 minutes
+ * Maximum time in seconds to cache resources served by the resource loader
+ */
+$wgResourceLoaderMaxage = array(
+       'versioned' => array(
+               // Squid/Varnish but also any other public proxy cache between the client and MediaWiki
+               'server' => 30 * 24 * 60 * 60, // 30 days
+               // On the client side (e.g. in the browser cache).
+               'client' => 30 * 24 * 60 * 60, // 30 days
+       ),
+       'unversioned' => array(
+               'server' => 5 * 60, // 5 minutes
+               'client' => 5 * 60, // 5 minutes
+       ),
+);
 
 /**
- * Maximum time in seconds to cache unversioned resources served by the resource
- * loader on the server. This means Squid/Varnish but also any other public
- * proxy cache between the client and MediaWiki.
+ * The default debug mode (on/off) for of ResourceLoader requests. This will still
+ * be overridden when the debug URL parameter is used.
  */
-$wgResourceLoaderUnversionedServerMaxage = 5 * 60; // 5 minutes
+$wgResourceLoaderDebug = false;
 
 /**
  * Enable data URL embedding (experimental). This variable is very temporary and
index 6d0474c..5334ec3 100644 (file)
@@ -2281,12 +2281,12 @@ class OutputPage {
        }
        
        static function makeResourceLoaderLink( $skin, $modules, $only ) {
-               global $wgUser, $wgLang, $wgRequest, $wgLoadScript;
+               global $wgUser, $wgLang, $wgRequest, $wgLoadScript, $wgResourceLoaderDebug;
                // TODO: Should this be a static function of ResourceLoader instead?
                // TODO: Divide off modules starting with "user", and add the user parameter to them
                $query = array(
                        'lang' => $wgLang->getCode(),
-                       'debug' => $wgRequest->getFuzzyBool( 'debug' ) ? 'true' : 'false',
+                       'debug' => $wgRequest->getFuzzyBool( 'debug', $wgResourceLoaderDebug ) ? 'true' : 'false',
                        'skin' => $wgUser->getSkin()->getSkinName(),
                        'only' => $only,
                );
@@ -2346,8 +2346,7 @@ class OutputPage {
         * @return String: HTML fragment
         */
        function getHeadScripts( Skin $sk ) {
-               global $wgUser, $wgRequest;
-               global $wgUseSiteJs;
+               global $wgUser, $wgRequest, $wgUseSiteJs, $wgResourceLoaderDebug;
                
                // Statup - this will immediately load jquery and mediawiki modules
                $scripts = self::makeResourceLoaderLink( $sk, 'startup', 'scripts' );
@@ -2357,7 +2356,7 @@ class OutputPage {
                $scripts .= Skin::makeGlobalVariablesScript( $sk->getSkinName() ) . "\n";
                
                // Script and Messages "only"
-               if ( $wgRequest->getFuzzyBool( 'debug' ) ) {
+               if ( $wgRequest->getFuzzyBool( 'debug', $wgResourceLoaderDebug ) ) {
                        // Scripts
                        foreach ( $this->getModuleScripts() as $name ) {
                                $scripts .= self::makeResourceLoaderLink( $sk, $name, 'scripts' );
@@ -2455,7 +2454,7 @@ class OutputPage {
         * @return string HTML tag links to be put in the header.
         */
        public function getHeadLinks( $sk ) {
-               global $wgFeed, $wgRequest;
+               global $wgFeed, $wgRequest, $wgResourceLoaderDebug;
 
                // Ideally this should happen earlier, somewhere. :P
                $this->addDefaultMeta();
@@ -2526,7 +2525,7 @@ class OutputPage {
                }
 
                // Support individual script requests in debug mode
-               if ( $wgRequest->getFuzzyBool( 'debug' ) ) {
+               if ( $wgRequest->getFuzzyBool( 'debug', $wgResourceLoaderDebug ) ) {
                        foreach ( $this->getModuleStyles() as $name ) {
                                $tags[] = self::makeResourceLoaderLink( $sk, $name, 'styles' );
                        }
index 8597bc8..8a79cc2 100644 (file)
@@ -249,8 +249,7 @@ class ResourceLoader {
         * @param $context ResourceLoaderContext object
         */
        public static function respond( ResourceLoaderContext $context ) {
-               global $wgResourceLoaderVersionedClientMaxage, $wgResourceLoaderVersionedServerMaxage;
-               global $wgResourceLoaderUnversionedServerMaxage, $wgResourceLoaderUnversionedClientMaxage;
+               global $wgResourceLoaderMaxage;
 
                wfProfileIn( __METHOD__ );
                self::initialize();
@@ -270,14 +269,14 @@ class ResourceLoader {
                // If a version wasn't specified we need a shorter expiry time for updates to 
                // propagate to clients quickly
                if ( is_null( $context->getVersion() ) ) {
-                       $maxage = $wgResourceLoaderUnversionedClientMaxage;
-                       $smaxage = $wgResourceLoaderUnversionedServerMaxage;
+                       $maxage = $wgResourceLoaderMaxage['unversioned']['client'];
+                       $smaxage = $wgResourceLoaderMaxage['unversioned']['server'];
                }
                // If a version was specified we can use a longer expiry time since changing 
                // version numbers causes cache misses
                else {
-                       $maxage = $wgResourceLoaderVersionedClientMaxage;
-                       $smaxage = $wgResourceLoaderVersionedServerMaxage;
+                       $maxage = $wgResourceLoaderMaxage['versioned']['client'];
+                       $smaxage = $wgResourceLoaderMaxage['versioned']['server'];
                }
 
                // To send Last-Modified and support If-Modified-Since, we need to detect 
index 6e553cd..c35592f 100644 (file)
@@ -40,7 +40,7 @@ class ResourceLoaderContext {
        /* Methods */
 
        public function __construct( WebRequest $request ) {
-               global $wgLang, $wgDefaultSkin;
+               global $wgLang, $wgDefaultSkin, $wgResourceLoaderDebug;
 
                $this->request = $request;
                // Interperet request
@@ -49,7 +49,7 @@ class ResourceLoaderContext {
                $this->direction = $request->getVal( 'dir' );
                $this->skin = $request->getVal( 'skin' );
                $this->user = $request->getVal( 'user' );
-               $this->debug = $request->getFuzzyBool( 'debug' );
+               $this->debug = $request->getFuzzyBool( 'debug', $wgResourceLoaderDebug );
                $this->only = $request->getVal( 'only' );
                $this->version = $request->getVal( 'version' );