Merge "(bug 35240) Fix mw.loader state machine."
[lhc/web/wiklou.git] / includes / resourceloader / ResourceLoaderContext.php
index 7e70713..4e28e76 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Context for resource loader modules.
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
@@ -21,7 +23,7 @@
  */
 
 /**
- * Object passed around to modules which contains information about the state 
+ * Object passed around to modules which contains information about the state
  * of a specific loader request
  */
 class ResourceLoaderContext {
@@ -42,6 +44,10 @@ class ResourceLoaderContext {
 
        /* Methods */
 
+       /**
+        * @param $resourceLoader ResourceLoader
+        * @param $request WebRequest
+        */
        public function __construct( $resourceLoader, WebRequest $request ) {
                global $wgDefaultSkin, $wgResourceLoaderDebug;
 
@@ -59,11 +65,13 @@ class ResourceLoaderContext {
                $this->only      = $request->getVal( 'only' );
                $this->version   = $request->getVal( 'version' );
 
-               if ( !$this->skin ) {
+               $skinnames = Skin::getSkinNames();
+               // If no skin is specified, or we don't recognize the skin, use the default skin
+               if ( !$this->skin || !isset( $skinnames[$this->skin] ) ) {
                        $this->skin = $wgDefaultSkin;
                }
        }
-       
+
        /**
         * Expand a string of the form jquery.foo,bar|jquery.ui.baz,quux to
         * an array of module names like array( 'jquery.foo', 'jquery.bar',
@@ -99,9 +107,10 @@ class ResourceLoaderContext {
                }
                return $retval;
        }
-       
+
        /**
         * Return a dummy ResourceLoaderContext object suitable for passing into things that don't "really" need a context
+        * @return ResourceLoaderContext
         */
        public static function newDummyContext() {
                return new self( null, new FauxRequest( array() ) );
@@ -218,7 +227,7 @@ class ResourceLoaderContext {
        public function getHash() {
                if ( !isset( $this->hash ) ) {
                        $this->hash = implode( '|', array(
-                               $this->getLanguage(), $this->getDirection(), $this->skin, $this->user, 
+                               $this->getLanguage(), $this->getDirection(), $this->skin, $this->user,
                                $this->debug, $this->only, $this->version
                        ) );
                }