| 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
|
|
|