http://www.mediawiki.org/wiki/Special:Code/MediaWiki/69064

Revision: 69064
Author:   dale
Date:     2010-07-05 19:21:11 +0000 (Mon, 05 Jul 2010)

Log Message:
-----------
bug 24268 use for(var i=0; type loop for array iteration as to not iterate 
extended array prototypes. 

Modified Paths:
--------------
    branches/MwEmbedStandAlone/modules/AddMedia/tests/Firefogg_GUI.html
    branches/MwEmbedStandAlone/modules/TimedText/loader.js
    branches/MwEmbedStandAlone/mwEmbed.js

Modified: branches/MwEmbedStandAlone/modules/AddMedia/tests/Firefogg_GUI.html
===================================================================
--- branches/MwEmbedStandAlone/modules/AddMedia/tests/Firefogg_GUI.html 
2010-07-05 18:46:33 UTC (rev 69063)
+++ branches/MwEmbedStandAlone/modules/AddMedia/tests/Firefogg_GUI.html 
2010-07-05 19:21:11 UTC (rev 69064)
@@ -28,9 +28,9 @@
                langKey = 'en';
        }
        
-               document.write( '<script type="text/javascript" 
src="../../../ResourceLoader.php?class=window.jQuery,mwEmbed,mw.style.mwCommon&uselang='
 + langKey + '"><\/script>' );  
+               document.write( '<script type="text/javascript" 
src="../../../ResourceLoader.php?class=window.jQuery,mwEmbed,mw.style.mwCommon&uselang='
 + langKey + '&debug=true"><\/script>' );  
      </script> 
-        <!--  <script type="text/javascript" 
src="../../../mwEmbed.js?debug=true"></script>    -->
+       <!-- <script type="text/javascript" 
src="../../../mwEmbed.js?debug=true"></script> --> 
 <style type="text/css" media="all">
 body {
   margin: 0;

Modified: branches/MwEmbedStandAlone/modules/TimedText/loader.js
===================================================================
--- branches/MwEmbedStandAlone/modules/TimedText/loader.js      2010-07-05 
18:46:33 UTC (rev 69063)
+++ branches/MwEmbedStandAlone/modules/TimedText/loader.js      2010-07-05 
19:21:11 UTC (rev 69064)
@@ -71,10 +71,9 @@
                
                // Add timed text items if flag set. 
                // its oky if we merge in multiple times the loader can handle 
it
-               if( mwLoadTimedTextFlag ) {
+               if( mwLoadTimedTextFlag ) {                     
                        $j.merge( classRequest, mwTimedTextRequestSet );
                }       
-       
        } );
                
        

Modified: branches/MwEmbedStandAlone/mwEmbed.js
===================================================================
--- branches/MwEmbedStandAlone/mwEmbed.js       2010-07-05 18:46:33 UTC (rev 
69063)
+++ branches/MwEmbedStandAlone/mwEmbed.js       2010-07-05 19:21:11 UTC (rev 
69064)
@@ -309,8 +309,12 @@
                * @param {Function} callback Function called once loading is 
complete
                *               
                */                              
-               load: function( loadRequest, instanceCallback ) {
+               load: function( loadRequest, instanceCallback ) {               
        
                        //mw.log("mw.load:: " + loadRequest );
+
+                       // Throw out any loadRequests that are not strings
+                       loadRequest = this.cleanLoadRequest( loadRequest );
+
                        // Ensure the callback is only called once per load 
instance 
                        var callback = function(){
                                //mw.log( 'instanceCallback::running callback: 
' + instanceCallback );
@@ -320,8 +324,8 @@
                                        instanceCallback( loadRequest );
                                        instanceCallback = null;
                                }
-                       }
-                                               
+                       }                       
+                       
                        // Check for empty loadRequest ( directly return the 
callback ) 
                        if( mw.isEmpty( loadRequest ) ) {
                                mw.log( 'Empty load request: ( ' + loadRequest 
+ ' ) ' );
@@ -394,8 +398,26 @@
                        }
                        return false;
                },
-                       
+               
                /**
+                * Clean the loadRequest ( throw out any non-string items ) 
+                */
+               cleanLoadRequest: function( loadRequest ){
+                       var cleanRequest = [];
+                       if( typeof loadRequest == 'string' )
+                               return loadRequest;
+                       for( var i =0;i < loadRequest.length; i++ ){
+                               if( typeof loadRequest[i] == 'object' ) {
+                                       cleanRequest[i] = 
this.cleanLoadRequest(  loadRequest[i] );
+                               } else if( typeof loadRequest[i] == 'string' ){
+                                       cleanRequest[i] = $j.trim(  
loadRequest[i] );
+                               } else{
+                                       // bad request type skip
+                               }
+                       }
+                       return cleanRequest;
+               },
+               /**
                * Load a set of scripts.
                * Will issue many load requests or package the request for the 
resource loader
                *
@@ -579,8 +601,7 @@
                */ 
                runModuleLoadQueue: function(){         
                        var _this = this;                       
-                       mw.log( "mw.runModuleLoadQueue:: "  );
-                       var cat = _this.moduleLoadQueue;                        
+                       mw.log( "mw.runModuleLoadQueue:: "  );                  
                
                        var runModuleFunctionQueue = function(){                
                
                                // Run all the callbacks 
                                for( var moduleName in _this.moduleLoadQueue ){
@@ -616,7 +637,7 @@
                                        // ( in IE we have to wait until its 
"ready" since it does not follow dom order )
                                        var moduleResourceList = 
this.getFlatModuleResourceList( moduleName );
                                        // Build the sharedResourceList         
-                                       for( var i in moduleResourceList ){     
                                                                
+                                       for( var i=0; i < 
moduleResourceList.length; i++ ){                                               
                      
                                                var moduleResource = 
moduleResourceList[i];
                                                // Check if already in the full 
resource list if so add to shared. 
                                                if( fullResourceList[ 
moduleResource ] ){
@@ -630,13 +651,13 @@
                                }
                                                                                
        
                                // Local module request set ( stores the actual 
request we will make after grouping shared resources
-                               var moduleRequestSet = [];                      
+                               var moduleRequestSet = {};                      
                                
                                // Only add non-shared to respective modules 
load requests
                                for( var moduleName in this.moduleLoadQueue ) {
                                        moduleRequestSet[ moduleName ] = [];    
                                        var moduleResourceList = 
this.getFlatModuleResourceList( moduleName );
-                                       for( var i in moduleResourceList ){
+                                       for( var i =0; i < 
moduleResourceList.length; i++ ){
                                                var moduleResource = 
moduleResourceList[i];
                                                if( $j.inArray( moduleResource, 
sharedResourceList ) == -1 ){
                                                        moduleRequestSet[ 
moduleName ].push( moduleResource );
@@ -666,11 +687,11 @@
                                
                                // Load the shared resources                    
                                
                                mw.load( sharedResourceList, function(){
-                                       mw.log("Shared Resources loaded");      
                                
+                                       //mw.log("Shared Resources loaded");    
                                
                                        // xxx check if we are in "IE" and 
dependencies need to be loaded "first"                                          
             
                                        sharedResourceLoadDone = true;
                                        checkModulesDone();                     
                        
-                               });             
+                               });     
                                // Load all module Request Set                  
                                                
                                for( var moduleName in moduleRequestSet ){
                                        localLoadCallInstance( moduleName,      
moduleRequestSet[ moduleName ] );       



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to