Index: Source/core/editing/FrameSelection.cpp |
diff --git a/Source/core/editing/FrameSelection.cpp b/Source/core/editing/FrameSelection.cpp |
index 651f570459b6ad2d3133edcd1cbf1d66a0968113..a9ca281adba5bccd01a0725c682adbe0899600a0 100644 |
--- a/Source/core/editing/FrameSelection.cpp |
+++ b/Source/core/editing/FrameSelection.cpp |
@@ -360,6 +360,17 @@ void FrameSelection::nodeWillBeRemoved(Node& node) |
removingNodeRemovesPosition(node, m_selection.start()), removingNodeRemovesPosition(node, m_selection.end())); |
} |
+static bool intersectsNode(const VisibleSelection& selection, Node* node) |
+{ |
+ if (selection.isNone()) |
+ return false; |
+ Position start = selection.start().parentAnchoredEquivalent(); |
+ Position end = selection.end().parentAnchoredEquivalent(); |
+ TrackExceptionState exceptionState; |
+ // TODO(yosin) We should avoid to use |Range::intersectsNode()|. |
+ return Range::intersectsNode(node, start, end, exceptionState) && !exceptionState.hadException(); |
+} |
+ |
void FrameSelection::respondToNodeModification(Node& node, bool baseRemoved, bool extentRemoved, bool startRemoved, bool endRemoved) |
{ |
ASSERT(node.document().isActive()); |