Page MenuHomePhabricator

[minor] 'TypeError: Cannot read property 'model' of undefined' displayed on Flow pages when saving content with inspector open
Closed, ResolvedPublic1 Story Points

Description

The Console errors are not displayed in FF 53. Chrome 58 and Safari10 will display the errors.
In betalabs there will be more detailed output in the Console. Non-Flow pages do not display any Console errors.

  1. On Flow board open to edit a post or create a new post. Enter/modify some text.
  2. Open either Mention or Link inspector. Do not dismiss the open popups (do not click 'Cancel'), click 'Save changes' ('Reply').

The Console will display 'TypeError: Cannot read property 'model' of undefined.

Safari 10.1.1:
stop — load.php:820:290TypeError: undefined is not an object (evaluating '$.data(step.node,'view').model')
stop — load.php:820:290
adjacentDomPosition — load.php:476:233
getNodeAndOffset — load.php:820:428
focus — load.php:874:412
(anonymous function) — load.php:1026:947
fire — load.php:45:128
fireWith — load.php:46:436
(anonymous function) — load.php:47:791
(anonymous function) — load.php:813
(anonymous function) — load.php:47:135
fire — load.php:45:128
add — load.php:45:661
(anonymous function) — load.php:47:98
each — load.php:5:240
(anonymous function) — load.php:47
Deferred — load.php:47:933
then — load.php:46:977
(anonymous function) — load.php:812:761

Details

Related Gerrit Patches:

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald TranscriptMay 31 2017, 5:58 AM
Catrope added a subscriber: Catrope.

This could be a bug in VisualEditor , or it could be a bug in our integration of VE.

Deskana added a subscriber: Deskana.

This could be a bug in VisualEditor , or it could be a bug in our integration of VE.

Needs investigation to find out which. If it is a problem with VisualEditor, let me know. :-)

Etonkovidova renamed this task from [1.30.0-wmf.2 regression] 'TypeError: Cannot read property 'model' of undefined' displayed on Flow pages when saving content with open oo-ui-clippableElement-clippable to [minor] 'TypeError: Cannot read property 'model' of undefined' displayed on Flow pages when saving content with open oo-ui-clippableElement-clippable.Oct 6 2017, 11:56 PM
Catrope renamed this task from [minor] 'TypeError: Cannot read property 'model' of undefined' displayed on Flow pages when saving content with open oo-ui-clippableElement-clippable to [minor] 'TypeError: Cannot read property 'model' of undefined' displayed on Flow pages when saving content with inspector open.Oct 11 2017, 4:46 PM

Updated stack trace:

jQuery.Deferred exception: Cannot read property 'model' of undefined TypeError: Cannot read property 'model' of undefined
    at stop (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:611:999)
    at Object.ve.adjacentDomPosition (<anonymous>:85:552)
    at VeCeDocument.ve.ce.Document.getNodeAndOffset (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:612:119)
    at VeCeSurface.ve.ce.Surface.getSelectionState (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:720:627)
    at VeCeSurface.ve.ce.Surface.getNativeRange (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:721:64)
    at VeCeLinearSelection.ve.ce.LinearSelection.getSelectionRects (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:730:976)
    at VeCeLinearSelection.ve.ce.LinearSelection.getSelectionStartAndEndRects (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:731:756)
    at VeUiSurface.ve.ui.Surface.scrollCursorIntoView (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:810:526)
    at VeDmSurface.oo.EventEmitter.emit (<anonymous>:238:445)
    at VeDmSurface.ve.dm.Surface.setSelection (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:423:222)
    at VeDmSurface.ve.dm.Surface.setNullSelection (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:420:34)
    at VeCeSurface.ve.ce.Surface.blur (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:667:728)
    at VeCeSurface.ve.ce.Surface.destroy (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:665:232)
    at VeUiSurface.ve.ui.Surface.destroy (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:806:865)
    at FlowVeTarget.ve.init.Target.clearSurfaces (<anonymous>:97:727)
    at mwFlowUiVisualEditorWidget.mw.flow.ui.VisualEditorWidget.setContent (<anonymous>:417:248)
    at mwFlowUiEditorSwitcherWidget.mw.flow.ui.EditorSwitcherWidget.clearContent (<anonymous>:429:166)
    at mwFlowUiEditorWidget.mw.flow.ui.EditorWidget.clearContent (<anonymous>:439:735)
    at <anonymous>:405:317
    at fire (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki%7Cmediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46:617)
    at fireWith (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki%7Cmediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47:824)
    at mightThrow (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki%7Cmediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50:212)
    at process (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki%7Cmediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50:269) undefined
jQuery.Deferred.exceptionHook @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:52
process @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
setTimeout (async)
(anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
mightThrow @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
process @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
setTimeout (async)
(anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
mightThrow @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
process @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
setTimeout (async)
(anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
mightThrow @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
process @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
(anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
mightThrow @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:49
process @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
setTimeout (async)
(anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
mightThrow @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
process @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
setTimeout (async)
(anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
deferred.(anonymous function) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:51
(anonymous) @ VM179:100
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
done @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:126
(anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:129
XMLHttpRequest.send (async)
send @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:130
ajax @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:125
jQuery.ajax @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:143
ajax @ VM179:99
post @ VM179:98
(anonymous) @ VM179:101
mightThrow @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:49
process @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
setTimeout (async)
(anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:46
add @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:47
(anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
jQuery.Deferred @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:150
then @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50
postWithToken @ VM179:100
mw.flow.dm.APIHandler.saveNewTopic @ VM179:293
mw.flow.ui.NewTopicWidget.onEditorSaveContent @ VM179:404
oo.EventEmitter.emit @ VM179:238
mw.flow.ui.EditorWidget.onEditorControlsWidgetSave @ VM179:437
oo.EventEmitter.emit @ VM179:238
oo.EventEmitter.emit @ VM179:238
OO.ui.mixin.ButtonElement.onClick @ load.php?debug=false&lang=en&modules=oojs-ui-core%2Coojs-ui-widgets|oojs-ui.styles.icons-editing-advanced&skin=vector&version=1egb34n:25
dispatch @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:69
elemData.handle @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:66

I'm fairly convinced this is a bug in VE core: it tries to scroll the cursor into view in response to the selection being set to null, and this crashes for unsurprising reasons. Not sure why this doesn't fail when e.g. blurring the surface or why an inspector needs to be open for it to fail, but it seems silly to do anything at all in scrollCursorIntoView if the selection is a NullSelection. I'll write a patch for that.

Hmm what's weird though is that the selection appears to be a LinearSelection, but we reach that code path from setNullSelection...

Sigh that was too easy. Now I'm getting a new stack trace:

load.php?debug=false&lang=en&modules=jquery%2Cmediawiki|mediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:52 jQuery.Deferred exception: Cannot read property 'model' of undefined TypeError: Cannot read property 'model' of undefined
    at stop (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:611:999)
    at Object.ve.adjacentDomPosition (<anonymous>:85:552)
    at VeCeDocument.ve.ce.Document.getNodeAndOffset (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:612:119)
    at VeCeSurface.ve.ce.Surface.getSelectionState (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:720:627)
    at VeCeSurface.ve.ce.Surface.showModelSelection (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:718:124)
    at VeCeSurface.ve.ce.Surface.onModelSelect (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:702:301)
    at VeCeSurface.ve.ce.Surface.activate (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:669:90)
    at VeCeSurface.ve.ce.Surface.blur (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:667:752)
    at VeCeSurface.ve.ce.Surface.destroy (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:665:232)
    at VeUiSurface.ve.ui.Surface.destroy (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=ext.CodeMirror.lib%7Cext.visualEditor.core&skin=vector&version=1gv5rc0:806:865)
    at FlowVeTarget.ve.init.Target.clearSurfaces (<anonymous>:97:727)
    at FlowVeTarget.ve.init.Target.destroy (<anonymous>:94:946)
    at mwFlowUiVisualEditorWidget.mw.flow.ui.VisualEditorWidget.destroy (<anonymous>:417:966)
    at mwFlowUiEditorSwitcherWidget.mw.flow.ui.EditorSwitcherWidget.destroy (<anonymous>:431:987)
    at mwFlowUiEditorWidget.mw.flow.ui.EditorWidget.destroy (<anonymous>:439:639)
    at mwFlowUiReplyWidget.mw.flow.ui.ReplyWidget.destroy (<anonymous>:393:600)
    at <anonymous>:511:286
    at mwFlowUiReplyWidget.oo.EventEmitter.emit (<anonymous>:238:445)
    at <anonymous>:392:93
    at mightThrow (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki%7Cmediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:49:598)
    at process (https://www.mediawiki.org/w/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki%7Cmediawiki.legacy.wikibits&only=scripts&skin=vector&version=0v61to4:50:269) undefined

This one makes more sense. The surface is blurred as part of its destruction, but because it was deactivated (since the inspector was open), the blur function activates the surface, which doesn't make much sense.

I now see why the surface activates in response to blur, but I don't quite understand why applying a null selection isn't simpler in showModelSelection.

This could be a bug in VisualEditor , or it could be a bug in our integration of VE.

Needs investigation to find out which. If it is a problem with VisualEditor, let me know. :-)

If my preceding comments didn't make this clear: I'm pretty sure this is a bug in VE, but one that is only triggered if you destroy a surface with an inspector open, and in normal VE-MW usage surfaces are not typically destroyed AFAIK.

Restricted Application added a project: Collaboration-Team-Triage. · View Herald TranscriptOct 11 2017, 5:21 PM

I now see why the surface activates in response to blur, but I don't quite understand why applying a null selection isn't simpler in showModelSelection.

Well, that would be because setSelection becomes a no-op when the dm.Surface is disabled, so the setNullSelection call does nothing, and activate is called while the current selection is still a LinearSelection. It makes no sense to try to change the selection right before activating the ce.Surface, because while the ce.Surface is deactivated, the dm.Surface is disabled.

Change 383730 had a related patch set uploaded (by Catrope; owner: Catrope):
[mediawiki/extensions/Flow@master] Make sure ReplyWidget isn't destroyed while it's pending

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

Change 383732 had a related patch set uploaded (by Catrope; owner: Catrope):
[VisualEditor/VisualEditor@master] ve.ce.Surface: When destroying, blur before disconnecting model events

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

Change 383732 merged by jenkins-bot:
[VisualEditor/VisualEditor@master] ve.ce.Surface: When destroying, blur before disconnecting model events

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

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

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

Change 383840 merged by jenkins-bot:
[mediawiki/extensions/VisualEditor@master] Update VE core submodule to master (33e74b92f)

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

Deskana closed this task as Resolved.Oct 12 2017, 2:25 PM
Deskana assigned this task to Catrope.
Deskana set the point value for this task to 1.

Thanks @Catrope!

Restricted Application added a project: User-Ryasmeen. · View Herald TranscriptOct 12 2017, 2:25 PM

Change 383730 merged by jenkins-bot:
[mediawiki/extensions/Flow@master] Make sure ReplyWidget isn't destroyed while it's pending

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