Index: Source/core/accessibility/AXRenderObject.cpp |
diff --git a/Source/core/accessibility/AXRenderObject.cpp b/Source/core/accessibility/AXRenderObject.cpp |
index 48f8af107b7377f187f18f784f1cc8cebc3941bf..05c40804f5ff5fb854cd1445ab2f7325e8b6ff48 100644 |
--- a/Source/core/accessibility/AXRenderObject.cpp |
+++ b/Source/core/accessibility/AXRenderObject.cpp |
@@ -1738,12 +1738,14 @@ VisiblePosition AXRenderObject::visiblePositionForIndex(int index) const |
if (index <= 0) |
return VisiblePosition(firstPositionInOrBeforeNode(node), DOWNSTREAM); |
- RefPtrWillBeRawPtr<Range> range = Range::create(m_renderer->document()); |
- range->selectNodeContents(node, IGNORE_EXCEPTION); |
- CharacterIterator it(range.get()); |
+ Position start, end; |
+ bool selected = Range::selectNodeContents(node, start, end); |
+ if (!selected) |
+ return VisiblePosition(); |
+ |
+ CharacterIterator it(start, end); |
it.advance(index - 1); |
- return VisiblePosition(Position(it.range()->endContainer(), it.range()->endOffset(), Position::PositionIsOffsetInAnch\ |
-or), UPSTREAM); |
+ return VisiblePosition(Position(it.endContainer(), it.endOffset(), Position::PositionIsOffsetInAnchor), UPSTREAM); |
} |
int AXRenderObject::indexForVisiblePosition(const VisiblePosition& pos) const |