1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 13:47:45 +00:00

LibWeb: Implement Selection.collapse_to_end

This commit is contained in:
Rafał Babiarz 2022-12-09 22:09:03 +01:00 committed by Andreas Kling
parent bb5da1b4e2
commit 227d860d6b
2 changed files with 17 additions and 3 deletions

View file

@ -219,9 +219,23 @@ WebIDL::ExceptionOr<void> Selection::collapse_to_start()
}
// https://w3c.github.io/selection-api/#dom-selection-collapsetoend
void Selection::collapse_to_end()
WebIDL::ExceptionOr<void> Selection::collapse_to_end()
{
TODO();
// 1. The method must throw InvalidStateError exception if the this is empty.
if (!m_range) {
return WebIDL::InvalidStateError::create(realm(), "Selection.collapse_to_end() on empty range"sv);
}
// 2. Otherwise, it must create a new range
auto new_range = DOM::Range::create(*m_document);
// 3. Set the start both its start and end to the start of this's range
TRY(new_range->set_start(*anchor_node(), m_range->end_offset()));
TRY(new_range->set_end(*anchor_node(), m_range->end_offset()));
// 4. Then set this's range to the newly-created range.
m_range = new_range;
return {};
}
// https://w3c.github.io/selection-api/#dom-selection-extend