(bug 29569) Avoid fatal errors in OutputPage when nonexistent module names are passed in
authorRoan Kattouw <catrope@users.mediawiki.org>
Wed, 23 Nov 2011 13:27:50 +0000 (13:27 +0000)
committerRoan Kattouw <catrope@users.mediawiki.org>
Wed, 23 Nov 2011 13:27:50 +0000 (13:27 +0000)
includes/OutputPage.php

index 398cdde..9d5c5a1 100644 (file)
@@ -2476,7 +2476,8 @@ $templates
                foreach ( (array) $modules as $name ) {
                        $module = $resourceLoader->getModule( $name );
                        # Check that we're allowed to include this module on this page
-                       if ( ( $module->getOrigin() > $this->getAllowedModules( ResourceLoaderModule::TYPE_SCRIPTS )
+                       if ( !$module
+                               || ( $module->getOrigin() > $this->getAllowedModules( ResourceLoaderModule::TYPE_SCRIPTS )
                                        && $only == ResourceLoaderModule::TYPE_SCRIPTS )
                                || ( $module->getOrigin() > $this->getAllowedModules( ResourceLoaderModule::TYPE_STYLES )
                                        && $only == ResourceLoaderModule::TYPE_STYLES )
@@ -3127,7 +3128,11 @@ $templates
                }
 
                foreach ( $moduleStyles as $name ) {
-                       $group = $resourceLoader->getModule( $name )->getGroup();
+                       $module = $resourceLoader->getModule( $name );
+                       if ( !$module ) {
+                               continue;
+                       }
+                       $group = $module->getGroup();
                        // Modules in groups named "other" or anything different than "user", "site" or "private"
                        // will be placed in the "other" group
                        $styles[isset( $styles[$group] ) ? $group : 'other'][] = $name;