Follows-up
3ac385a0c39a622c. This was generated by the installer at some
point and we've received two user reports of someone being caught by
this. We don't need to support "unlimited" anymore, but at least make it
do something more sensible, like using the default of 2000.
Previously, it was effectively treating the -1 like 0,
which was causing "debug mode"-like behaviour for end users.
Bug: T251789
Change-Id: I483d5312e6fa25a0b00bb6173ed01eeb99ad42aa
(cherry picked from commit
fcd799ad54facda32aad127bbb4576fc2af078cc)
/**
* ResourceLoader will not generate URLs whose query string is more than
* this many characters long, and will instead use multiple requests with
/**
* ResourceLoader will not generate URLs whose query string is more than
* this many characters long, and will instead use multiple requests with
- * shorter query strings. This degrades performance, but may be needed based
- * on the query string limit supported by your web server and/or your user's
- * web browsers.
+ * shorter query strings. Using multiple requests may degrade performance,
+ * but may be needed based on the query string limit supported by your web
+ * server and/or your user's web browsers.
+ * Default: `2000`.
+ *
+ * @see ResourceLoaderStartUpModule::getMaxQueryLength
* @since 1.17
* @var int
*/
* @since 1.17
* @var int
*/
-$wgResourceLoaderMaxQueryLength = 2000;
+$wgResourceLoaderMaxQueryLength = false;
/**
* If set to true, JavaScript modules loaded from wiki pages will be parsed
/**
* If set to true, JavaScript modules loaded from wiki pages will be parsed
return 'MediaWikiModuleStore:' . $this->getConfig()->get( 'DBname' );
}
return 'MediaWikiModuleStore:' . $this->getConfig()->get( 'DBname' );
}
+ /**
+ * @see $wgResourceLoaderMaxQueryLength
+ * @return int
+ */
+ private function getMaxQueryLength() : int {
+ $len = $this->getConfig()->get( 'ResourceLoaderMaxQueryLength' );
+ // - Ignore -1, which in MW 1.34 and earlier was used to mean "unlimited".
+ // - Ignore invalid values, e.g. non-int or other negative values.
+ if ( $len === false || $len < 0 ) {
+ // Default
+ $len = 2000;
+ }
+ return $len;
+ }
+
/**
* Get the key on which the JavaScript module cache (mw.loader.store) will vary.
*
/**
* Get the key on which the JavaScript module cache (mw.loader.store) will vary.
*
$mwLoaderPairs = [
'$VARS.reqBase' => $context->encodeJson( $context->getReqBase() ),
'$VARS.baseModules' => $context->encodeJson( $this->getBaseModules() ),
$mwLoaderPairs = [
'$VARS.reqBase' => $context->encodeJson( $context->getReqBase() ),
'$VARS.baseModules' => $context->encodeJson( $this->getBaseModules() ),
- '$VARS.maxQueryLength' => $context->encodeJson(
- $conf->get( 'ResourceLoaderMaxQueryLength' )
- ),
+ '$VARS.maxQueryLength' => $context->encodeJson( $this->getMaxQueryLength() ),
// The client-side module cache can be disabled by site configuration.
// It is also always disabled in debug mode.
'$VARS.storeEnabled' => $context->encodeJson(
// The client-side module cache can be disabled by site configuration.
// It is also always disabled in debug mode.
'$VARS.storeEnabled' => $context->encodeJson(