mediawiki.jqueryMsg: Combine the two generated data scripts
authorTimo Tijhof <krinklemail@gmail.com>
Thu, 16 Aug 2018 20:09:59 +0000 (21:09 +0100)
committerTimo Tijhof <krinklemail@gmail.com>
Thu, 16 Aug 2018 20:11:35 +0000 (21:11 +0100)
No need to output two mw.jqueryMsg.setParserDefaults() calls.
Follows-up 7e65b6b3a766c1.

Also:
* Fix an inline comment that referred to a non-existent method.
* Document why we pass deep=true.

Change-Id: I7414d4188a4d933e2132f80135cbda87241580c0

includes/resourceloader/ResourceLoaderJqueryMsgModule.php
resources/src/mediawiki.jqueryMsg/mediawiki.jqueryMsg.js

index bef34f9..8f4aa3b 100644 (file)
@@ -33,8 +33,7 @@ class ResourceLoaderJqueryMsgModule extends ResourceLoaderFileModule {
                $fileScript = parent::getScript( $context );
 
                $tagData = Sanitizer::getRecognizedTagData();
-               $parserDefaults = [];
-               $parserDefaults['allowedHtmlElements'] = array_merge(
+               $allowedHtmlElements = array_merge(
                        array_keys( $tagData['htmlpairs'] ),
                        array_diff(
                                array_keys( $tagData['htmlsingle'] ),
@@ -42,26 +41,24 @@ class ResourceLoaderJqueryMsgModule extends ResourceLoaderFileModule {
                        )
                );
 
-               $mainDataScript = Xml::encodeJsCall( 'mw.jqueryMsg.setParserDefaults', [ $parserDefaults ] );
-
-               // Associative array mapping magic words (e.g. SITENAME)
-               // to their values.
                $magicWords = [
                        'SITENAME' => $this->getConfig()->get( 'Sitename' ),
                ];
-
                Hooks::run( 'ResourceLoaderJqueryMsgModuleMagicWords', [ $context, &$magicWords ] );
 
-               $magicWordExtendData = [
+               $parserDefaults = [
+                       'allowedHtmlElements' => $allowedHtmlElements,
                        'magic' => $magicWords,
                ];
 
-               $magicWordDataScript = Xml::encodeJsCall( 'mw.jqueryMsg.setParserDefaults', [
-                       $magicWordExtendData,
-                       /* deep= */ true
+               $setDataScript = Xml::encodeJsCall( 'mw.jqueryMsg.setParserDefaults', [
+                       $parserDefaults,
+                       // Pass deep=true because mediawiki.jqueryMsg.js contains
+                       // page-specific magic words that must not be overwritten.
+                       true,
                ] );
 
-               return $fileScript . $mainDataScript . $magicWordDataScript;
+               return $fileScript . $setDataScript;
        }
 
        /**
index 437800a..33363cb 100644 (file)
@@ -20,7 +20,7 @@
                        },
                        // Whitelist for allowed HTML elements in wikitext.
                        // Self-closing tags are not currently supported.
-                       // Can be populated via setPrivateData().
+                       // Can be populated via setParserDefaults().
                        allowedHtmlElements: [],
                        // Key tag name, value allowed attributes for that tag.
                        // See Sanitizer::setupAttributeWhitelist