From f2ae03a736408e4544e44a2ad85f946ace29af66 Mon Sep 17 00:00:00 2001 From: Roan Kattouw Date: Thu, 18 Jul 2019 14:48:42 -0700 Subject: [PATCH] resourceloader: Add Config parameter to packageFiles callbacks Callbacks used to generate the contents of virtual files in packageFiles modules only received a ResourceLoaderContext object. They could access the Config object through ResourceLoaderContext::getConfig(), but that method is deprecated. Pass the Config object as a second parameter to these callbacks, so that they don't have to use a deprecated method. Change-Id: Ia4666914e9b07f298ee5ae30ae8c70a3e83b0910 --- includes/resourceloader/ResourceLoaderFileModule.php | 7 ++++--- resources/Resources.php | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/includes/resourceloader/ResourceLoaderFileModule.php b/includes/resourceloader/ResourceLoaderFileModule.php index fbc59fe0f4..af303138f6 100644 --- a/includes/resourceloader/ResourceLoaderFileModule.php +++ b/includes/resourceloader/ResourceLoaderFileModule.php @@ -1159,11 +1159,12 @@ class ResourceLoaderFileModule extends ResourceLoaderModule { throw new MWException( __METHOD__ . ": invalid versionCallback for file" . " \"{$fileInfo['name']}\" in module \"{$this->getName()}\"" ); } - $expanded['definitionSummary'] = ( $fileInfo['versionCallback'] )( $context ); + $expanded['definitionSummary'] = + ( $fileInfo['versionCallback'] )( $context, $this->getConfig() ); // Don't invoke 'callback' here as it may be expensive (T223260). $expanded['callback'] = $fileInfo['callback']; } else { - $expanded['content'] = ( $fileInfo['callback'] )( $context ); + $expanded['content'] = ( $fileInfo['callback'] )( $context, $this->getConfig() ); } } elseif ( isset( $fileInfo['config'] ) ) { if ( $type !== 'data' ) { @@ -1240,7 +1241,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule { $fileInfo['content'] = $content; unset( $fileInfo['filePath'] ); } elseif ( isset( $fileInfo['callback'] ) ) { - $fileInfo['content'] = ( $fileInfo['callback'] )( $context ); + $fileInfo['content'] = ( $fileInfo['callback'] )( $context, $this->getConfig() ); unset( $fileInfo['callback'] ); } diff --git a/resources/Resources.php b/resources/Resources.php index 6298086a21..9455994419 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -1526,7 +1526,9 @@ return [ 'remoteBasePath' => "$wgResourceBasePath/resources/src/mediawiki.jqueryMsg", 'packageFiles' => [ 'mediawiki.jqueryMsg.js', - [ 'name' => 'parserDefaults.json', 'callback' => function ( ResourceLoaderContext $context ) { + [ 'name' => 'parserDefaults.json', 'callback' => function ( + ResourceLoaderContext $context, Config $config + ) { $tagData = Sanitizer::getRecognizedTagData(); $allowedHtmlElements = array_merge( array_keys( $tagData['htmlpairs'] ), @@ -1537,7 +1539,7 @@ return [ ); $magicWords = [ - 'SITENAME' => $context->getConfig()->get( 'Sitename' ), + 'SITENAME' => $config->get( 'Sitename' ), ]; Hooks::run( 'ResourceLoaderJqueryMsgModuleMagicWords', [ $context, &$magicWords ] ); -- 2.20.1