From: Trevor Parscal Date: Wed, 22 Sep 2010 20:44:12 +0000 (+0000) Subject: * Added $wgResourceLoaderDebug, a default fallback for debug mode which can be overri... X-Git-Tag: 1.31.0-rc.0~34827 X-Git-Url: https://git.cyclocoop.org/?a=commitdiff_plain;h=b29514b0b3f71e4794e8d9810b20911f3ff420db;p=lhc%2Fweb%2Fwiklou.git * Added $wgResourceLoaderDebug, a default fallback for debug mode which can be overridden by the debug URL parameter a la $wgLanguageCode * Merged $wgResourceLoader(Unv|V)ersioned(Client|Server)Maxage vars into $wgResourceLoaderMaxage, which contains an array of the same values. --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 6a4c143253..132ede9267 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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 diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 65276e9291..74015ae0aa 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -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 diff --git a/includes/OutputPage.php b/includes/OutputPage.php index 6d0474c722..5334ec34ef 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -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' ); } diff --git a/includes/ResourceLoader.php b/includes/ResourceLoader.php index 8597bc861e..8a79cc226a 100644 --- a/includes/ResourceLoader.php +++ b/includes/ResourceLoader.php @@ -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 diff --git a/includes/ResourceLoaderContext.php b/includes/ResourceLoaderContext.php index 6e553cdc48..c35592fe2e 100644 --- a/includes/ResourceLoaderContext.php +++ b/includes/ResourceLoaderContext.php @@ -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' );