resourceloader: Don't register raw modules client-side
authorKunal Mehta <legoktm@gmail.com>
Thu, 28 Aug 2014 20:16:03 +0000 (13:16 -0700)
committerKrinkle <krinklemail@gmail.com>
Thu, 28 Aug 2014 20:30:25 +0000 (20:30 +0000)
Prevents modules from depending on raw modules, like 'mediawiki' & 'jquery'.

To do that, those modules (as designated by raw=>true), aren't
registered in the module registry.

Change-Id: Iac37a236964dc40d6259988a0baaaa6331b54ec6

includes/resourceloader/ResourceLoaderStartUpModule.php

index 78fe45c..e455ef1 100644 (file)
@@ -207,6 +207,13 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                                continue;
                        }
 
+                       if ( $module->isRaw() ) {
+                               // Don't register "raw" modules (like 'jquery' and 'mediawiki') client-side because
+                               // depending on them is illegal anyway and would only lead to them being reloaded
+                               // causing any state to be lost (like jQuery plugins, mw.config etc.)
+                               continue;
+                       }
+
                        // getModifiedTime() is supposed to return a UNIX timestamp, but it doesn't always
                        // seem to do that, and custom implementations might forget. Coerce it to TS_UNIX
                        $moduleMtime = wfTimestamp( TS_UNIX, $module->getModifiedTime( $context ) );