mirror of
https://github.com/RGBCube/serenity
synced 2025-06-10 13:52:07 +00:00
LibWeb: Implement Range.commonAncestorContainer
This commit is contained in:
parent
aec0e54f73
commit
c25d653c31
3 changed files with 20 additions and 0 deletions
|
@ -68,4 +68,20 @@ NonnullRefPtr<Range> Range::normalized() const
|
||||||
return inverted();
|
return inverted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://dom.spec.whatwg.org/#dom-range-commonancestorcontainer
|
||||||
|
NonnullRefPtr<Node> Range::common_ancestor_container() const
|
||||||
|
{
|
||||||
|
// 1. Let container be start node.
|
||||||
|
auto container = m_start_container;
|
||||||
|
|
||||||
|
// 2. While container is not an inclusive ancestor of end node, let container be container’s parent.
|
||||||
|
while (!container->is_inclusive_ancestor_of(m_end_container)) {
|
||||||
|
VERIFY(container->parent());
|
||||||
|
container = *container->parent();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. Return container.
|
||||||
|
return container;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,8 @@ public:
|
||||||
NonnullRefPtr<Range> normalized() const;
|
NonnullRefPtr<Range> normalized() const;
|
||||||
NonnullRefPtr<Range> clone_range() const;
|
NonnullRefPtr<Range> clone_range() const;
|
||||||
|
|
||||||
|
NonnullRefPtr<Node> common_ancestor_container() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit Range(Document&);
|
explicit Range(Document&);
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@ interface Range {
|
||||||
|
|
||||||
readonly attribute boolean collapsed;
|
readonly attribute boolean collapsed;
|
||||||
|
|
||||||
|
readonly attribute Node commonAncestorContainer;
|
||||||
|
|
||||||
readonly attribute Node startContainer;
|
readonly attribute Node startContainer;
|
||||||
readonly attribute unsigned long startOffset;
|
readonly attribute unsigned long startOffset;
|
||||||
readonly attribute Node endContainer;
|
readonly attribute Node endContainer;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue