From 75ca30a215ad9209dc95788e9d5c2d8c210a7e78 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Thu, 10 May 2018 12:46:23 -0700 Subject: [PATCH] resourceloader: avoid use of $.globalEval in mediawiki.js Bug: T192623 Change-Id: Icdd5d76546a6c265a8e941c4e9b28f73bf9dd028 --- resources/src/mediawiki/mediawiki.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/resources/src/mediawiki/mediawiki.js b/resources/src/mediawiki/mediawiki.js index fbe8af2d62..486fb80487 100644 --- a/resources/src/mediawiki/mediawiki.js +++ b/resources/src/mediawiki/mediawiki.js @@ -1271,6 +1271,17 @@ } } + /** + * @private + * @param {string} code JavaScript code + */ + function domEval( code ) { + var script = document.createElement( 'script' ); + script.text = code; + document.head.appendChild( script ); + script.parentNode.removeChild( script ); + } + /** * Executes a loaded module, making it ready to use * @@ -1325,7 +1336,7 @@ // Site and user modules are legacy scripts that run in the global scope. // This is transported as a string instead of a function to avoid needing // to use string manipulation to undo the function wrapper. - $.globalEval( script ); + domEval( script ); markModuleReady(); } else { @@ -1711,7 +1722,7 @@ } mw.requestIdleCallback( function () { try { - $.globalEval( implementations.join( ';' ) ); + domEval( implementations.join( ';' ) ); } catch ( err ) { cb( err ); } -- 2.20.1