MediaWiki REL1_34
ResourceLoaderStartUpModule Class Reference

Module for ResourceLoader initialization. More...

Inheritance diagram for ResourceLoaderStartUpModule:
Collaboration diagram for ResourceLoaderStartUpModule:

Public Member Functions

 enableModuleContentVersion ()
 
 getModuleRegistrations (ResourceLoaderContext $context)
 Get registration code for all modules.
 
 getScript (ResourceLoaderContext $context)
 
 supportsURLLoading ()
 
- Public Member Functions inherited from ResourceLoaderModule
 getConfig ()
 
 getDefinitionSummary (ResourceLoaderContext $context)
 Get the definition summary for this module.
 
 getDependencies (ResourceLoaderContext $context=null)
 Get a list of modules this module depends on.
 
 getDeprecationInformation (ResourceLoaderContext $context=null)
 Get JS representing deprecation information for the current module if available.
 
 getFlip (ResourceLoaderContext $context)
 
 getGroup ()
 Get the group this module is in.
 
 getHeaders (ResourceLoaderContext $context)
 Get headers to send as part of a module web response.
 
 getMessages ()
 Get the messages needed for this module.
 
 getModuleContent (ResourceLoaderContext $context)
 Get an array of this module's resources.
 
 getName ()
 Get this module's name.
 
 getOrigin ()
 Get this module's origin.
 
 getScriptURLsForDebug (ResourceLoaderContext $context)
 Get the URL or URLs to load for this module's JS in debug mode.
 
 getSkipFunction ()
 Get the skip function.
 
 getSource ()
 Get the source of this module.
 
 getStyles (ResourceLoaderContext $context)
 Get all CSS for this module for a given skin.
 
 getStyleURLsForDebug (ResourceLoaderContext $context)
 Get the URL or URLs to load for this module's CSS in debug mode.
 
 getTargets ()
 Get target(s) for the module, eg ['desktop'] or ['desktop', 'mobile'].
 
 getTemplates ()
 Takes named templates by the module and returns an array mapping.
 
 getType ()
 Get the module's load type.
 
 getVersionHash (ResourceLoaderContext $context)
 Get a string identifying the current version of this module in a given context.
 
 isKnownEmpty (ResourceLoaderContext $context)
 Check whether this module is known to be empty.
 
 setConfig (Config $config)
 
 setFileDependencies (ResourceLoaderContext $context, $files)
 Set in-object cache for file dependencies.
 
 setLogger (LoggerInterface $logger)
 
 setMessageBlob ( $blob, $lang)
 Set in-object cache for message blobs.
 
 setName ( $name)
 Set this module's name.
 
 shouldEmbedModule (ResourceLoaderContext $context)
 Check whether this module should be embeded rather than linked.
 

Static Public Member Functions

static compileUnresolvedDependencies (array &$registryData)
 Optimize the dependency tree in $this->modules.
 
- Static Public Member Functions inherited from ResourceLoaderModule
static expandRelativePaths (array $filePaths)
 Expand directories relative to $IP.
 
static getRelativePaths (array $filePaths)
 Make file paths relative to MediaWiki directory.
 
static getVary (ResourceLoaderContext $context)
 Get vary string.
 

Static Protected Member Functions

static getImplicitDependencies (array $registryData, $moduleName, array $handled=[])
 Recursively get all explicit and implicit dependencies for to the given module.
 
- Static Protected Member Functions inherited from ResourceLoaderModule
static javaScriptParser ()
 
static safeFileHash ( $filePath)
 Compute a non-cryptographic string hash of a file's contents.
 
static safeFilemtime ( $filePath)
 Safe version of filemtime(), which doesn't throw a PHP warning if the file doesn't exist.
 

Protected Attributes

 $targets = [ 'desktop', 'mobile' ]
 
- Protected Attributes inherited from ResourceLoaderModule
Config $config
 
array $contents = []
 Map of (context hash => cached module content)
 
string bool $deprecated = false
 Deprecation string or true if deprecated; false otherwise.
 
array $fileDeps = []
 Map of (variant => indirect file dependencies)
 
LoggerInterface $logger
 
array $msgBlobs = []
 Map of (language => in-object cache for message blob)
 
string null $name = null
 Module name.
 
int $origin = self::ORIGIN_CORE_SITEWIDE
 Script and style modules form a hierarchy of trustworthiness, with core modules like skins and jQuery as most trustworthy, and user scripts as least trustworthy.
 
string[] $targets = [ 'desktop' ]
 What client platforms the module targets (e.g.
 
array $versionHash = []
 Map of (context hash => cached module version hash)
 

Private Member Functions

 getBaseModules ()
 Base modules implicitly available to all modules.
 
 getConfigSettings (ResourceLoaderContext $context)
 
 getGroupId ( $groupName)
 
 getMaxQueryLength ()
 
 getStoreKey ()
 Get the localStorage key for the entire module store.
 
 getStoreVary (ResourceLoaderContext $context)
 Get the key on which the JavaScript module cache (mw.loader.store) will vary.
 

Private Attributes

 $groupIds
 

Additional Inherited Members

- Protected Member Functions inherited from ResourceLoaderModule
 buildContent (ResourceLoaderContext $context)
 Bundle all resources attached to this module into an array.
 
 getFileDependencies (ResourceLoaderContext $context)
 Get the files this module depends on indirectly for a given skin.
 
 getLessVars (ResourceLoaderContext $context)
 Get module-specific LESS variables, if any.
 
 getLogger ()
 
 getMessageBlob (ResourceLoaderContext $context)
 Get the hash of the message blob.
 
 getPreloadLinks (ResourceLoaderContext $context)
 Get a list of resources that web browsers may preload.
 
 saveFileDependencies (ResourceLoaderContext $context, $localFileRefs)
 Set the files this module depends on indirectly for a given skin.
 
 validateScriptFile ( $fileName, $contents)
 Validate a given script file; if valid returns the original source.
 

Detailed Description

Module for ResourceLoader initialization.

See also https://www.mediawiki.org/wiki/ResourceLoader/Features#Startup_Module

The startup module, as being called only from ResourceLoaderClientHtml, has the ability to vary based extra query parameters, in addition to those from ResourceLoaderContext:

  • target: Only register modules in the client intended for this target. Default: "desktop". See also: OutputPage::setTarget(), ResourceLoaderModule::getTargets().
  • safemode: Only register modules that have ORIGIN_CORE as their origin. This effectively disables ORIGIN_USER modules. (T185303) See also: OutputPage::disallowUserJs()

Definition at line 45 of file ResourceLoaderStartUpModule.php.

Member Function Documentation

◆ compileUnresolvedDependencies()

static ResourceLoaderStartUpModule::compileUnresolvedDependencies ( array &  $registryData)
static

Optimize the dependency tree in $this->modules.

The optimization basically works like this: Given we have module A with the dependencies B and C and module B with the dependency C. Now we don't have to tell the client to explicitly fetch module C as that's already included in module B.

This way we can reasonably reduce the amount of module registration data send to the client.

Parameters
array&$registryDataModules keyed by name with properties:
  • string 'version'
  • array 'dependencies'
  • string|null 'group'
  • string 'source'

Definition at line 204 of file ResourceLoaderStartUpModule.php.

References ResourceLoaderModule\$name, and getImplicitDependencies().

Referenced by getModuleRegistrations().

◆ enableModuleContentVersion()

ResourceLoaderStartUpModule::enableModuleContentVersion ( )
Returns
bool

Reimplemented from ResourceLoaderModule.

Definition at line 499 of file ResourceLoaderStartUpModule.php.

◆ getBaseModules()

ResourceLoaderStartUpModule::getBaseModules ( )
private

Base modules implicitly available to all modules.

Returns
array

Definition at line 373 of file ResourceLoaderStartUpModule.php.

◆ getConfigSettings()

ResourceLoaderStartUpModule::getConfigSettings ( ResourceLoaderContext  $context)
private

◆ getGroupId()

ResourceLoaderStartUpModule::getGroupId (   $groupName)
private

Definition at line 356 of file ResourceLoaderStartUpModule.php.

Referenced by getModuleRegistrations().

◆ getImplicitDependencies()

static ResourceLoaderStartUpModule::getImplicitDependencies ( array  $registryData,
  $moduleName,
array  $handled = [] 
)
staticprotected

Recursively get all explicit and implicit dependencies for to the given module.

Parameters
array$registryData
string$moduleName
string[]$handledInternal parameter for recursion. (Optional)
Returns
array
Exceptions
ResourceLoaderCircularDependencyError

Definition at line 141 of file ResourceLoaderStartUpModule.php.

Referenced by compileUnresolvedDependencies().

◆ getMaxQueryLength()

ResourceLoaderStartUpModule::getMaxQueryLength ( )
private
See also
$wgResourceLoaderMaxQueryLength
Returns
int

Definition at line 392 of file ResourceLoaderStartUpModule.php.

◆ getModuleRegistrations()

ResourceLoaderStartUpModule::getModuleRegistrations ( ResourceLoaderContext  $context)

Get registration code for all modules.

Parameters
ResourceLoaderContext$context
Returns
string JavaScript code for registering all modules with the client loader

Definition at line 228 of file ResourceLoaderStartUpModule.php.

References $context, ResourceLoaderModule\$name, $resourceLoader, ResourceLoaderModule\$versionHash, compileUnresolvedDependencies(), ResourceLoaderModule\getConfig(), and getGroupId().

◆ getScript()

ResourceLoaderStartUpModule::getScript ( ResourceLoaderContext  $context)
Parameters
ResourceLoaderContext$context
Returns
string JavaScript code

Reimplemented from ResourceLoaderModule.

Definition at line 421 of file ResourceLoaderStartUpModule.php.

References $context, and $IP.

◆ getStoreKey()

ResourceLoaderStartUpModule::getStoreKey ( )
private

Get the localStorage key for the entire module store.

The key references $wgDBname to prevent clashes between wikis under the same web domain.

Returns
string localStorage item key for JavaScript

Definition at line 384 of file ResourceLoaderStartUpModule.php.

References ResourceLoaderModule\getConfig().

◆ getStoreVary()

ResourceLoaderStartUpModule::getStoreVary ( ResourceLoaderContext  $context)
private

Get the key on which the JavaScript module cache (mw.loader.store) will vary.

Parameters
ResourceLoaderContext$context
Returns
string String of concatenated vary conditions

Definition at line 409 of file ResourceLoaderStartUpModule.php.

References $context.

◆ supportsURLLoading()

ResourceLoaderStartUpModule::supportsURLLoading ( )
Returns
bool

Reimplemented from ResourceLoaderModule.

Definition at line 492 of file ResourceLoaderStartUpModule.php.

Member Data Documentation

◆ $groupIds

ResourceLoaderStartUpModule::$groupIds
private
Initial value:
= [
'user' => 0,
'private' => 1,
]

Definition at line 48 of file ResourceLoaderStartUpModule.php.

◆ $targets

ResourceLoaderStartUpModule::$targets = [ 'desktop', 'mobile' ]
protected

Definition at line 46 of file ResourceLoaderStartUpModule.php.


The documentation for this class was generated from the following file: