MediaWiki REL1_33
ResourceLoaderStartUpModule Class Reference

Module for ResourceLoader initialization. More...

Inheritance diagram for ResourceLoaderStartUpModule:
Collaboration diagram for ResourceLoaderStartUpModule:

Public Member Functions

 enableModuleContentVersion ()
 
 getBaseModulesInternal ()
 
 getGroup ()
 
 getModuleRegistrations (ResourceLoaderContext $context)
 Get registration code for all modules.
 
 getScript (ResourceLoaderContext $context)
 
 isRaw ()
 
 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 ()
 Get JS representing deprecation information for the current module if available.
 
 getFlip ( $context)
 
 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 getLegacyModules ()
 
static getStartupModules ()
 Internal modules used by ResourceLoader that cannot be depended on.
 
- 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 Protected Member Functions

static getImplicitDependencies (array $registryData, $moduleName)
 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
 
 $contents = []
 
array bool $deprecated = false
 
 $fileDeps = []
 
LoggerInterface $logger
 
 $msgBlobs = []
 
 $name = null
 
 $origin = self::ORIGIN_CORE_SITEWIDE
 
 $targets = [ 'desktop' ]
 
 $versionHash = []
 

Private Member Functions

 getBaseModules ()
 Base modules implicitly available to all modules.
 
 getConfigSettings ( $context)
 

Additional Inherited Members

- Public Attributes inherited from ResourceLoaderModule
const LOAD_GENERAL = 'general'
 
const LOAD_STYLES = 'styles'
 
const ORIGIN_ALL = 10
 
const ORIGIN_CORE_INDIVIDUAL = 2
 
const ORIGIN_CORE_SITEWIDE = 1
 
const ORIGIN_USER_INDIVIDUAL = 4
 
const ORIGIN_USER_SITEWIDE = 3
 
const TYPE_COMBINED = 'combined'
 
const TYPE_SCRIPTS = 'scripts'
 
const TYPE_STYLES = 'styles'
 
- 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 42 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 183 of file ResourceLoaderStartUpModule.php.

References $data, ResourceLoaderModule\$name, as, and getImplicitDependencies().

Referenced by getModuleRegistrations().

◆ enableModuleContentVersion()

ResourceLoaderStartUpModule::enableModuleContentVersion ( )
Returns
bool

Reimplemented from ResourceLoaderModule.

Definition at line 456 of file ResourceLoaderStartUpModule.php.

◆ getBaseModules()

ResourceLoaderStartUpModule::getBaseModules ( )
private

Base modules implicitly available to all modules.

Returns
array

Definition at line 371 of file ResourceLoaderStartUpModule.php.

References $wgIncludeLegacyJavaScript.

Referenced by getBaseModulesInternal(), and getScript().

◆ getBaseModulesInternal()

ResourceLoaderStartUpModule::getBaseModulesInternal ( )
Access:\n private For internal use by SpecialJavaScriptTest
Since
1.32
Returns
array

Definition at line 362 of file ResourceLoaderStartUpModule.php.

References getBaseModules().

◆ getConfigSettings()

ResourceLoaderStartUpModule::getConfigSettings (   $context)
private

◆ getGroup()

ResourceLoaderStartUpModule::getGroup ( )
Returns
string

Reimplemented from ResourceLoaderModule.

Definition at line 465 of file ResourceLoaderStartUpModule.php.

◆ getImplicitDependencies()

static ResourceLoaderStartUpModule::getImplicitDependencies ( array  $registryData,
  $moduleName 
)
staticprotected

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

Parameters
array$registryData
string$moduleName
Returns
array

Definition at line 139 of file ResourceLoaderStartUpModule.php.

References $data, and as.

Referenced by compileUnresolvedDependencies().

◆ getLegacyModules()

static ResourceLoaderStartUpModule::getLegacyModules ( )
static
Deprecated:
since 1.32 No longer used.
Returns
array

Definition at line 352 of file ResourceLoaderStartUpModule.php.

References wfDeprecated().

◆ 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 201 of file ResourceLoaderStartUpModule.php.

References $context, $data, $e, ResourceLoaderModule\$name, $out, $resourceLoader, ResourceLoaderModule\$versionHash, as, compileUnresolvedDependencies(), ResourceLoaderModule\getConfig(), null, and ResourceLoaderModule\ORIGIN_CORE_INDIVIDUAL.

Referenced by getScript().

◆ getScript()

ResourceLoaderStartUpModule::getScript ( ResourceLoaderContext  $context)

◆ getStartupModules()

static ResourceLoaderStartUpModule::getStartupModules ( )
static

Internal modules used by ResourceLoader that cannot be depended on.

These module(s) should have isRaw() return true, and are not legal dependencies (enforced by structure/ResourcesTest).

Deprecated:
since 1.32 No longer used.
Returns
array

Definition at line 343 of file ResourceLoaderStartUpModule.php.

References wfDeprecated().

◆ isRaw()

ResourceLoaderStartUpModule::isRaw ( )
Returns
bool

Reimplemented from ResourceLoaderModule.

Definition at line 330 of file ResourceLoaderStartUpModule.php.

◆ supportsURLLoading()

ResourceLoaderStartUpModule::supportsURLLoading ( )
Returns
bool

Reimplemented from ResourceLoaderModule.

Definition at line 449 of file ResourceLoaderStartUpModule.php.

Member Data Documentation

◆ $targets

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

Definition at line 43 of file ResourceLoaderStartUpModule.php.


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