// Build list of variables
$skin = $context->getSkin();
$vars = [
- 'wgLoadScript' => $conf->get( 'LoadScript' ),
'debug' => $context->getDebug(),
'skin' => $skin,
'stylepath' => $conf->get( 'StylePath' ),
continue;
}
- if ( $module->isRaw() ) {
- // Don't register "raw" modules (like 'startup') client-side because depending on them
- // is illegal anyway and would only lead to them being loaded a second time,
- // causing any state to be lost.
+ if ( $module instanceof ResourceLoaderStartUpModule ) {
+ // Don't register 'startup' to the client because loading it lazily or depending
+ // on it doesn't make sense, because the startup module *is* the client.
+ // Registering would be a waste of bandwidth and memory and risks somehow causing
+ // it to load a second time.
// ATTENTION: Because of the line below, this is not going to cause infinite recursion.
// Think carefully before making changes to this code!
return $out;
}
- /**
- * @return bool
- */
- public function isRaw() {
- return true;
- }
-
/**
* @private For internal use by SpecialJavaScriptTest
* @since 1.32
* @return array
+ * @codeCoverageIgnore
*/
public function getBaseModulesInternal() {
return $this->getBaseModules();
// 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' )
// and hash it to determine the version (as used by E-Tag HTTP response header).
return true;
}
-
- /**
- * @return string
- */
- public function getGroup() {
- return 'startup';
- }
}