Ignore mutations that is not under editor#3290
Merged
JiuqingSong merged 2 commits intomasterfrom Feb 25, 2026
Merged
Conversation
BryanValverdeU
approved these changes
Feb 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
in
textMutationObserver, we will go through mutations that is not made by content model and see if we can reconcile the change and reflect it in existing cached Content Model. And if an mutation happens under an entity, we should ignore it.However, it is possible that we delete an entity node from editor and modify some node under this deleted node. Now when we handle this mutation, since the target node is already removed, existing code will return false when we check if it is under an entity. This causes the mutation won't be ignored and finally an existing cache will be invalidated.
Fix: Check if the target node is under editor. If so, directly ignore this change. So cache can be preserved.