Page MenuHomePhabricator

List editing exception: TypeError: Cannot read property 'getSurface' of null
Closed, ResolvedPublic8 Story Points

Description

Editing a document with bullet lists with nested bullet lists, hitting enter and delete at the end of a nested bullet item in certain occasions sends you to the top of the document.

It happens quite frequently making editing bullet lists quite complicated.

  • Site: https://www.mediawiki.org/
  • navigator.userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"

Further inspecting the developer tools:

Uncaught TypeError: Cannot read property 'getSurface' of null
    at VeCeParagraphNode.ve.ce.ContentBranchNode.onTeardown (/w/load.php?debug=false&lang=en&modules=diffMatchPatch%2Cmoment%2Coojs-ui%2Coojs-ui-core%2Coojs-ui-toolbars%2Coojs-ui-widgets%2Coojs-ui-windows%2Cpapaparse%2Crangefix%2Cspark-md5%2CtreeDiffer%2Cunicodejs%7Cext.CodeMirror.data%2Clib%2CvisualEditor%7Cext.CodeMirror.mode.mediawiki%7Cext.CodeMirror.visualEditor.init%7Cext.cite.style%2Cstyles%2CvisualEditor%7Cext.cite.visualEditor.core%2Cdata%7Cext.citoid.visualEditor%7Cext.citoid.visualEditor.data%7Cext.disambiguator.visualEditor%7Cext.geshi.visualEditor%7Cext.graph.data%2CvisualEditor%7Cext.kartographer%2CtemplateData%7Cext.kartographer.editing%2CvisualEditor%7Cext.math.styles%2CvisualEditor%7Cext.score.visualEditor%7Cext.templateData.images%7Cext.templateDataGenerator.data%2CeditPage%2Cui%7Cext.templateDataGenerator.ui.images%7Cext.visualEditor.articleTarget%2Cbase%2Ccore%2Cdata%2CdesktopArticleTarget%2CdesktopTarget%2Cdiffing%2Cicons%2Clanguage%2Cmediawiki%2CmoduleIcons%2Cmwalienextension%2Cmwcore%2Cmwdiffing%2Cmwextensionmessages%2Cmwextensions%2Cmwformatting%2Cmwgallery%2Cmwimage%2Cmwlanguage%2Cmwlink%2Cmwmeta%2Cmwsignature%2Cmwtransclusion%2Cswitching%2Cwelcome%7Cext.visualEditor.core.desktop%7Cext.visualEditor.mwextensions.desktop%7Cext.visualEditor.mwimage.core%7Cext.wikihiero.visualEditor%7Cjquery.byteLimit%7Cmediawiki.ForeignStructuredUpload%2CForeignUpload%2CUpload%2Cwidgets%7Cmediawiki.ForeignStructuredUpload.BookletLayout%2Cconfig%7Cmediawiki.Upload.BookletLayout%7Cmediawiki.action.view.redirectPage%7Cmediawiki.api.edit%2Cmessages%2Cupload%7Cmediawiki.diff.styles%7Cmediawiki.language.names%7Cmediawiki.libs.jpegmeta%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.widgets.CategoryMultiselectWidget%2CDateInputWidget%2CMediaSearch%2CStashedFileWidget%2CUserInputWidget%2Cstyles%7Cmediawiki.widgets.DateInputWidget.styles%7Coojs-ui-core.styles%7Coojs-ui.styles.icons-accessibility%2Cicons-alerts%2Cicons-content%2Cicons-editing-advanced%2Cicons-editing-core%2Cicons-editing-list%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-location%2Cicons-media%2Cicons-moderation%2Cicons-movement%2Cicons-wikimedia%2Cindicators%2Ctextures&skin=vector&version=0ou21hn:1578)
    at VeCeParagraphNode.oo.EventEmitter.emit (/w/load.php?debug=false&lang=en&modules=ext.centralNotice.choiceData%2Cdisplay%2CgeoIP%2CkvStore%2CkvStoreMaintenance%2CstartUp%7Cext.centralauth.ForeignApi%7Cext.centralauth.centralautologin.clearcookie%7Cext.echo.api%2Cinit%7Cext.eventLogging%2CnavigationTiming%2CwikimediaEvents%7Cext.eventLogging.subscriber%7Cext.uls.common%2Ccompactlinks%2Ceventlogger%2Cinit%2Cinterface%2Cpreferences%2Cwebfonts%7Cext.visualEditor.desktopArticleTarget.init%7Cext.visualEditor.supportCheck%2CtargetLoader%2Ctrack%2Cve%7Cext.wikimediaEvents.loggedin%7Cjquery.accessKeyLabel%2CbyteLength%2CcheckboxShiftClick%2Cclient%2Ccookie%2CgetAttrs%2ChighlightText%2Cmw-jump%2Cspinner%2Csuggestions%2CtabIndex%2CtextSelection%2Cthrottle-debounce%7Cjquery.uls.data%7Cmediawiki.ForeignApi%2CRegExp%2CTitle%2CUri%2Capi%2Ccldr%2Ccookie%2Cexperiments%2CjqueryMsg%2Clanguage%2Cnotify%2CsearchSuggest%2Cstorage%2Ctemplate%2Ctoc%2Cuser%2Cutil%7Cmediawiki.ForeignApi.core%7Cmediawiki.api.options%2Cuser%2Cwatch%7Cmediawiki.language.data%2Cinit%7Cmediawiki.legacy.wikibits%7Cmediawiki.libs.pluralruleparser%7Cmediawiki.page.ready%2Cstartup%7Cmediawiki.page.watch.ajax%7Cmediawiki.template.regexp%7Cmediawiki.ui.button%7Coojs%7Cschema.UniversalLanguageSelector%7Cskins.vector.js%7Cuser.defaults%7Cwikibase.client.linkitem.init&skin=vector&version=1bw5jy1:297)
    at VeCeParagraphNode.ve.ce.View.setLive (/w/load.php?debug=false&lang=en&modules=diffMatchPatch%2Cmoment%2Coojs-ui%2Coojs-ui-core%2Coojs-ui-toolbars%2Coojs-ui-widgets%2Coojs-ui-windows%2Cpapaparse%2Crangefix%2Cspark-md5%2CtreeDiffer%2Cunicodejs%7Cext.CodeMirror.data%2Clib%2CvisualEditor%7Cext.CodeMirror.mode.mediawiki%7Cext.CodeMirror.visualEditor.init%7Cext.cite.style%2Cstyles%2CvisualEditor%7Cext.cite.visualEditor.core%2Cdata%7Cext.citoid.visualEditor%7Cext.citoid.visualEditor.data%7Cext.disambiguator.visualEditor%7Cext.geshi.visualEditor%7Cext.graph.data%2CvisualEditor%7Cext.kartographer%2CtemplateData%7Cext.kartographer.editing%2CvisualEditor%7Cext.math.styles%2CvisualEditor%7Cext.score.visualEditor%7Cext.templateData.images%7Cext.templateDataGenerator.data%2CeditPage%2Cui%7Cext.templateDataGenerator.ui.images%7Cext.visualEditor.articleTarget%2Cbase%2Ccore%2Cdata%2CdesktopArticleTarget%2CdesktopTarget%2Cdiffing%2Cicons%2Clanguage%2Cmediawiki%2CmoduleIcons%2Cmwalienextension%2Cmwcore%2Cmwdiffing%2Cmwextensionmessages%2Cmwextensions%2Cmwformatting%2Cmwgallery%2Cmwimage%2Cmwlanguage%2Cmwlink%2Cmwmeta%2Cmwsignature%2Cmwtransclusion%2Cswitching%2Cwelcome%7Cext.visualEditor.core.desktop%7Cext.visualEditor.mwextensions.desktop%7Cext.visualEditor.mwimage.core%7Cext.wikihiero.visualEditor%7Cjquery.byteLimit%7Cmediawiki.ForeignStructuredUpload%2CForeignUpload%2CUpload%2Cwidgets%7Cmediawiki.ForeignStructuredUpload.BookletLayout%2Cconfig%7Cmediawiki.Upload.BookletLayout%7Cmediawiki.action.view.redirectPage%7Cmediawiki.api.edit%2Cmessages%2Cupload%7Cmediawiki.diff.styles%7Cmediawiki.language.names%7Cmediawiki.libs.jpegmeta%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.widgets.CategoryMultiselectWidget%2CDateInputWidget%2CMediaSearch%2CStashedFileWidget%2CUserInputWidget%2Cstyles%7Cmediawiki.widgets.DateInputWidget.styles%7Coojs-ui-core.styles%7Coojs-ui.styles.icons-accessibility%2Cicons-alerts%2Cicons-content%2Cicons-editing-advanced%2Cicons-editing-core%2Cicons-editing-list%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-location%2Cicons-media%2Cicons-moderation%2Cicons-movement%2Cicons-wikimedia%2Cindicators%2Ctextures&skin=vector&version=0ou21hn:1561)
    at VeCeParagraphNode.ve.ce.BranchNode.setLive (/w/load.php?debug=false&lang=en&modules=diffMatchPatch%2Cmoment%2Coojs-ui%2Coojs-ui-core%2Coojs-ui-toolbars%2Coojs-ui-widgets%2Coojs-ui-windows%2Cpapaparse%2Crangefix%2Cspark-md5%2CtreeDiffer%2Cunicodejs%7Cext.CodeMirror.data%2Clib%2CvisualEditor%7Cext.CodeMirror.mode.mediawiki%7Cext.CodeMirror.visualEditor.init%7Cext.cite.style%2Cstyles%2CvisualEditor%7Cext.cite.visualEditor.core%2Cdata%7Cext.citoid.visualEditor%7Cext.citoid.visualEditor.data%7Cext.disambiguator.visualEditor%7Cext.geshi.visualEditor%7Cext.graph.data%2CvisualEditor%7Cext.kartographer%2CtemplateData%7Cext.kartographer.editing%2CvisualEditor%7Cext.math.styles%2CvisualEditor%7Cext.score.visualEditor%7Cext.templateData.images%7Cext.templateDataGenerator.data%2CeditPage%2Cui%7Cext.templateDataGenerator.ui.images%7Cext.visualEditor.articleTarget%2Cbase%2Ccore%2Cdata%2CdesktopArticleTarget%2CdesktopTarget%2Cdiffing%2Cicons%2Clanguage%2Cmediawiki%2CmoduleIcons%2Cmwalienextension%2Cmwcore%2Cmwdiffing%2Cmwextensionmessages%2Cmwextensions%2Cmwformatting%2Cmwgallery%2Cmwimage%2Cmwlanguage%2Cmwlink%2Cmwmeta%2Cmwsignature%2Cmwtransclusion%2Cswitching%2Cwelcome%7Cext.visualEditor.core.desktop%7Cext.visualEditor.mwextensions.desktop%7Cext.visualEditor.mwimage.core%7Cext.wikihiero.visualEditor%7Cjquery.byteLimit%7Cmediawiki.ForeignStructuredUpload%2CForeignUpload%2CUpload%2Cwidgets%7Cmediawiki.ForeignStructuredUpload.BookletLayout%2Cconfig%7Cmediawiki.Upload.BookletLayout%7Cmediawiki.action.view.redirectPage%7Cmediawiki.api.edit%2Cmessages%2Cupload%7Cmediawiki.diff.styles%7Cmediawiki.language.names%7Cmediawiki.libs.jpegmeta%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.widgets.CategoryMultiselectWidget%2CDateInputWidget%2CMediaSearch%2CStashedFileWidget%2CUserInputWidget%2Cstyles%7Cmediawiki.widgets.DateInputWidget.styles%7Coojs-ui-core.styles%7Coojs-ui.styles.icons-accessibility%2Cicons-alerts%2Cicons-content%2Cicons-editing-advanced%2Cicons-editing-core%2Cicons-editing-list%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-location%2Cicons-media%2Cicons-moderation%2Cicons-movement%2Cicons-wikimedia%2Cindicators%2Ctextures&skin=vector&version=0ou21hn:1570)
    at VeCeListItemNode.ve.ce.BranchNode.setLive (/w/load.php?debug=false&lang=en&modules=diffMatchPatch%2Cmoment%2Coojs-ui%2Coojs-ui-core%2Coojs-ui-toolbars%2Coojs-ui-widgets%2Coojs-ui-windows%2Cpapaparse%2Crangefix%2Cspark-md5%2CtreeDiffer%2Cunicodejs%7Cext.CodeMirror.data%2Clib%2CvisualEditor%7Cext.CodeMirror.mode.mediawiki%7Cext.CodeMirror.visualEditor.init%7Cext.cite.style%2Cstyles%2CvisualEditor%7Cext.cite.visualEditor.core%2Cdata%7Cext.citoid.visualEditor%7Cext.citoid.visualEditor.data%7Cext.disambiguator.visualEditor%7Cext.geshi.visualEditor%7Cext.graph.data%2CvisualEditor%7Cext.kartographer%2CtemplateData%7Cext.kartographer.editing%2CvisualEditor%7Cext.math.styles%2CvisualEditor%7Cext.score.visualEditor%7Cext.templateData.images%7Cext.templateDataGenerator.data%2CeditPage%2Cui%7Cext.templateDataGenerator.ui.images%7Cext.visualEditor.articleTarget%2Cbase%2Ccore%2Cdata%2CdesktopArticleTarget%2CdesktopTarget%2Cdiffing%2Cicons%2Clanguage%2Cmediawiki%2CmoduleIcons%2Cmwalienextension%2Cmwcore%2Cmwdiffing%2Cmwextensionmessages%2Cmwextensions%2Cmwformatting%2Cmwgallery%2Cmwimage%2Cmwlanguage%2Cmwlink%2Cmwmeta%2Cmwsignature%2Cmwtransclusion%2Cswitching%2Cwelcome%7Cext.visualEditor.core.desktop%7Cext.visualEditor.mwextensions.desktop%7Cext.visualEditor.mwimage.core%7Cext.wikihiero.visualEditor%7Cjquery.byteLimit%7Cmediawiki.ForeignStructuredUpload%2CForeignUpload%2CUpload%2Cwidgets%7Cmediawiki.ForeignStructuredUpload.BookletLayout%2Cconfig%7Cmediawiki.Upload.BookletLayout%7Cmediawiki.action.view.redirectPage%7Cmediawiki.api.edit%2Cmessages%2Cupload%7Cmediawiki.diff.styles%7Cmediawiki.language.names%7Cmediawiki.libs.jpegmeta%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.widgets.CategoryMultiselectWidget%2CDateInputWidget%2CMediaSearch%2CStashedFileWidget%2CUserInputWidget%2Cstyles%7Cmediawiki.widgets.DateInputWidget.styles%7Coojs-ui-core.styles%7Coojs-ui.styles.icons-accessibility%2Cicons-alerts%2Cicons-content%2Cicons-editing-advanced%2Cicons-editing-core%2Cicons-editing-list%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-location%2Cicons-media%2Cicons-moderation%2Cicons-movement%2Cicons-wikimedia%2Cindicators%2Ctextures&skin=vector&version=0ou21hn:1570)
    at VeCeListNode.ve.ce.BranchNode.onSplice (/w/load.php?debug=false&lang=en&modules=diffMatchPatch%2Cmoment%2Coojs-ui%2Coojs-ui-core%2Coojs-ui-toolbars%2Coojs-ui-widgets%2Coojs-ui-windows%2Cpapaparse%2Crangefix%2Cspark-md5%2CtreeDiffer%2Cunicodejs%7Cext.CodeMirror.data%2Clib%2CvisualEditor%7Cext.CodeMirror.mode.mediawiki%7Cext.CodeMirror.visualEditor.init%7Cext.cite.style%2Cstyles%2CvisualEditor%7Cext.cite.visualEditor.core%2Cdata%7Cext.citoid.visualEditor%7Cext.citoid.visualEditor.data%7Cext.disambiguator.visualEditor%7Cext.geshi.visualEditor%7Cext.graph.data%2CvisualEditor%7Cext.kartographer%2CtemplateData%7Cext.kartographer.editing%2CvisualEditor%7Cext.math.styles%2CvisualEditor%7Cext.score.visualEditor%7Cext.templateData.images%7Cext.templateDataGenerator.data%2CeditPage%2Cui%7Cext.templateDataGenerator.ui.images%7Cext.visualEditor.articleTarget%2Cbase%2Ccore%2Cdata%2CdesktopArticleTarget%2CdesktopTarget%2Cdiffing%2Cicons%2Clanguage%2Cmediawiki%2CmoduleIcons%2Cmwalienextension%2Cmwcore%2Cmwdiffing%2Cmwextensionmessages%2Cmwextensions%2Cmwformatting%2Cmwgallery%2Cmwimage%2Cmwlanguage%2Cmwlink%2Cmwmeta%2Cmwsignature%2Cmwtransclusion%2Cswitching%2Cwelcome%7Cext.visualEditor.core.desktop%7Cext.visualEditor.mwextensions.desktop%7Cext.visualEditor.mwimage.core%7Cext.wikihiero.visualEditor%7Cjquery.byteLimit%7Cmediawiki.ForeignStructuredUpload%2CForeignUpload%2CUpload%2Cwidgets%7Cmediawiki.ForeignStructuredUpload.BookletLayout%2Cconfig%7Cmediawiki.Upload.BookletLayout%7Cmediawiki.action.view.redirectPage%7Cmediawiki.api.edit%2Cmessages%2Cupload%7Cmediawiki.diff.styles%7Cmediawiki.language.names%7Cmediawiki.libs.jpegmeta%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.widgets.CategoryMultiselectWidget%2CDateInputWidget%2CMediaSearch%2CStashedFileWidget%2CUserInputWidget%2Cstyles%7Cmediawiki.widgets.DateInputWidget.styles%7Coojs-ui-core.styles%7Coojs-ui.styles.icons-accessibility%2Cicons-alerts%2Cicons-content%2Cicons-editing-advanced%2Cicons-editing-core%2Cicons-editing-list%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-location%2Cicons-media%2Cicons-moderation%2Cicons-movement%2Cicons-wikimedia%2Cindicators%2Ctextures&skin=vector&version=0ou21hn:1567)
    at VeDmListNode.oo.EventEmitter.emit (/w/load.php?debug=false&lang=en&modules=ext.centralNotice.choiceData%2Cdisplay%2CgeoIP%2CkvStore%2CkvStoreMaintenance%2CstartUp%7Cext.centralauth.ForeignApi%7Cext.centralauth.centralautologin.clearcookie%7Cext.echo.api%2Cinit%7Cext.eventLogging%2CnavigationTiming%2CwikimediaEvents%7Cext.eventLogging.subscriber%7Cext.uls.common%2Ccompactlinks%2Ceventlogger%2Cinit%2Cinterface%2Cpreferences%2Cwebfonts%7Cext.visualEditor.desktopArticleTarget.init%7Cext.visualEditor.supportCheck%2CtargetLoader%2Ctrack%2Cve%7Cext.wikimediaEvents.loggedin%7Cjquery.accessKeyLabel%2CbyteLength%2CcheckboxShiftClick%2Cclient%2Ccookie%2CgetAttrs%2ChighlightText%2Cmw-jump%2Cspinner%2Csuggestions%2CtabIndex%2CtextSelection%2Cthrottle-debounce%7Cjquery.uls.data%7Cmediawiki.ForeignApi%2CRegExp%2CTitle%2CUri%2Capi%2Ccldr%2Ccookie%2Cexperiments%2CjqueryMsg%2Clanguage%2Cnotify%2CsearchSuggest%2Cstorage%2Ctemplate%2Ctoc%2Cuser%2Cutil%7Cmediawiki.ForeignApi.core%7Cmediawiki.api.options%2Cuser%2Cwatch%7Cmediawiki.language.data%2Cinit%7Cmediawiki.legacy.wikibits%7Cmediawiki.libs.pluralruleparser%7Cmediawiki.page.ready%2Cstartup%7Cmediawiki.page.watch.ajax%7Cmediawiki.template.regexp%7Cmediawiki.ui.button%7Coojs%7Cschema.UniversalLanguageSelector%7Cskins.vector.js%7Cuser.defaults%7Cwikibase.client.linkitem.init&skin=vector&version=1bw5jy1:297)
    at VeDmListNode.ve.dm.BranchNode.splice (/w/load.php?debug=false&lang=en&modules=diffMatchPatch%2Cmoment%2Coojs-ui%2Coojs-ui-core%2Coojs-ui-toolbars%2Coojs-ui-widgets%2Coojs-ui-windows%2Cpapaparse%2Crangefix%2Cspark-md5%2CtreeDiffer%2Cunicodejs%7Cext.CodeMirror.data%2Clib%2CvisualEditor%7Cext.CodeMirror.mode.mediawiki%7Cext.CodeMirror.visualEditor.init%7Cext.cite.style%2Cstyles%2CvisualEditor%7Cext.cite.visualEditor.core%2Cdata%7Cext.citoid.visualEditor%7Cext.citoid.visualEditor.data%7Cext.disambiguator.visualEditor%7Cext.geshi.visualEditor%7Cext.graph.data%2CvisualEditor%7Cext.kartographer%2CtemplateData%7Cext.kartographer.editing%2CvisualEditor%7Cext.math.styles%2CvisualEditor%7Cext.score.visualEditor%7Cext.templateData.images%7Cext.templateDataGenerator.data%2CeditPage%2Cui%7Cext.templateDataGenerator.ui.images%7Cext.visualEditor.articleTarget%2Cbase%2Ccore%2Cdata%2CdesktopArticleTarget%2CdesktopTarget%2Cdiffing%2Cicons%2Clanguage%2Cmediawiki%2CmoduleIcons%2Cmwalienextension%2Cmwcore%2Cmwdiffing%2Cmwextensionmessages%2Cmwextensions%2Cmwformatting%2Cmwgallery%2Cmwimage%2Cmwlanguage%2Cmwlink%2Cmwmeta%2Cmwsignature%2Cmwtransclusion%2Cswitching%2Cwelcome%7Cext.visualEditor.core.desktop%7Cext.visualEditor.mwextensions.desktop%7Cext.visualEditor.mwimage.core%7Cext.wikihiero.visualEditor%7Cjquery.byteLimit%7Cmediawiki.ForeignStructuredUpload%2CForeignUpload%2CUpload%2Cwidgets%7Cmediawiki.ForeignStructuredUpload.BookletLayout%2Cconfig%7Cmediawiki.Upload.BookletLayout%7Cmediawiki.action.view.redirectPage%7Cmediawiki.api.edit%2Cmessages%2Cupload%7Cmediawiki.diff.styles%7Cmediawiki.language.names%7Cmediawiki.libs.jpegmeta%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.widgets.CategoryMultiselectWidget%2CDateInputWidget%2CMediaSearch%2CStashedFileWidget%2CUserInputWidget%2Cstyles%7Cmediawiki.widgets.DateInputWidget.styles%7Coojs-ui-core.styles%7Coojs-ui.styles.icons-accessibility%2Cicons-alerts%2Cicons-content%2Cicons-editing-advanced%2Cicons-editing-core%2Cicons-editing-list%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-location%2Cicons-media%2Cicons-moderation%2Cicons-movement%2Cicons-wikimedia%2Cindicators%2Ctextures&skin=vector&version=0ou21hn:1273)
    at VeDmTreeModifier.ve.dm.TreeModifier.removeNode (/w/load.php?debug=false&lang=en&modules=diffMatchPatch%2Cmoment%2Coojs-ui%2Coojs-ui-core%2Coojs-ui-toolbars%2Coojs-ui-widgets%2Coojs-ui-windows%2Cpapaparse%2Crangefix%2Cspark-md5%2CtreeDiffer%2Cunicodejs%7Cext.CodeMirror.data%2Clib%2CvisualEditor%7Cext.CodeMirror.mode.mediawiki%7Cext.CodeMirror.visualEditor.init%7Cext.cite.style%2Cstyles%2CvisualEditor%7Cext.cite.visualEditor.core%2Cdata%7Cext.citoid.visualEditor%7Cext.citoid.visualEditor.data%7Cext.disambiguator.visualEditor%7Cext.geshi.visualEditor%7Cext.graph.data%2CvisualEditor%7Cext.kartographer%2CtemplateData%7Cext.kartographer.editing%2CvisualEditor%7Cext.math.styles%2CvisualEditor%7Cext.score.visualEditor%7Cext.templateData.images%7Cext.templateDataGenerator.data%2CeditPage%2Cui%7Cext.templateDataGenerator.ui.images%7Cext.visualEditor.articleTarget%2Cbase%2Ccore%2Cdata%2CdesktopArticleTarget%2CdesktopTarget%2Cdiffing%2Cicons%2Clanguage%2Cmediawiki%2CmoduleIcons%2Cmwalienextension%2Cmwcore%2Cmwdiffing%2Cmwextensionmessages%2Cmwextensions%2Cmwformatting%2Cmwgallery%2Cmwimage%2Cmwlanguage%2Cmwlink%2Cmwmeta%2Cmwsignature%2Cmwtransclusion%2Cswitching%2Cwelcome%7Cext.visualEditor.core.desktop%7Cext.visualEditor.mwextensions.desktop%7Cext.visualEditor.mwimage.core%7Cext.wikihiero.visualEditor%7Cjquery.byteLimit%7Cmediawiki.ForeignStructuredUpload%2CForeignUpload%2CUpload%2Cwidgets%7Cmediawiki.ForeignStructuredUpload.BookletLayout%2Cconfig%7Cmediawiki.Upload.BookletLayout%7Cmediawiki.action.view.redirectPage%7Cmediawiki.api.edit%2Cmessages%2Cupload%7Cmediawiki.diff.styles%7Cmediawiki.language.names%7Cmediawiki.libs.jpegmeta%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.widgets.CategoryMultiselectWidget%2CDateInputWidget%2CMediaSearch%2CStashedFileWidget%2CUserInputWidget%2Cstyles%7Cmediawiki.widgets.DateInputWidget.styles%7Coojs-ui-core.styles%7Coojs-ui.styles.icons-accessibility%2Cicons-alerts%2Cicons-content%2Cicons-editing-advanced%2Cicons-editing-core%2Cicons-editing-list%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-location%2Cicons-media%2Cicons-moderation%2Cicons-movement%2Cicons-wikimedia%2Cindicators%2Ctextures&skin=vector&version=0ou21hn:1348)
    at VeDmTreeModifier.ve.dm.TreeModifier.removeLast (/w/load.php?debug=false&lang=en&modules=diffMatchPatch%2Cmoment%2Coojs-ui%2Coojs-ui-core%2Coojs-ui-toolbars%2Coojs-ui-widgets%2Coojs-ui-windows%2Cpapaparse%2Crangefix%2Cspark-md5%2CtreeDiffer%2Cunicodejs%7Cext.CodeMirror.data%2Clib%2CvisualEditor%7Cext.CodeMirror.mode.mediawiki%7Cext.CodeMirror.visualEditor.init%7Cext.cite.style%2Cstyles%2CvisualEditor%7Cext.cite.visualEditor.core%2Cdata%7Cext.citoid.visualEditor%7Cext.citoid.visualEditor.data%7Cext.disambiguator.visualEditor%7Cext.geshi.visualEditor%7Cext.graph.data%2CvisualEditor%7Cext.kartographer%2CtemplateData%7Cext.kartographer.editing%2CvisualEditor%7Cext.math.styles%2CvisualEditor%7Cext.score.visualEditor%7Cext.templateData.images%7Cext.templateDataGenerator.data%2CeditPage%2Cui%7Cext.templateDataGenerator.ui.images%7Cext.visualEditor.articleTarget%2Cbase%2Ccore%2Cdata%2CdesktopArticleTarget%2CdesktopTarget%2Cdiffing%2Cicons%2Clanguage%2Cmediawiki%2CmoduleIcons%2Cmwalienextension%2Cmwcore%2Cmwdiffing%2Cmwextensionmessages%2Cmwextensions%2Cmwformatting%2Cmwgallery%2Cmwimage%2Cmwlanguage%2Cmwlink%2Cmwmeta%2Cmwsignature%2Cmwtransclusion%2Cswitching%2Cwelcome%7Cext.visualEditor.core.desktop%7Cext.visualEditor.mwextensions.desktop%7Cext.visualEditor.mwimage.core%7Cext.wikihiero.visualEditor%7Cjquery.byteLimit%7Cmediawiki.ForeignStructuredUpload%2CForeignUpload%2CUpload%2Cwidgets%7Cmediawiki.ForeignStructuredUpload.BookletLayout%2Cconfig%7Cmediawiki.Upload.BookletLayout%7Cmediawiki.action.view.redirectPage%7Cmediawiki.api.edit%2Cmessages%2Cupload%7Cmediawiki.diff.styles%7Cmediawiki.language.names%7Cmediawiki.libs.jpegmeta%7Cmediawiki.page.gallery.styles%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.widgets.CategoryMultiselectWidget%2CDateInputWidget%2CMediaSearch%2CStashedFileWidget%2CUserInputWidget%2Cstyles%7Cmediawiki.widgets.DateInputWidget.styles%7Coojs-ui-core.styles%7Coojs-ui.styles.icons-accessibility%2Cicons-alerts%2Cicons-content%2Cicons-editing-advanced%2Cicons-editing-core%2Cicons-editing-list%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-location%2Cicons-media%2Cicons-moderation%2Cicons-movement%2Cicons-wikimedia%2Cindicators%2Ctextures&skin=vector&version=0ou21hn:1353)

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald TranscriptNov 2 2017, 1:07 PM

Change 386419 had a related patch set uploaded (by Jforrester; owner: DLynch):
[VisualEditor/VisualEditor@master] ce.ContentBranchNode: onTeardown, check if we have a root

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

Jdforrester-WMF moved this task from To Triage to TR3: Language support on the VisualEditor board.
Jdforrester-WMF set the point value for this task to 8.
dchan added a subscriber: dchan.Nov 26 2017, 6:43 AM

I think this is happening because zombie CE nodes (that have been splice-removed) are still listening to events.

Steps to reproduce:

  1. In VE standalone, edit <ul><li><p>abc</p></li></ul> .
  2. Put the cursor to the right of 'c', and press Enter, Tab (to get nested bullet)
  3. Press Backspace

Expected behaviour: The nested bullet disappears and the cursor returns to the right of 'c'.
Actual behaviour: Exception in ve.ce.ContentBranchNode#onTeardown .

Debugging the crash, you can see that:

  • this.constructor === ve.ce.ParagraphNode
  • this.parent.constructor === ve.ce.ListItemNode
  • The ve.ce.BranchNode#onSplice method for this.parent has been triggered by a ve.dm.ListItemNode splice event, yet this.parent is not part of the CE tree (it has a null root).

Change 393436 had a related patch set uploaded (by Divec; owner: Divec):
[VisualEditor/VisualEditor@master] Destroy CE nodes on removal by onSplice

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

Change 393436 merged by jenkins-bot:
[VisualEditor/VisualEditor@master] Destroy CE nodes on removal by onSplice

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

Change 393812 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/extensions/VisualEditor@master] Update VE core submodule to master (56cfb5d6f)

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

Change 393812 merged by jenkins-bot:
[mediawiki/extensions/VisualEditor@master] Update VE core submodule to master (56cfb5d6f)

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

Jdforrester-WMF closed this task as Resolved.Nov 28 2017, 6:12 PM
Jdforrester-WMF triaged this task as Normal priority.
Restricted Application added a project: User-Ryasmeen. · View Herald TranscriptNov 28 2017, 6:12 PM