Topic on Talk:VisualEditor/Diffs

VisualEditor hangs while trying to access getOuterRange

3
Summary last edited by ESanders (WMF) 14:49, 21 March 2023 1 year ago

Fixed

Isaacl (talkcontribs)

Recently I have been getting a lot of hangs, with the Javascript console showing an error trying to access "getOuterRange". I constructed an example:

https://en.wikipedia.org/w/index.php?title=User:Isaacl/Visual_diff_test&diff=1066272389&oldid=1066272230&diffmode=visual

The Javascript console has the following message:

jQuery.Deferred exception: Cannot read properties of null (reading 'getOuterRange') TypeError: Cannot read properties of null (reading 'getOuterRange')

    at VeUiDiffElement.ve.ui.DiffElement.appendListItem (<anonymous>:853:51)

    at VeUiDiffElement.ve.ui.DiffElement.getChangedListNodeData (<anonymous>:857:241)

    at VeUiDiffElement.ve.ui.DiffElement.getChangedNodeData (<anonymous>:851:623)

    at VeUiDiffElement.ve.ui.DiffElement.getChangedNodeElements (<anonymous>:851:310)

    at render (<anonymous>:845:578)

    at processQueue (<anonymous>:846:330)

    at VeUiDiffElement.ve.ui.DiffElement.renderDiff (<anonymous>:849:481)

    at new VeUiDiffElement (<anonymous>:842:133)

    at uri.query.diffmode (<anonymous>:170:171)

    at mightThrow (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=u7e4l:49:881) undefined

jQuery.Deferred.exceptionHook @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=u7e4l:52


Note the initial insertion of the third-level unbulleted list item does not hang:

https://en.wikipedia.org/w/index.php?title=User:Isaacl/Visual_diff_test&diff=1066271868&oldid=1066271658&diffmode=visual

Has there been any recent changes that would cause this?

Isaacl (talkcontribs)

Here's another example from the English Wikipedia technical village pump, which seems like a straightforward addition of a third-level unbulleted list item:

https://en.wikipedia.org/w/index.php?title=Wikipedia:Village_pump_(technical)&diff=1066464733&oldid=1066438776&diffmode=visual

The Javascript console displays the following error:

jQuery.Deferred exception: Cannot read properties of null (reading 'getOuterRange') TypeError: Cannot read properties of null (reading 'getOuterRange')

    at VeUiDiffElement.ve.ui.DiffElement.appendListItem (<anonymous>:746:51)

    at VeUiDiffElement.ve.ui.DiffElement.getChangedListNodeData (<anonymous>:750:241)

    at VeUiDiffElement.ve.ui.DiffElement.getChangedNodeData (<anonymous>:744:623)

    at VeUiDiffElement.ve.ui.DiffElement.getChangedNodeElements (<anonymous>:744:310)

    at render (<anonymous>:738:578)

    at processQueue (<anonymous>:739:330)

    at VeUiDiffElement.ve.ui.DiffElement.renderDiff (<anonymous>:742:481)

    at new VeUiDiffElement (<anonymous>:735:133)

    at uri.query.diffmode (<anonymous>:302:171)

    at mightThrow (https://en.wikipedia.org/w/load.php?lang=en&modules=ext.discussionTools.init%7Cjquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=10v1w:321:881) undefined

jQuery.Deferred.exceptionHook @ load.php?lang=en&modules=ext.discussionTools.init|jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=10v1w:324

Whatamidoing (WMF) (talkcontribs)

Thanks for this detailed bug report. It sounds like they're already on the right track.