From: Timo Tijhof Date: Fri, 2 Aug 2019 19:30:11 +0000 (+0100) Subject: resourceloader: Merge mediawiki.legacy.wikibits into mediawiki.base X-Git-Tag: 1.34.0-rc.0~779^2 X-Git-Url: http://git.cyclocoop.org/data/Fool?a=commitdiff_plain;h=ed6e38178bf4d34c38af72deec8bf7d980a670dc;p=lhc%2Fweb%2Fwiklou.git resourceloader: Merge mediawiki.legacy.wikibits into mediawiki.base Still executed under the same conditional, but no longer exposed as its own public module bundle. Change-Id: Ifba3a73b184ce02eeeeb2ccce6d4aece732dea13 --- diff --git a/includes/resourceloader/ResourceLoaderStartUpModule.php b/includes/resourceloader/ResourceLoaderStartUpModule.php index a982de2a7d..8f026dc87b 100644 --- a/includes/resourceloader/ResourceLoaderStartUpModule.php +++ b/includes/resourceloader/ResourceLoaderStartUpModule.php @@ -346,13 +346,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule { * @return array */ private function getBaseModules() { - global $wgIncludeLegacyJavaScript; - $baseModules = [ 'jquery', 'mediawiki.base' ]; - if ( $wgIncludeLegacyJavaScript ) { - $baseModules[] = 'mediawiki.legacy.wikibits'; - } - return $baseModules; } diff --git a/jsduck.json b/jsduck.json index fad38e35ee..2b18c5896d 100644 --- a/jsduck.json +++ b/jsduck.json @@ -15,6 +15,7 @@ "resources/src/jquery/jquery.color.js", "resources/src/jquery/jquery.highlightText.js", "resources/src/jquery/jquery.mw-jump.js", + "resources/src/mediawiki.base/legacy.wikibits.js", "resources/src/mediawiki.legacy", "resources/src/mediawiki.libs.jpegmeta/jpegmeta.js", "resources/src/mediawiki.skinning", diff --git a/resources/Resources.php b/resources/Resources.php index 133ba0f4ea..333057f806 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -139,16 +139,16 @@ return [ 'targets' => [ 'desktop', 'mobile' ], ], 'mediawiki.base' => [ - 'scripts' => [ - // This MUST be kept in sync with maintenance/jsduck/eg-iframe.html - 'resources/src/mediawiki.base/mediawiki.errorLogger.js', - 'resources/src/mediawiki.base/mediawiki.base.js', - ], - 'dependencies' => 'jquery', - 'targets' => [ 'desktop', 'mobile' ], - ], - 'mediawiki.legacy.wikibits' => [ - 'scripts' => 'resources/src/mediawiki.legacy/wikibits.js', + 'scripts' => array_merge( + [ + // This MUST be kept in sync with maintenance/jsduck/eg-iframe.html + 'resources/src/mediawiki.base/mediawiki.errorLogger.js', + 'resources/src/mediawiki.base/mediawiki.base.js', + ], + $GLOBALS['wgIncludeLegacyJavaScript'] + ? [ 'resources/src/mediawiki.base/legacy.wikibits.js' ] + : [] + ), 'dependencies' => 'jquery', 'targets' => [ 'desktop', 'mobile' ], ], diff --git a/resources/src/mediawiki.base/legacy.wikibits.js b/resources/src/mediawiki.base/legacy.wikibits.js new file mode 100644 index 0000000000..1e1c303051 --- /dev/null +++ b/resources/src/mediawiki.base/legacy.wikibits.js @@ -0,0 +1,107 @@ +/** + * MediaWiki legacy wikibits + */ +( function () { + var msg, + loadedScripts = {}; + + function wikiUrlencode( page ) { + return encodeURIComponent( String( page ) ) + .replace( /'/g, '%27' ) + .replace( /%20/g, '_' ) + // wfUrlencode replacements + .replace( /%3B/g, ';' ) + .replace( /%40/g, '@' ) + .replace( /%24/g, '$' ) + .replace( /%21/g, '!' ) + .replace( /%2A/g, '*' ) + .replace( /%28/g, '(' ) + .replace( /%29/g, ')' ) + .replace( /%2C/g, ',' ) + .replace( /%2F/g, '/' ) + .replace( /%7E/g, '~' ) + .replace( /%3A/g, ':' ); + } + + /** + * @deprecated since 1.17 Use jQuery instead + */ + mw.log.deprecate( window, 'addOnloadHook', function ( fn ) { + $( function () { + fn(); + } ); + }, 'Use jQuery instead.' ); + + /** + * Wikipage import methods + * + * See https://www.mediawiki.org/wiki/ResourceLoader/Legacy_JavaScript#wikibits.js + */ + + /** + * @deprecated since 1.17 Use mw.loader instead. Warnings added in 1.25. + * @param {string} url + * @return {HTMLElement} Script tag + */ + function importScriptURI( url ) { + var s; + if ( loadedScripts[ url ] ) { + return null; + } + loadedScripts[ url ] = true; + s = document.createElement( 'script' ); + s.setAttribute( 'src', url ); + document.head.appendChild( s ); + return s; + } + + function importScript( page ) { + var uri = mw.config.get( 'wgScript' ) + '?title=' + wikiUrlencode( page ) + + '&action=raw&ctype=text/javascript'; + return importScriptURI( uri ); + } + + /** + * @deprecated since 1.17 Use mw.loader instead. Warnings added in 1.25. + * @param {string} url + * @param {string} media + * @return {HTMLElement} Link tag + */ + function importStylesheetURI( url, media ) { + var l = document.createElement( 'link' ); + l.rel = 'stylesheet'; + l.href = url; + if ( media ) { + l.media = media; + } + document.head.appendChild( l ); + return l; + } + + function importStylesheet( page ) { + var uri = mw.config.get( 'wgScript' ) + '?title=' + wikiUrlencode( page ) + + '&action=raw&ctype=text/css'; + return importStylesheetURI( uri ); + } + + msg = 'Use mw.loader instead.'; + mw.log.deprecate( window, 'loadedScripts', loadedScripts, msg ); + mw.log.deprecate( window, 'importScriptURI', importScriptURI, msg ); + mw.log.deprecate( window, 'importStylesheetURI', importStylesheetURI, msg ); + // Not quite deprecated yet. + window.importScript = importScript; + window.importStylesheet = importStylesheet; + + /** + * Replace document.write/writeln with basic html parsing that appends + * to the to avoid blanking pages. Added JavaScript will not run. + * + * @deprecated since 1.26 + */ + [ 'write', 'writeln' ].forEach( function ( method ) { + mw.log.deprecate( document, method, function () { + $( 'body' ).append( $.parseHTML( Array.prototype.join.call( arguments, '' ) ) ); + }, 'Use jQuery or mw.loader.load instead.', 'document.' + method ); + } ); + +}() ); diff --git a/resources/src/mediawiki.legacy/wikibits.js b/resources/src/mediawiki.legacy/wikibits.js deleted file mode 100644 index 1e1c303051..0000000000 --- a/resources/src/mediawiki.legacy/wikibits.js +++ /dev/null @@ -1,107 +0,0 @@ -/** - * MediaWiki legacy wikibits - */ -( function () { - var msg, - loadedScripts = {}; - - function wikiUrlencode( page ) { - return encodeURIComponent( String( page ) ) - .replace( /'/g, '%27' ) - .replace( /%20/g, '_' ) - // wfUrlencode replacements - .replace( /%3B/g, ';' ) - .replace( /%40/g, '@' ) - .replace( /%24/g, '$' ) - .replace( /%21/g, '!' ) - .replace( /%2A/g, '*' ) - .replace( /%28/g, '(' ) - .replace( /%29/g, ')' ) - .replace( /%2C/g, ',' ) - .replace( /%2F/g, '/' ) - .replace( /%7E/g, '~' ) - .replace( /%3A/g, ':' ); - } - - /** - * @deprecated since 1.17 Use jQuery instead - */ - mw.log.deprecate( window, 'addOnloadHook', function ( fn ) { - $( function () { - fn(); - } ); - }, 'Use jQuery instead.' ); - - /** - * Wikipage import methods - * - * See https://www.mediawiki.org/wiki/ResourceLoader/Legacy_JavaScript#wikibits.js - */ - - /** - * @deprecated since 1.17 Use mw.loader instead. Warnings added in 1.25. - * @param {string} url - * @return {HTMLElement} Script tag - */ - function importScriptURI( url ) { - var s; - if ( loadedScripts[ url ] ) { - return null; - } - loadedScripts[ url ] = true; - s = document.createElement( 'script' ); - s.setAttribute( 'src', url ); - document.head.appendChild( s ); - return s; - } - - function importScript( page ) { - var uri = mw.config.get( 'wgScript' ) + '?title=' + wikiUrlencode( page ) + - '&action=raw&ctype=text/javascript'; - return importScriptURI( uri ); - } - - /** - * @deprecated since 1.17 Use mw.loader instead. Warnings added in 1.25. - * @param {string} url - * @param {string} media - * @return {HTMLElement} Link tag - */ - function importStylesheetURI( url, media ) { - var l = document.createElement( 'link' ); - l.rel = 'stylesheet'; - l.href = url; - if ( media ) { - l.media = media; - } - document.head.appendChild( l ); - return l; - } - - function importStylesheet( page ) { - var uri = mw.config.get( 'wgScript' ) + '?title=' + wikiUrlencode( page ) + - '&action=raw&ctype=text/css'; - return importStylesheetURI( uri ); - } - - msg = 'Use mw.loader instead.'; - mw.log.deprecate( window, 'loadedScripts', loadedScripts, msg ); - mw.log.deprecate( window, 'importScriptURI', importScriptURI, msg ); - mw.log.deprecate( window, 'importStylesheetURI', importStylesheetURI, msg ); - // Not quite deprecated yet. - window.importScript = importScript; - window.importStylesheet = importStylesheet; - - /** - * Replace document.write/writeln with basic html parsing that appends - * to the to avoid blanking pages. Added JavaScript will not run. - * - * @deprecated since 1.26 - */ - [ 'write', 'writeln' ].forEach( function ( method ) { - mw.log.deprecate( document, method, function () { - $( 'body' ).append( $.parseHTML( Array.prototype.join.call( arguments, '' ) ) ); - }, 'Use jQuery or mw.loader.load instead.', 'document.' + method ); - } ); - -}() );