resourceloader: Set the request base parameters on server-side

This change also removes the defaults from the URL parameter:
* lang=qqx
* skin=fallback
* debug=false

Bug: T225899
Change-Id: I4cbc42e39ebc56c3d29f773a275afe2b1a44c913
This commit is contained in:
Fomafix 2019-06-24 08:02:17 +02:00 committed by Krinkle
parent 4821c63624
commit d13e5b757b
3 changed files with 22 additions and 5 deletions

View file

@ -410,4 +410,24 @@ class ResourceLoaderContext implements MessageLocalizer {
}
return $this->hash;
}
/**
* Get the request base parameters, omitting any defaults.
*
* @internal For internal use by ResourceLoaderStartUpModule only
* @return array
*/
public function getReqBase() {
$reqBase = [];
if ( $this->getLanguage() !== self::DEFAULT_LANG ) {
$reqBase['lang'] = $this->getLanguage();
}
if ( $this->getSkin() !== self::DEFAULT_SKIN ) {
$reqBase['skin'] = $this->getSkin();
}
if ( $this->getDebug() ) {
$reqBase['debug'] = 'true';
}
return $reqBase;
}
}

View file

@ -401,6 +401,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
// Perform replacements for mediawiki.js
$mwLoaderPairs = [
'$VARS.reqBase' => ResourceLoader::encodeJsonForScript( $context->getReqBase() ),
'$VARS.baseModules' => ResourceLoader::encodeJsonForScript( $this->getBaseModules() ),
'$VARS.maxQueryLength' => ResourceLoader::encodeJsonForScript(
$conf->get( 'ResourceLoaderMaxQueryLength' )

View file

@ -1606,11 +1606,7 @@
batch.sort();
// Query parameters common to all requests
reqBase = {
skin: mw.config.get( 'skin' ),
lang: mw.config.get( 'wgUserLanguage' ),
debug: mw.config.get( 'debug' )
};
reqBase = $VARS.reqBase;
// Split module list by source and by group.
splits = Object.create( null );