Followup r111898; Do the same for the attribute whitelist.
authorDaniel Friesen <dantman@users.mediawiki.org>
Mon, 20 Feb 2012 00:03:24 +0000 (00:03 +0000)
committerDaniel Friesen <dantman@users.mediawiki.org>
Mon, 20 Feb 2012 00:03:24 +0000 (00:03 +0000)
includes/Sanitizer.php

index 4e38c4f..785e2ec 100644 (file)
@@ -1478,10 +1478,7 @@ class Sanitizer {
         * @return Array
         */
        static function attributeWhitelist( $element ) {
-               static $list;
-               if( !isset( $list ) ) {
-                       $list = Sanitizer::setupAttributeWhitelist();
-               }
+               $list = Sanitizer::setupAttributeWhitelist();
                return isset( $list[$element] )
                        ? $list[$element]
                        : array();
@@ -1495,6 +1492,13 @@ class Sanitizer {
        static function setupAttributeWhitelist() {
                global $wgAllowRdfaAttributes, $wgHtml5, $wgAllowMicrodataAttributes;
 
+               static $whitelist, $staticInitialised;
+               $globalContext = implode( '-', compact( 'wgAllowRdfaAttributes', 'wgHtml5', 'wgAllowMicrodataAttributes' ) );
+
+               if ( isset( $whitelist ) && $staticInitialised == $globalContext ) {
+                       return $whitelist;
+               }
+
                $common = array( 'id', 'class', 'lang', 'dir', 'title', 'style' );
 
                if ( $wgAllowRdfaAttributes ) {
@@ -1673,6 +1677,8 @@ class Sanitizer {
                        );
                }
 
+               $staticInitialised = $globalContext;
+
                return $whitelist;
        }