зеркало из https://github.com/mozilla/gecko-dev.git
46be890959
I give up to write a clean patch for this bug with current design. The trigger is indeed bug 1618089, but this is a hidden regression of bug 1530649. Starting from bug 1530649, `WSRunObject` started to use `EditorDOMPoint` for storing the specified point. And it may store (or only store) child node. Therefore, if it points a text node and it's removed by `WSRunObject::DeleteRange()`, the point becomes invalid even if its offset is still valid. Therefore, we should make `mStartScanPoint` and `mEndScanPoint` forget their child before DOM tree change ideally, but it means that we need to compute offset of the child every time before changing the DOM tree. We cannot accept this safest approach due to performance reason. Therefore, this patch just invalidates `mStartScanPoint`'s child node only when it's reused after the DOM tree is modified. Differential Revision: https://phabricator.services.mozilla.com/D68048 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
composer | ||
libeditor | ||
reftests | ||
spellchecker | ||
txmgr | ||
AsyncSpellCheckTestHelper.jsm | ||
moz.build | ||
nsIDocumentStateListener.idl | ||
nsIEditActionListener.idl | ||
nsIEditor.idl | ||
nsIEditorMailSupport.idl | ||
nsIEditorObserver.idl | ||
nsIEditorSpellCheck.idl | ||
nsIEditorStyleSheets.idl | ||
nsIHTMLAbsPosEditor.idl | ||
nsIHTMLEditor.idl | ||
nsIHTMLInlineTableEditor.idl | ||
nsIHTMLObjectResizer.idl | ||
nsITableEditor.idl |