Jdlrobson has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/276789

Change subject: Only provide global require in debug mode when needed
......................................................................

Only provide global require in debug mode when needed

To avoid interference with certain modules be a bit more cautious when
supplying a global window.require

Bug: T127643
Change-Id: Id7fc7141373c3fae0ac445e49523681948994c40
---
M resources/src/mediawiki/mediawiki.js
1 file changed, 12 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/89/276789/1

diff --git a/resources/src/mediawiki/mediawiki.js 
b/resources/src/mediawiki/mediawiki.js
index f282db6..9495f4e 100644
--- a/resources/src/mediawiki/mediawiki.js
+++ b/resources/src/mediawiki/mediawiki.js
@@ -1193,14 +1193,22 @@
                                var r = $.Deferred();
 
                                pendingRequests.push( function () {
-                                       if ( moduleName && !hasOwn.call( 
registry, moduleName ) ) {
+                                       if ( moduleName && !hasOwn.call( 
registry, moduleName )
+                                               // certain libraries e.g. Ace 
might make use of a global require method
+                                               // so only hijack where 
necessary (see T127643)
+                                               && typeof window.require === 
undefined
+                                       ) {
+                                               window._mwRequire = true;
                                                window.require = 
mw.loader.require;
                                                window.module = registry[ 
moduleName ].module;
                                        }
                                        addScript( src ).always( function () {
-                                               // Clear environment
-                                               delete window.require;
-                                               delete window.module;
+                                               // Clear environment after 
running script if we hijacked it
+                                               if ( window._mwRequire ) {
+                                                       delete 
window._mwRequire;
+                                                       delete window.require;
+                                                       delete window.module;
+                                               }
                                                r.resolve();
 
                                                // Start the next one (if any)

-- 
To view, visit https://gerrit.wikimedia.org/r/276789
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id7fc7141373c3fae0ac445e49523681948994c40
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>

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

Reply via email to