Index: Source/core/editing/VisibleUnits.cpp |
diff --git a/Source/core/editing/VisibleUnits.cpp b/Source/core/editing/VisibleUnits.cpp |
index 141fae1f2592a2291037fe38e5fb8c486255591a..025745fdb34889cbe189eb192189ec8591e9e027 100644 |
--- a/Source/core/editing/VisibleUnits.cpp |
+++ b/Source/core/editing/VisibleUnits.cpp |
@@ -79,7 +79,7 @@ static Position previousRootInlineBoxCandidatePosition(Node* node, const Visible |
Node* highestRoot = highestEditableRoot(visiblePosition.deepEquivalent(), editableType); |
Node* previousNode = previousLeafWithSameEditability(node, editableType); |
- while (previousNode && inSameLine(firstPositionInOrBeforeNode(previousNode), visiblePosition)) |
+ while (previousNode && (!previousNode->renderer() || inSameLine(firstPositionInOrBeforeNode(previousNode), visiblePosition))) |
previousNode = previousLeafWithSameEditability(previousNode, editableType); |
while (previousNode && !previousNode->isShadowRoot()) { |
@@ -101,7 +101,7 @@ static Position nextRootInlineBoxCandidatePosition(Node* node, const VisiblePosi |
{ |
Node* highestRoot = highestEditableRoot(visiblePosition.deepEquivalent(), editableType); |
Node* nextNode = nextLeafWithSameEditability(node, editableType); |
- while (nextNode && inSameLine(firstPositionInOrBeforeNode(nextNode), visiblePosition)) |
+ while (nextNode && (!nextNode->renderer() || inSameLine(firstPositionInOrBeforeNode(nextNode), visiblePosition))) |
nextNode = nextLeafWithSameEditability(nextNode, ContentIsEditable); |
while (nextNode && !nextNode->isShadowRoot()) { |