From d7de31b5c384c2de64f2229a21edc989d70d9e5a Mon Sep 17 00:00:00 2001 From: Trevor Parscal Date: Thu, 21 Oct 2010 21:25:27 +0000 Subject: [PATCH] ResourceLoaderFileModule now uses mediaWiki.loader.load to load scripts in debug mode. --- .../resourceloader/ResourceLoaderFileModule.php | 9 +++++---- resources/mediawiki/mediawiki.js | 13 +++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/includes/resourceloader/ResourceLoaderFileModule.php b/includes/resourceloader/ResourceLoaderFileModule.php index 4439124323..cd950e8488 100644 --- a/includes/resourceloader/ResourceLoaderFileModule.php +++ b/includes/resourceloader/ResourceLoaderFileModule.php @@ -166,7 +166,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule { * @return {string} JavaScript code for $context */ public function getScript( ResourceLoaderContext $context ) { - global $wgScriptPath; + global $wgServer, $wgScriptPath; $files = array_merge( $this->scripts, @@ -176,11 +176,12 @@ class ResourceLoaderFileModule extends ResourceLoaderModule { if ( $context->getDebug() ) { $files = array_merge( $files, $this->debugScripts ); if ( $this->debugRaw ) { - $tags = ''; + $script = ''; foreach ( $files as $file ) { - $tags .= ""; + $path = FormatJson::encode( "$wgServer$wgScriptPath/$file" ); + $script .= "\n\tmediaWiki.loader.load( $path );"; } - return "\n\tdocument.write( " . FormatJson::encode( $tags ) . ' );'; + return $script; } } return self::readScriptFiles( $files ); diff --git a/resources/mediawiki/mediawiki.js b/resources/mediawiki/mediawiki.js index 69e00ce849..0eef7d750c 100644 --- a/resources/mediawiki/mediawiki.js +++ b/resources/mediawiki/mediawiki.js @@ -673,14 +673,15 @@ window.mediaWiki = new ( function( $ ) { // Support adding arbitrary external scripts if ( modules.substr( 0, 7 ) == 'http://' || modules.substr( 0, 8 ) == 'https://' ) { if ( type === 'text/css' ) { - setTimeout( function() { - $( 'head' ).append( '' ).attr( 'href', modules ); - }, 0 ); + $( 'head' ).append( $( '' ).attr( 'href', modules ) ); return true; } else if ( type === 'text/javascript' || typeof type === 'undefined' ) { - setTimeout( function() { - $( 'body' ).append( '' ).attr( 'src', modules ) - }, 0 ); + var script = ''; + if ( ready ) { + $( 'body' ).append( script ); + } else { + document.write( script ); + } return true; } // Unknown type -- 2.20.1