If you click on
it'll just keep thinking about it, until you give up. Can it be made to give an error message after some generously long time?
First reported by @isaacl at https://www.mediawiki.org/wiki/Topic:W4bct11t0fsx2if1
| • Whatamidoing-WMF | |
| Mar 22 2021, 9:30 PM |
| F34934990: Screenshot 2022-01-29 at 04.18.51.png | |
| Jan 29 2022, 3:28 AM |
If you click on
it'll just keep thinking about it, until you give up. Can it be made to give an error message after some generously long time?
First reported by @isaacl at https://www.mediawiki.org/wiki/Topic:W4bct11t0fsx2if1
Note although I did not keep track of other instances, I have seen other cases where mis-nested markup, similar to that in the example, have resulted in hanging. After identifying this commonality, I started the thread linked above.
There's an error message:
TypeError: Cannot read property 'type' of undefined
at Object.ve.dm.Model.static.isDiffComparable (https://en.wikipedia.org/w/load.php?lang=en&modules=ext.visualEditor.core&skin=vector&version=19p28:28:514)
at VeDmParagraphNode.ve.dm.Model.isDiffComparable (https://en.wikipedia.org/w/load.php?lang=en&modules=ext.visualEditor.core&skin=vector&version=19p28:29:844)
at VeDmVisualDiff.ve.dm.VisualDiff.diffNodes (<anonymous>:805:875)
at VeDmVisualDiff.ve.dm.VisualDiff.findModifiedNodes (<anonymous>:805:390)
at VeDmVisualDiff.ve.dm.VisualDiff.diffList (<anonymous>:802:839)
at VeDmVisualDiff.ve.dm.VisualDiff.diffListNodes (<anonymous>:807:191)
at VeDmVisualDiff.ve.dm.VisualDiff.diffNodes (<anonymous>:806:37)
at VeDmVisualDiff.ve.dm.VisualDiff.findModifiedNodes (<anonymous>:805:390)
at VeDmVisualDiff.ve.dm.VisualDiff.diffList (<anonymous>:802:839)
at new VeDmVisualDiff (<anonymous>:801:25)I created some test cases to try to isolate the problem.
The following diff causes a hang. It adds an <s> element that spans across three list items:
https://en.wikipedia.org/w/index.php?title=User:Isaacl/Visual_diff_test&diff=1014399931&oldid=1014399772&diffmode=source
The resulting HTML markup for the list is as follows. The second list item has <s> open/close tags around it:
<ul><li><b>Mis-nested markup</b>: when an HTML inline element incorrectly spans across multiple block elements, VisualDiff hangs<s> and doesn't produce any output.</s></li><s>
<li>This page is attempting to isolate cases where the diff is displayed correctly and cases when a hang occurs.</li>
</s><li><s><b>Unnecessary changes in list styles</b>: </s>unfortunately, it is common for editors to unnecessary change a leading prefix of asterisks and colons to some other combination, which results in lists being closed and opened. VisualDiff treats this as changed text, and so a lot of content which actually hasn't been changed will get flagged as altered.</li></ul>
The following diff produces correct output. It adds an <s> element that spans across three <p> elements:
https://en.wikipedia.org/w/index.php?title=User:Isaacl/Visual_diff_test&diff=1014400674&oldid=1014400538&diffmode=visual
The resulting HTML markup is as follows. The second paragraph has <s> open/close tags within it, and not surrounding it:
<p>VisualDiff is a tool that displays diffs in a more WYSIWYG manner, rather than just a Unix diff-like comparison of the source text. It is particularly good for browsing through a large number of diffs<s>, providing context around each.
</s></p><p><s>Because of the greater use of horizontal screen space, VisualDiff can use vertical space more efficiently.
</s></p><p><s>There are situations where it</s> hangs or produces difficult-to-read output:
</p>
Thanks for testing that. I think the <s> tags are not supposed to wrap the <li> tags, they should be inside.
Visual diffs use the Parsoid HTML, but it has the same problem: https://en.wikipedia.org/api/rest_v1/page/html/User%3AIsaacl%2FVisual_diff_test/1014399931?redirect=false&stash=true
This is probably causing the exception.
Parsoid relies on the HTML5 tree builder to fix up bad HTML which is what does that wrapping.
Try this in a browser and inspect the HTML
<ul> <li><s>a</li> <li>b</li> <li>c</s></li> </ul>
You will find that the browser fixes it up to "<ul>\n<li><s>a</s></li><s>\n<li>b</li>\n</s><li><s>c</s></li>\n</ul>\n". So, the HTML5 tree builder transforms malformed HTML to a DOM tree that will not serialize (via outerHTML) to HTML5-compliant output.
So, the TLDR is that Parsoid doesn't always produce HTML5-compilant output. It is a known issue and https://www.mediawiki.org/wiki/Parsing/Notes/HTML5_Compliance is a wiki page where we started gathering thoughts back in the day and it is unresolved. Generating HTML5 compliant output will require a focused effort to address many of those on that page.
Here's a slightly different example, where an editor added an {{anchor}} template within a description list and the visual diff output hangs:
I don't see any errors in the console.
I tried creating a minimal test case, but haven't succeeded so far. These two diffs don't hang:
Here is another example of a diff that hangs, also with a error message in the console:
jQuery.Deferred exception: Cannot read property 'type' of undefined TypeError: Cannot read property 'type' of undefined
The messages in the console are as follows:
Error with Permissions-Policy header: Unrecognized feature: 'interest-cohort'.
load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:144 JQMIGRATE: Migrate is installed with logging active, version 3.1.0
load.php?lang=en&modules=jquery.ui&skin=vector&version=1ujtn:1 This page is using the deprecated ResourceLoader module "jquery.ui".
Please use OOUI instead.
mw.loader.implement.css @ load.php?lang=en&modules=jquery.ui&skin=vector&version=1ujtn:1
runScript @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:13
(anonymous) @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
flushCssBuffer @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
requestAnimationFrame (async)
addEmbeddedCSS @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
execute @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:15
doPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:7
requestIdleCallback (async)
requestPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
setAndPropagate @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
markModuleReady @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:13
runScript @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
(anonymous) @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
flushCssBuffer @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
requestAnimationFrame (async)
addEmbeddedCSS @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
execute @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:15
doPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:7
requestIdleCallback (async)
requestPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
setAndPropagate @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
markModuleReady @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:13
runScript @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
(anonymous) @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
flushCssBuffer @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
requestAnimationFrame (async)
addEmbeddedCSS @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
execute @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:15
doPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:7
requestIdleCallback (async)
requestPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
setAndPropagate @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
implement @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:20
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:1
load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:144 JQMIGRATE: jQuery.fn.delegate() is deprecated
migrateWarn @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:144
delegate @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:153
bindHover @ load.php?lang=en&modules=jquery.ui&skin=vector&version=1ujtn:196
Datepicker @ load.php?lang=en&modules=jquery.ui&skin=vector&version=1ujtn:151
(anonymous) @ load.php?lang=en&modules=jquery.ui&skin=vector&version=1ujtn:198
mw.loader.implement.css @ load.php?lang=en&modules=jquery.ui&skin=vector&version=1ujtn:198
runScript @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:13
(anonymous) @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
flushCssBuffer @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
requestAnimationFrame (async)
addEmbeddedCSS @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
execute @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:15
doPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:7
requestIdleCallback (async)
requestPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
setAndPropagate @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
markModuleReady @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:13
runScript @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
(anonymous) @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
flushCssBuffer @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
requestAnimationFrame (async)
addEmbeddedCSS @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
execute @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:15
doPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:7
requestIdleCallback (async)
requestPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
setAndPropagate @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
markModuleReady @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:13
runScript @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
(anonymous) @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
flushCssBuffer @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
requestAnimationFrame (async)
addEmbeddedCSS @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
execute @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:15
doPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:7
requestIdleCallback (async)
requestPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
setAndPropagate @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
implement @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:20
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:1
VM610:58 This page is using the deprecated ResourceLoader module "mediawiki.ui".
Please use OOUI instead.
mw.loader.implement.css @ VM610:58
runScript @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:13
(anonymous) @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
flushCssBuffer @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
requestAnimationFrame (async)
addEmbeddedCSS @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
execute @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:15
doPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:7
requestIdleCallback (async)
requestPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
setAndPropagate @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
implement @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:20
(anonymous) @ load.php?lang=en&modules=ext.visualEditor.core&skin=vector&version=xrjgn:1
load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:51 jQuery.Deferred exception: Cannot read property 'type' of undefined TypeError: Cannot read property 'type' of undefined
at Object.ve.dm.Model.static.isDiffComparable (https://en.wikipedia.org/w/load.php?lang=en&modules=ext.visualEditor.core&skin=vector&version=xrjgn:28:501) at VeDmTextNode.ve.dm.Model.isDiffComparable (https://en.wikipedia.org/w/load.php?lang=en&modules=ext.visualEditor.core&skin=vector&version=xrjgn:29:844) at VeDmVisualDiff.ve.dm.VisualDiff.compareNodes (<anonymous>:905:629) at VeDmVisualDiff.ve.dm.VisualDiff.diffList (<anonymous>:903:401) at VeDmVisualDiff.ve.dm.VisualDiff.diffListNodes (<anonymous>:908:155) at VeDmVisualDiff.ve.dm.VisualDiff.diffNodes (<anonymous>:907:6) at VeDmVisualDiff.ve.dm.VisualDiff.findModifiedNodes (<anonymous>:906:358) at VeDmVisualDiff.ve.dm.VisualDiff.diffList (<anonymous>:903:818) at new VeDmVisualDiff (<anonymous>:902:6) at <anonymous>:273:28 undefined
jQuery.Deferred.exceptionHook @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:51
process @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
setTimeout (async)
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
mightThrow @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
process @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
setTimeout (async)
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:51
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
mightThrow @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
process @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
mightThrow @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
process @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
setTimeout (async)
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
mightThrow @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
process @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
setTimeout (async)
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
add @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
jQuery.Deferred @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:155
then @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
revCache.<computed> @ VM603:272
mightThrow @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
process @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
setTimeout (async)
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
mightThrow @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
process @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
setTimeout (async)
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
mightThrow @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
process @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
setTimeout (async)
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:51
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
mightThrow @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
process @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:49
setTimeout (async)
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:50
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
fireWith @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:47
done @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:129
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:132
load (async)
send @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:132
ajax @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:127
jQuery.ajax @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:147
requestParsoidData @ VM603:283
fetchRevision @ VM603:271
getVisualDiffGeneratorPromise @ VM603:272
onReviewModeButtonSelectSelect @ VM603:188
OO.EventEmitter.emit @ VM603:263
OO.ui.SelectWidget.selectItem @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:251
OO.ui.SelectWidget.selectItemByData @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:250
(anonymous) @ VM603:189
fire @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
add @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:46
(anonymous) @ VM603:188
mw.loader.implement.visualeditor-savedialog-review-visual @ VM603:189
runScript @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:13
execute @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:15
doPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:7
requestIdleCallback (async)
requestPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
setAndPropagate @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
markModuleReady @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:13
runScript @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
(anonymous) @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
flushCssBuffer @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
requestAnimationFrame (async)
addEmbeddedCSS @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
execute @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:15
doPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:7
requestIdleCallback (async)
requestPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
setAndPropagate @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
markModuleReady @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:13
runScript @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
(anonymous) @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:14
flushCssBuffer @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
requestAnimationFrame (async)
addEmbeddedCSS @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:6
execute @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:15
doPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:7
requestIdleCallback (async)
requestPropagation @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
setAndPropagate @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:8
implement @ load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector:20
(anonymous) @ load.php?lang=en&modules=jquery%2Coojs-ui-core%2Coojs-ui-widgets&skin=vector&version=8kb6n:1
Change 754091 had a related patch set uploaded (by Esanders; author: Esanders):
[VisualEditor/VisualEditor@master] DiffElement: Handle AlienBlockNode in list
Change 754091 merged by jenkins-bot:
[VisualEditor/VisualEditor@master] DiffElement: Handle AlienBlockNode in list
Change 755058 had a related patch set uploaded (by Bartosz Dziewoński; author: Bartosz Dziewoński):
[mediawiki/extensions/VisualEditor@master] Update VE core submodule to master (20902e538)
Change 755058 merged by jenkins-bot:
[mediawiki/extensions/VisualEditor@master] Update VE core submodule to master (20902e538)
<s> spanning multiple list item does not crash Visual Diff. Testing with the exact content in https://en.wikipedia.org/w/index.php?title=Wikipedia_talk:Talk_page_guidelines&diff=1017114182&oldid=1016428291&diffmode=visual works fine as well.