Selection update not always fire

prosemirror-view version : v1.13.7

the question is a little bit like, but in v1.13.7, pm use mutationObserver instead.

sometimes i click on a block to make it active ( .prosemirror-selectnode class added) , then click on textContent, the cursor seems change to textContent, but block’s active class not removed, besides, if type something in that case, the block will be removed ( probably cursor is still remembered at that block node)

after check source code, i find the problem seem comes from code blow: // in prosemirror-view domObserver.js

DOMObserver { = window.MutationObserver (() => {
      if xx  flushSoon()
      else flush()

   connectSelection () {
       this.view.dom.ownerDocument.addEventListener("selectionchange", this.onSelectionChange)

if add test code in my project like blow, in my testPlugin

apply(tr)  {

when the problem occurs, browser not emit selectionchange event at all and mutationObserver callback not fires,and no ‘update’ console as well. if work as expected sometimes, the two callbacks will fires and will console “update”

With which browser does this happen?

chrome Version 79.0.3945.88 with mac trackpad

Okay, I can’t reproduce this in the obvious way (selecting a paragraph or horizontal-rule node and then clicking below or above it. But then I don’t have a macOS machine handy and am testing on Linux.

Can you reliably reproduce this in the demo (Cmd-click to select a block, Cmd-Shift-minus to insert a horizontal rule, which is a content-less block node)? Or does it require a specific type of node to be selected?