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