Page MenuHomePhabricator

TypeError: $(...).get(...) is undefined in Special:Upload at test in mw.confirmCloseWindow / Uncaught TypeError: Cannot read property 'files' of undefined
Closed, ResolvedPublic

Description

I can trace this error to the following line:
https://gerrit.wikimedia.org/g/mediawiki/core/+/5d7987079b7f1a209407b8c0ef5dac34c99d603e/resources/src/mediawiki.special.upload/upload.js#580

Occurs on https://commons.wikimedia.org/wiki/Special:Upload

at test URL1:1080:972
at mw.confirmCloseWindow/< URL1:984:1367
at dispatch URL1:73:669
at add/elemData.handle URL1:70:366

URL1: https://commons.wikimedia.org/w/load.php?lang=en&modules=Spinner%2CdataValues%2Cjquery%2Coojs%2Coojs-ui-core%2Coojs-ui-widgets%2Coojs-ui-windows%2Csite%7CdataValues.DataValue%7Cext.centralNotice.geoIP%7Cext.centralauth.ForeignApi%7Cext.centralauth.centralautologin.clearcookie%7Cext.charinsert%2CeventLogging%2CnavigationTiming%2CwikimediaEvents%7Cext.echo.api%2Cinit%7Cext.tmh.OgvJsSupport%7Cext.uls.common%2Ccompactlinks%2Cinit%2Cinterface%2Cpreferences%2Cwebfonts%7Cext.wikimediaEvents.loggedin%2Cwikibase%7Cjquery.client%2Ccookie%2CembedPlayer%2ClengthLimit%2CloadingSpinner%2CmwEmbedUtil%2Cspinner%2CtextSelection%2CtriggerQueueCallback%2Cui%7Cjquery.spinner.styles%7Cjquery.uls.data%7Cmediawiki.ForeignApi%2CString%2CTitle%2CUri%2Capi%2Cbase%2Ccldr%2CconfirmCloseWindow%2Ccookie%2Cexperiments%2Chtmlform%2CjqueryMsg%2Clanguage%2Cstorage%2Ctemplate%2Cuser%2Cutil%7Cmediawiki.ForeignApi.core%7Cmediawiki.editfont.styles%7Cmediawiki.libs.jpegmeta%2Cpluralruleparser%7Cmediawiki.page.ready%7Cmediawiki.special.upload%7Cmediawiki.template.mustache%2Cmustache%2Bdom%7Cmediawiki.ui.button%7Cmw.EmbedPlayer.loader%7Cmw.MediaWikiPlayer.loader%7Cmw.MwEmbedSupport%2CPopUpMediaTransform%7Cmw.MwEmbedSupport.style%7Cmw.PopUpMediaTransform.styles%7Cmw.TimedText.loader%7Coojs-ui-core.icons%2Cstyles%7Coojs-ui-widgets.icons%7Coojs-ui-windows.icons%7Coojs-ui.styles.indicators%7Cskins.vector.legacy.js%7Cuser.defaults%7Cutil.inherit%7Cwikibase.api.RepoApi%7Cwikibase.datamodel%7Cwikibase.mediainfo.base%2Csearch&skin=vector&version=xb280

The error sometimes appears as Uncaught TypeError: Cannot read property 'files' of undefined

Event Timeline

Jdlrobson renamed this task from TypeError: $(...).get(...) is undefined in Special:Upload at test in mw.confirmCloseWindow to TypeError: $(...).get(...) is undefined in Special:Upload at test in mw.confirmCloseWindow / Uncaught TypeError: Cannot read property 'files' of undefined.Sep 14 2020, 7:04 PM
Jdlrobson updated the task description. (Show Details)

Change 636099 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/core@master] Check node existence in case a gadget is modifying the page

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

I can replicate this when I run $('#wpUploadFile').remove() or $('#mw-upload-form').remove() and then navigate away from the page.

It's very possible a gadget could do this and it doesn't hurt to make this code a little more resilient.

Change 636099 merged by jenkins-bot:
[mediawiki/core@master] Check node existence in case a gadget is modifying the page

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

matmarex assigned this task to Jdlrobson.
matmarex subscribed.