X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/comptes/journal.php?a=blobdiff_plain;f=includes%2Fresourceloader%2FResourceLoaderStartUpModule.php;h=56fcb6c368d5a677783e5a8196859b8bd3bcebab;hb=d26ae7b17f48f3a84bb2e1934c16ead165a250a0;hp=78775fb59741ba1daee6b0ed9ff65b45abb41cb5;hpb=fa0f6f34972c0e0f4aac24a03b3efdfc45f256f6;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/resourceloader/ResourceLoaderStartUpModule.php b/includes/resourceloader/ResourceLoaderStartUpModule.php index 78775fb597..56fcb6c368 100644 --- a/includes/resourceloader/ResourceLoaderStartUpModule.php +++ b/includes/resourceloader/ResourceLoaderStartUpModule.php @@ -58,7 +58,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule { * @param ResourceLoaderContext $context * @return array */ - private function getConfigSettings( $context ) { + private function getConfigSettings( ResourceLoaderContext $context ) { $conf = $this->getConfig(); /** @@ -310,7 +310,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule { } $skipFunction = $module->getSkipFunction(); - if ( $skipFunction !== null && !ResourceLoader::inDebugMode() ) { + if ( $skipFunction !== null && !$context->getDebug() ) { $skipFunction = ResourceLoader::filter( 'minify-js', $skipFunction ); } @@ -326,7 +326,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule { self::compileUnresolvedDependencies( $registryData ); // Register sources - $out .= ResourceLoader::makeLoaderSourcesScript( $resourceLoader->getSources() ); + $out .= ResourceLoader::makeLoaderSourcesScript( $context, $resourceLoader->getSources() ); // Figure out the different call signatures for mw.loader.register $registrations = []; @@ -344,10 +344,10 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule { } // Register modules - $out .= "\n" . ResourceLoader::makeLoaderRegisterScript( $registrations ); + $out .= "\n" . ResourceLoader::makeLoaderRegisterScript( $context, $registrations ); if ( $states ) { - $out .= "\n" . ResourceLoader::makeLoaderStateScript( $states ); + $out .= "\n" . ResourceLoader::makeLoaderStateScript( $context, $states ); } return $out; @@ -385,6 +385,21 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule { 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. * @@ -426,23 +441,21 @@ 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' ) - ), + '$VARS.reqBase' => $context->encodeJson( $context->getReqBase() ), + '$VARS.baseModules' => $context->encodeJson( $this->getBaseModules() ), + '$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' => ResourceLoader::encodeJsonForScript( + '$VARS.storeEnabled' => $context->encodeJson( $conf->get( 'ResourceLoaderStorageEnabled' ) && !$context->getDebug() ), - '$VARS.wgLegacyJavaScriptGlobals' => ResourceLoader::encodeJsonForScript( + '$VARS.wgLegacyJavaScriptGlobals' => $context->encodeJson( $conf->get( 'LegacyJavaScriptGlobals' ) ), - '$VARS.storeKey' => ResourceLoader::encodeJsonForScript( $this->getStoreKey() ), - '$VARS.storeVary' => ResourceLoader::encodeJsonForScript( $this->getStoreVary( $context ) ), - '$VARS.groupUser' => ResourceLoader::encodeJsonForScript( $this->getGroupId( 'user' ) ), - '$VARS.groupPrivate' => ResourceLoader::encodeJsonForScript( $this->getGroupId( 'private' ) ), + '$VARS.storeKey' => $context->encodeJson( $this->getStoreKey() ), + '$VARS.storeVary' => $context->encodeJson( $this->getStoreVary( $context ) ), + '$VARS.groupUser' => $context->encodeJson( $this->getGroupId( 'user' ) ), + '$VARS.groupPrivate' => $context->encodeJson( $this->getGroupId( 'private' ) ), ]; $profilerStubs = [ '$CODE.profileExecuteStart();' => 'mw.loader.profiler.onExecuteStart( module );', @@ -461,7 +474,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule { // Perform string replacements for startup.js $pairs = [ - '$VARS.configuration' => ResourceLoader::encodeJsonForScript( + '$VARS.configuration' => $context->encodeJson( $this->getConfigSettings( $context ) ), // Raw JavaScript code (not JSON)