resourceloader: Set value for getStoreKey in server-side
authorFomafix <fomafix@googlemail.com>
Sat, 29 Jun 2019 07:47:57 +0000 (09:47 +0200)
committerTimo Tijhof <krinklemail@gmail.com>
Thu, 4 Jul 2019 16:48:34 +0000 (17:48 +0100)
This change reduces the size of the JavaScript resources.

Change-Id: I850249f910f6275c1b963dc5421ba706ed6e9a56

includes/resourceloader/ResourceLoaderStartUpModule.php
resources/src/startup/mediawiki.js

index 41e66ef..7880f6f 100644 (file)
@@ -366,6 +366,16 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                return $baseModules;
        }
 
+       /**
+        * Get the localStorage key for the entire module store. The key references
+        * $wgDBname to prevent clashes between wikis under the same web domain.
+        *
+        * @return string localStorage item key for JavaScript
+        */
+       private function getStoreKey() {
+               return 'MediaWikiModuleStore:' . $this->getConfig()->get( 'DBname' );
+       }
+
        /**
         * Get the key on which the JavaScript module cache (mw.loader.store) will vary.
         *
@@ -412,6 +422,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        '$VARS.maxQueryLength' => ResourceLoader::encodeJsonForScript(
                                $conf->get( 'ResourceLoaderMaxQueryLength' )
                        ),
+                       '$VARS.storeKey' => ResourceLoader::encodeJsonForScript( $this->getStoreKey() ),
                        '$VARS.storeVary' => ResourceLoader::encodeJsonForScript( $this->getStoreVary( $context ) ),
                ];
                $profilerStubs = [
index 1583445..e77555c 100644 (file)
                                         * @return {string} localStorage item key
                                         */
                                        getStoreKey: function () {
-                                               return 'MediaWikiModuleStore:' + mw.config.get( 'wgDBname' );
+                                               return $VARS.storeKey;
                                        },
 
                                        /**