* @return array
*/
protected function getConfigSettings( $context ) {
-
$hash = $context->getHash();
if ( isset( $this->configVars[$hash] ) ) {
return $this->configVars[$hash];
'wgIllegalFileChars' => Title::convertByteClassToUnicodeClass( $illegalFileChars ),
'wgResourceLoaderStorageVersion' => $conf->get( 'ResourceLoaderStorageVersion' ),
'wgResourceLoaderStorageEnabled' => $conf->get( 'ResourceLoaderStorageEnabled' ),
- 'wgResourceLoaderLegacyModules' => self::getLegacyModules(),
'wgForeignUploadTargets' => $conf->get( 'ForeignUploadTargets' ),
'wgEnableUploads' => $conf->get( 'EnableUploads' ),
];
// The list of implicit dependencies won't be altered, so we can
// cache them without having to worry.
if ( !isset( $dependencyCache[$moduleName] ) ) {
-
if ( !isset( $registryData[$moduleName] ) ) {
// Dependencies may not exist
$dependencyCache[$moduleName] = [];
return true;
}
+ /**
+ * @return array
+ */
+ public function getPreloadLinks( ResourceLoaderContext $context ) {
+ $url = self::getStartupModulesUrl( $context );
+ return [
+ $url => [ 'as' => 'script' ]
+ ];
+ }
+
/**
* Base modules required for the base environment of ResourceLoader
*
*/
public static function getStartupModulesUrl( ResourceLoaderContext $context ) {
$rl = $context->getResourceLoader();
-
$derivative = new DerivativeResourceLoaderContext( $context );
- $derivative->setModules( self::getStartupModules() );
+ $derivative->setModules( array_merge(
+ self::getStartupModules(),
+ self::getLegacyModules()
+ ) );
$derivative->setOnly( 'scripts' );
// Must setModules() before makeVersionQuery()
$derivative->setVersion( $rl->makeVersionQuery( $derivative ) );
}, [
'$VARS.wgLegacyJavaScriptGlobals' => $this->getConfig()->get( 'LegacyJavaScriptGlobals' ),
'$VARS.configuration' => $this->getConfigSettings( $context ),
+ // This url may be preloaded. See getPreloadLinks().
'$VARS.baseModulesUri' => self::getStartupModulesUrl( $context ),
] );
$pairs['$CODE.registrations()'] = str_replace(