* Merged $wgResourceLoader(Unv|V)ersioned(Client|Server)Maxage vars into $wgResourceLoaderMaxage, which contains an array of the same values.
* $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
$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
}
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,
);
* @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' );
$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' );
* @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();
}
// 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' );
}
* @param $context ResourceLoaderContext object
*/
public static function respond( ResourceLoaderContext $context ) {
- global $wgResourceLoaderVersionedClientMaxage, $wgResourceLoaderVersionedServerMaxage;
- global $wgResourceLoaderUnversionedServerMaxage, $wgResourceLoaderUnversionedClientMaxage;
+ global $wgResourceLoaderMaxage;
wfProfileIn( __METHOD__ );
self::initialize();
// 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
/* Methods */
public function __construct( WebRequest $request ) {
- global $wgLang, $wgDefaultSkin;
+ global $wgLang, $wgDefaultSkin, $wgResourceLoaderDebug;
$this->request = $request;
// Interperet request
$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' );