From d13e5b757bd9980be9ad36df6be69bfe61f1c220 Mon Sep 17 00:00:00 2001 From: Fomafix Date: Mon, 24 Jun 2019 08:02:17 +0200 Subject: [PATCH] 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 --- .../resourceloader/ResourceLoaderContext.php | 20 +++++++++++++++++++ .../ResourceLoaderStartUpModule.php | 1 + resources/src/startup/mediawiki.js | 6 +----- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/includes/resourceloader/ResourceLoaderContext.php b/includes/resourceloader/ResourceLoaderContext.php index 95a81e6d4b..1f06ede1b7 100644 --- a/includes/resourceloader/ResourceLoaderContext.php +++ b/includes/resourceloader/ResourceLoaderContext.php @@ -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; + } } diff --git a/includes/resourceloader/ResourceLoaderStartUpModule.php b/includes/resourceloader/ResourceLoaderStartUpModule.php index b90b618b7d..2e7c869a8f 100644 --- a/includes/resourceloader/ResourceLoaderStartUpModule.php +++ b/includes/resourceloader/ResourceLoaderStartUpModule.php @@ -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' ) diff --git a/resources/src/startup/mediawiki.js b/resources/src/startup/mediawiki.js index 4b65ed53e8..2976dca849 100644 --- a/resources/src/startup/mediawiki.js +++ b/resources/src/startup/mediawiki.js @@ -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 ); -- 2.20.1