diff options
author | Andreas Kling <kling@serenityos.org> | 2022-02-26 11:43:52 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-02-26 12:18:39 +0100 |
commit | 79ea30bc967f0ed1b28cb4aed4d6fdabb3f62408 (patch) | |
tree | d8600b815771fa8d9a3193493111c86d81ee1000 /Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.cpp | |
parent | 647576ec13f6be9f2b7f7c9ef4fef8aaf083f5f2 (diff) | |
download | serenity-79ea30bc967f0ed1b28cb4aed4d6fdabb3f62408.zip |
LibWeb: Add HTMLTableSectionElement.rows and HTMLTableRowElement.cells
1% progression on ACID3. :^)
Diffstat (limited to 'Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.cpp')
-rw-r--r-- | Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.cpp index 78af359fd0..fe3716d20c 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLTableRowElement.cpp @@ -1,9 +1,11 @@ /* - * Copyright (c) 2020, Andreas Kling <kling@serenityos.org> + * Copyright (c) 2020-2022, Andreas Kling <kling@serenityos.org> * * SPDX-License-Identifier: BSD-2-Clause */ +#include <LibWeb/DOM/HTMLCollection.h> +#include <LibWeb/HTML/HTMLTableCellElement.h> #include <LibWeb/HTML/HTMLTableRowElement.h> namespace Web::HTML { @@ -17,4 +19,17 @@ HTMLTableRowElement::~HTMLTableRowElement() { } +// https://html.spec.whatwg.org/multipage/tables.html#dom-tr-cells +NonnullRefPtr<DOM::HTMLCollection> HTMLTableRowElement::cells() const +{ + // The cells attribute must return an HTMLCollection rooted at this tr element, + // whose filter matches only td and th elements that are children of the tr element. + // FIXME: This should return the same HTMLCollection object every time, + // but that would cause a reference cycle since HTMLCollection refs the root. + return DOM::HTMLCollection::create(const_cast<HTMLTableRowElement&>(*this), [this](Element const& element) { + return element.parent() == this + && is<HTMLTableCellElement>(element); + }); +} + } |