Index: Source/core/page/DOMSelection.cpp |
diff --git a/Source/core/page/DOMSelection.cpp b/Source/core/page/DOMSelection.cpp |
index 04a5a906f620d609a8fd18b0d527c6eb179fffde..56ca2f31f3ee1496b51264dd2582181637739e8c 100644 |
--- a/Source/core/page/DOMSelection.cpp |
+++ b/Source/core/page/DOMSelection.cpp |
@@ -207,9 +207,16 @@ void DOMSelection::collapse(Node* node, int offset, ExceptionState& exceptionSta |
if (!isValidForPosition(node)) |
return; |
- |
- // FIXME: Eliminate legacy editing positions |
- m_frame->selection().moveTo(VisiblePosition(createLegacyEditingPosition(node, offset), DOWNSTREAM)); |
+ if (!node) |
yosin_UTC9
2014/06/05 03:43:36
nit: Can we merge this if-statement to L208?
yoichio
2014/06/06 07:54:49
Oh, |node| is asserted at L199 so this line is no
|
+ return; |
+ RefPtr<Range> range = Range::create(node->document()); |
yosin_UTC9
2014/06/05 03:43:36
nit: Please use RefPtrWillbeRawPtr<Range>
yoichio
2014/06/06 07:54:49
Done.
|
+ range->setStart(node, offset, exceptionState); |
+ if (exceptionState.hadException()) |
+ return; |
+ range->setEnd(node, offset, exceptionState); |
+ if (exceptionState.hadException()) |
+ return; |
+ m_frame->selection().setSelectedRange(range.get(), DOWNSTREAM); |
} |
void DOMSelection::collapse(Node* node, ExceptionState& exceptionState) |