Index: third_party/WebKit/Source/core/editing/FrameSelection.cpp |
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.cpp b/third_party/WebKit/Source/core/editing/FrameSelection.cpp |
index fd90957a58fd8df90dcd66039ffb75dd0e540789..9a0978b271c82254d50945b68a0b4dc9db1999fd 100644 |
--- a/third_party/WebKit/Source/core/editing/FrameSelection.cpp |
+++ b/third_party/WebKit/Source/core/editing/FrameSelection.cpp |
@@ -405,6 +405,15 @@ void FrameSelection::nodeWillBeRemoved(Node& node) |
respondToNodeModification(node, removingNodeRemovesPosition(node, selection().base()), removingNodeRemovesPosition(node, selection().extent()), |
removingNodeRemovesPosition(node, selection().start()), removingNodeRemovesPosition(node, selection().end())); |
+ |
+ if (node == m_previousCaretNode) { |
+ // Hits in ManualTests/caret-paint-after-last-text-is-removed.html |
+ DisableCompositingQueryAsserts disabler; |
+ invalidateLocalCaretRect(m_previousCaretNode.get(), m_previousCaretRect); |
+ m_previousCaretNode = nullptr; |
+ m_previousCaretRect = LayoutRect(); |
+ m_previousCaretVisibility = Hidden; |
+ } |
} |
static bool intersectsNode(const VisibleSelection& selection, Node* node) |