Page MenuHomePhabricator

Remove obsolete aliases from closures
Closed, DuplicatePublic

Description

Apply changes from https://gerrit.wikimedia.org/r/#/c/mediawiki/core/+/456068/ to other extensions

@Krinkle wrote:

jQuery

ResourceLoader wraps and executes all modules in the system via a closure that explicitly binds '$', 'jQuery'. This means there is no point in aliasing jQuery to $ in every single file. ResourceLoader already does this.

This is a very very old habit that was introduced in 2009 when we didn't have ResourceLoader and were concerned with wikis loading their own copy of jQuery that could redefine the global 'jQuery' and '$' variables. We simply hoped that "our module" initialised before "that module" cache the reference we got in the file closure.

Then in 2010, when building ResourceLoader, we found this didn't always work. And we also sometimes forgot to add the closure. Which is why in 2010 (before ResourceLoader went to prod, in 2011) we fixed the above issue in ResourceLoader itself by "magically" providing a private binding to '$' and 'jQuery' in every mw.loader.implement() closure. (r79246, bd93eeb85).

So, these in-file closure references are redundant. And have been since 2010.

jQuery, again.

While redundant, they remained in most files. Harmless, right?

However, that same problem of duplicate jQuery copys on a page came up again in 2013. Why did our magic binding not work?

It was *because* the file also did its own binding:

  1. ResourceLoader stores reference to proper jQuery.
  2. ResourceLoader provides private reference to it as '$'.
  3. .. time passes ..
  4. Module executes, and is given the proper jQuery via the private '$' reference. The module file ignores this because it instead looks up current jQuery, and caches that.

    So, we expande the magic binding to also bind the name 'jQuery'. (2013-2014; 5742c1f38527).

mediaWiki

We export the binding as 'mw' and 'mediaWiki'. We internally mostly use 'mw' (in HTML, and documentation, and the canonical name in the JSDuck index). But, rather than using the shorter name, we use the longer name and alias it in every single file.

There was never a concern about this global being redefined as far as I know. However, if that happens one day, we should.. provide a magic binding for it.

Details

SubjectRepoBranchLines +/-
mediawiki/extensions/Popupsmaster+12 K -12 K
mediawiki/extensions/CentralAuthmaster+40 -29
mediawiki/extensions/ShortUrlmaster+4 -4
mediawiki/extensions/SecurePollmaster+2 -2
mediawiki/extensions/ReadingListsmaster+1 -3
mediawiki/extensions/ApiFeatureUsagemaster+6 -13
mediawiki/extensions/VipsScalermaster+45 -74
mediawiki/extensions/examplesmaster+319 -408
mediawiki/extensions/examplesmaster+280 -362
data-values/value-viewmaster+71 -71
mediawiki/extensions/QuickSurveysmaster+29 -22
mediawiki/extensions/MobileFrontendmaster+59 -61
mediawiki/extensions/WikibaseLexememaster+128 -133
mediawiki/extensions/TocTreemaster+5 -5
mediawiki/extensions/CentralNoticemaster+212 -224
mediawiki/extensions/ReplaceTextmaster+4 -5
mediawiki/extensions/CategoryTreemaster+5 -5
mediawiki/extensions/GuidedTourmaster+41 -41
mediawiki/extensions/WikimediaMessagesmaster+20 -19
mediawiki/extensions/BetaFeaturesmaster+14 -16
mediawiki/extensions/AbuseFiltermaster+11 -11
mediawiki/skins/MinervaNeuemaster+34 -34
mediawiki/extensions/RevisionSlidermaster+57 -57
mediawiki/extensions/wikihieromaster+9 -6
mediawiki/extensions/TemplateWizardmaster+48 -50
mediawiki/skins/Timelessmaster+6 -3
mediawiki/skins/Vectormaster+8 -5
mediawiki/extensions/WikibaseMediaInfomaster+20 -20
mediawiki/extensions/CharInsertmaster+5 -5
mediawiki/extensions/TwoColConflictmaster+26 -25
mediawiki/extensions/UploadWizardmaster+159 -159
mediawiki/extensions/MassMessagemaster+408 -419
mediawiki/extensions/PageTriagemaster+15 -16
mediawiki/extensions/ORESmaster+28 -31
mediawiki/extensions/WikiEditormaster+20 -20
mediawiki/extensions/Lintermaster+15 -18
mediawiki/extensions/Thanksmaster+14 -14
mediawiki/extensions/GlobalPreferencesmaster+9 -8
mediawiki/extensions/Graphmaster+15 -12
mediawiki/extensions/Flowmaster+126 -127
mediawiki/extensions/MultimediaViewermaster+269 -269
mediawiki/extensions/TimedMediaHandlermaster+145 -150
mediawiki/extensions/Echomaster+131 -132
mediawiki/extensions/FlaggedRevsmaster+7 -8
mediawiki/extensions/CodeEditormaster+5 -5
mediawiki/extensions/ConfirmEditmaster+29 -31
mediawiki/extensions/ExtensionDistributormaster+5 -5
mediawiki/extensions/CodeMirrormaster+13 -10
mediawiki/skins/apexmaster+5 -5
mediawiki/extensions/Citemaster+10 -7
mediawiki/extensions/LiquidThreadsmaster+9 -11
mediawiki/extensions/Translatemaster+72 -72
mediawiki/extensions/ContentTranslationmaster+201 -204
mediawiki/extensions/Wikibasemaster+365 -367
mediawiki/extensions/Mathmaster+9 -6
mediawiki/extensions/Kartographermaster+28 -54
mediawiki/extensions/AdvancedSearchmaster+103 -103
mediawiki/extensions/BoilerPlatemaster+7 -7
mediawiki/extensions/3Dmaster+10 -10
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change 472981 merged by jenkins-bot:
[mediawiki/extensions/ConfirmEdit@master] Remove obsolete aliases from closures

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

Change 472990 merged by jenkins-bot:
[mediawiki/extensions/ExtensionDistributor@master] Remove obsolete aliases from closures

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

Change 472989 merged by jenkins-bot:
[mediawiki/extensions/Echo@master] Remove obsolete aliases from closures

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

Change 472978 merged by jenkins-bot:
[mediawiki/extensions/CodeEditor@master] Remove obsolete aliases from closures

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

Change 472992 merged by jenkins-bot:
[mediawiki/extensions/FlaggedRevs@master] Remove obsolete aliases from closures

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

Change 472998 merged by jenkins-bot:
[mediawiki/extensions/Flow@master] Remove obsolete aliases from closures

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

Change 473002 merged by jenkins-bot:
[mediawiki/extensions/GlobalPreferences@master] Remove obsolete aliases from closures

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

Change 473010 merged by jenkins-bot:
[mediawiki/extensions/Graph@master] Remove obsolete aliases from closures

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

Change 473017 merged by jenkins-bot:
[mediawiki/extensions/Linter@master] Remove obsolete aliases from closures

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

Change 473039 merged by jenkins-bot:
[mediawiki/extensions/MultimediaViewer@master] Remove obsolete aliases from closures

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

Change 473042 merged by jenkins-bot:
[mediawiki/extensions/TimedMediaHandler@master] Remove obsolete aliases from closures

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

Change 473046 merged by jenkins-bot:
[mediawiki/extensions/ORES@master] Remove obsolete aliases from closures

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

Change 473060 merged by jenkins-bot:
[mediawiki/extensions/PageTriage@master] Remove obsolete aliases from closures

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

Change 473033 merged by jenkins-bot:
[mediawiki/extensions/MassMessage@master] Remove obsolete aliases from closures

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

Change 473068 merged by jenkins-bot:
[mediawiki/extensions/Thanks@master] Remove obsolete aliases from closures

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

Change 473076 merged by jenkins-bot:
[mediawiki/extensions/UploadWizard@master] Remove obsolete aliases from closures

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

Change 473139 merged by jenkins-bot:
[mediawiki/extensions/WikiEditor@master] Remove obsolete aliases from closures

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

Change 473073 merged by jenkins-bot:
[mediawiki/extensions/TwoColConflict@master] Remove obsolete aliases from closures

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

Change 472977 merged by jenkins-bot:
[mediawiki/extensions/CharInsert@master] Remove obsolete aliases from closures

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

Change 473615 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/extensions/WikimediaMessages@master] Remove obsolete aliases from closures, and fix line lengths

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

Change 473618 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/extensions/WikibaseMediaInfo@master] Remove obsolete aliases from closures

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

Change 473618 merged by jenkins-bot:
[mediawiki/extensions/WikibaseMediaInfo@master] Remove obsolete aliases from closures

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

Change 474271 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/skins/MinervaNeue@master] Remove obsolete aliases from closures

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

Change 474275 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/skins/Timeless@master] Remove obsolete aliases from closures

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

Change 474276 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/skins/Vector@master] Remove obsolete aliases from closures

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

Change 474282 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/extensions/MobileFrontend@master] Remove obsolete aliases from closures

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

Change 474286 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/extensions/Score@master] Remove obsolete aliases from closures

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

Change 474292 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/extensions/RevisionSlider@master] Remove obsolete aliases from closures

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

Change 474297 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/extensions/TemplateWizard@master] Remove obsolete aliases from closures

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

Change 474298 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/extensions/wikihiero@master] Remove obsolete aliases from closures

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

Change 474276 merged by jenkins-bot:
[mediawiki/skins/Vector@master] Remove obsolete aliases from closures

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

Change 474271 merged by jenkins-bot:
[mediawiki/skins/MinervaNeue@master] Remove obsolete aliases from closures

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

Change 474275 merged by jenkins-bot:
[mediawiki/skins/Timeless@master] Remove obsolete aliases from closures

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

Change 474297 merged by jenkins-bot:
[mediawiki/extensions/TemplateWizard@master] Remove obsolete aliases from closures

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

Change 474298 merged by jenkins-bot:
[mediawiki/extensions/wikihiero@master] Remove obsolete aliases from closures

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

Change 474292 merged by jenkins-bot:
[mediawiki/extensions/RevisionSlider@master] Remove obsolete aliases from closures

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

Change 475503 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/extensions/AbuseFilter@master] Remove obsolete aliases from closures

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

Change 475503 merged by jenkins-bot:
[mediawiki/extensions/AbuseFilter@master] Remove obsolete aliases from closures

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

Change 476307 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/extensions/BetaFeatures@master] Remove obsolete aliases from closures

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

Change 476307 merged by jenkins-bot:
[mediawiki/extensions/BetaFeatures@master] Remove obsolete aliases from closures

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

Change 473615 merged by jenkins-bot:
[mediawiki/extensions/WikimediaMessages@master] Remove obsolete aliases from closures, and fix line lengths

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

Change 476616 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/extensions/GuidedTour@master] Remove obsolete aliases from closures

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

Change 476616 merged by jenkins-bot:
[mediawiki/extensions/GuidedTour@master] Remove obsolete aliases from closures

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

Change 478038 had a related patch set uploaded (by Fomafix; owner: Fomafix):
[mediawiki/extensions/ReplaceText@master] Remove obsolete aliases from closures

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

Change 478042 had a related patch set uploaded (by Fomafix; owner: Fomafix):
[mediawiki/extensions/CategoryTree@master] Remove obsolete aliases from closures

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

Change 478042 merged by jenkins-bot:
[mediawiki/extensions/CategoryTree@master] Remove obsolete aliases from closures

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

Change 478038 merged by jenkins-bot:
[mediawiki/extensions/ReplaceText@master] Remove obsolete aliases from closures

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

Change 472167 merged by jenkins-bot:
[mediawiki/extensions/CentralNotice@master] Remove obsolete aliases from closures

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

Change 478398 had a related patch set uploaded (by Fomafix; owner: Fomafix):
[mediawiki/extensions/TocTree@master] Remove obsolete aliases from closures

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

Change 478398 merged by jenkins-bot:
[mediawiki/extensions/TocTree@master] Remove obsolete aliases from closures

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

Change 478775 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/extensions/WikibaseLexeme@master] Remove obsolete aliases from closures

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

Change 478775 merged by jenkins-bot:
[mediawiki/extensions/WikibaseLexeme@master] Remove obsolete aliases from closures

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

Change 474282 merged by Jdlrobson:
[mediawiki/extensions/MobileFrontend@master] Remove obsolete aliases from closures

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

Change 480118 had a related patch set uploaded (by Esanders; owner: Esanders):
[data-values/value-view@master] Remove obsolete aliases from closures

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

Change 481229 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/QuickSurveys@master] build: Update eslint rules and remove redundant aliases

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

Change 481229 merged by Krinkle:
[mediawiki/extensions/QuickSurveys@master] build: Update eslint rules and remove redundant aliases

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

Change 480118 merged by jenkins-bot:
[data-values/value-view@master] Remove obsolete aliases from closures

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

Change 482487 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/examples@master] Update Example extension with various best practices

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

Change 455580 had a related patch set uploaded (by Krinkle; owner: Alangi Derick):
[mediawiki/extensions/examples@master] Update Example extension with various best practices

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

Change 482487 abandoned by Krinkle:
Update Example extension with various best practices

Reason:
Merged into I82ee745b99398b362

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

Change 455580 merged by jenkins-bot:
[mediawiki/extensions/examples@master] Update Example extension with various best practices

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

Change 483051 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/VipsScaler@master] build: Structure updates

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

Change 483051 merged by jenkins-bot:
[mediawiki/extensions/VipsScaler@master] build: Structure updates

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

Change 483530 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/ApiFeatureUsage@master] build: Structure update

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

Change 483530 merged by jenkins-bot:
[mediawiki/extensions/ApiFeatureUsage@master] build: Structure update

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

Change 492220 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/SecurePoll@master] Remove obsolete aliases from closures in JS code

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

Change 492221 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/ShortUrl@master] Remove obsolete aliases from closures in JS code

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

Change 492228 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/ReadingLists@master] build: Remove unused jquery/mw from eslint config

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

Change 492228 merged by jenkins-bot:
[mediawiki/extensions/ReadingLists@master] build: Remove unused jquery/mw from eslint config

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

Change 492220 merged by jenkins-bot:
[mediawiki/extensions/SecurePoll@master] Remove obsolete aliases from closures in JS code

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

Change 492221 merged by jenkins-bot:
[mediawiki/extensions/ShortUrl@master] Remove obsolete aliases from closures in JS code

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

Change 497666 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/CentralAuth@master] build: Update eslint config and apply newer conventions

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

Change 497666 merged by jenkins-bot:
[mediawiki/extensions/CentralAuth@master] build: Update eslint config and apply newer conventions

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

Change 543800 had a related patch set uploaded (by Thiemo Kreuz (WMDE); owner: Thiemo Kreuz (WMDE)):
[mediawiki/extensions/Popups@master] Remove obsolete mediaWiki and jQuery aliases

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

Change 543800 merged by jenkins-bot:
[mediawiki/extensions/Popups@master] Remove obsolete mediaWiki and jQuery aliases

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