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 464ca351009703fc1146a4da0ce061f790eb36b5..47f5c0d3e4a2bcd47a4874c779b4371943aee441 100644 |
--- a/third_party/WebKit/Source/core/editing/FrameSelection.cpp |
+++ b/third_party/WebKit/Source/core/editing/FrameSelection.cpp |
@@ -35,6 +35,7 @@ |
#include "core/dom/Element.h" |
#include "core/dom/ElementTraversal.h" |
#include "core/dom/NodeTraversal.h" |
+#include "core/dom/NodeWithIndex.h" |
#include "core/dom/Text.h" |
#include "core/editing/CaretBase.h" |
#include "core/editing/EditingUtilities.h" |
@@ -550,7 +551,11 @@ static Position updatePostionAfterAdoptingTextNodesMerged( |
return position; |
} |
-void FrameSelection::didMergeTextNodes(const Text& oldNode, unsigned offset) { |
+void FrameSelection::didMergeTextNodes( |
+ const Text& mergedNode, |
+ const NodeWithIndex& nodeToBeRemovedWithIndex, |
+ unsigned offset) { |
+ const Text& oldNode = toText(nodeToBeRemovedWithIndex.node()); |
if (isNone() || !oldNode.isConnected()) |
return; |
Position base = updatePostionAfterAdoptingTextNodesMerged(selection().base(), |
@@ -710,9 +715,10 @@ void FrameSelection::documentAttached(Document* document) { |
m_useSecureKeyboardEntryWhenActive = false; |
m_selectionEditor->documentAttached(document); |
m_frameCaret->documentAttached(document); |
+ setContext(document); |
} |
-void FrameSelection::documentDetached(const Document& document) { |
+void FrameSelection::contextDestroyed(Document* document) { |
DCHECK_EQ(m_document, document); |
m_document = nullptr; |
m_granularity = CharacterGranularity; |
@@ -722,7 +728,7 @@ void FrameSelection::documentDetached(const Document& document) { |
view.clearSelection(); |
clearTypingStyle(); |
- m_selectionEditor->documentDetached(document); |
+ m_selectionEditor->documentDetached(*document); |
} |
LayoutBlock* FrameSelection::caretLayoutObject() const { |
@@ -1294,6 +1300,7 @@ DEFINE_TRACE(FrameSelection) { |
visitor->trace(m_selectionEditor); |
visitor->trace(m_typingStyle); |
visitor->trace(m_frameCaret); |
+ SynchronousMutationObserver::trace(visitor); |
} |
void FrameSelection::scheduleVisualUpdate() const { |