mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-11 02:29:21 +00:00
LibWeb: Return a NodeList from document.getElementsByName()
This aligns our implementation with the specification.
This commit is contained in:
parent
e40352b6b5
commit
bd1213d0c5
Notes:
github-actions[bot]
2024-07-23 06:59:11 +00:00
Author: https://github.com/tcl3
Commit: bd1213d0c5
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/773
3 changed files with 8 additions and 5 deletions
|
@ -47,6 +47,7 @@
|
||||||
#include <LibWeb/DOM/ElementFactory.h>
|
#include <LibWeb/DOM/ElementFactory.h>
|
||||||
#include <LibWeb/DOM/Event.h>
|
#include <LibWeb/DOM/Event.h>
|
||||||
#include <LibWeb/DOM/HTMLCollection.h>
|
#include <LibWeb/DOM/HTMLCollection.h>
|
||||||
|
#include <LibWeb/DOM/LiveNodeList.h>
|
||||||
#include <LibWeb/DOM/NodeIterator.h>
|
#include <LibWeb/DOM/NodeIterator.h>
|
||||||
#include <LibWeb/DOM/ProcessingInstruction.h>
|
#include <LibWeb/DOM/ProcessingInstruction.h>
|
||||||
#include <LibWeb/DOM/Range.h>
|
#include <LibWeb/DOM/Range.h>
|
||||||
|
@ -1394,10 +1395,12 @@ void Document::set_hovered_node(Node* node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
JS::NonnullGCPtr<HTMLCollection> Document::get_elements_by_name(FlyString const& name)
|
JS::NonnullGCPtr<NodeList> Document::get_elements_by_name(FlyString const& name)
|
||||||
{
|
{
|
||||||
return HTMLCollection::create(*this, HTMLCollection::Scope::Descendants, [name](Element const& element) {
|
return LiveNodeList::create(realm(), *this, LiveNodeList::Scope::Descendants, [name](auto const& node) {
|
||||||
return element.name() == name;
|
if (!is<Element>(node))
|
||||||
|
return false;
|
||||||
|
return verify_cast<Element>(node).name() == name;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -248,7 +248,7 @@ public:
|
||||||
void schedule_style_update();
|
void schedule_style_update();
|
||||||
void schedule_layout_update();
|
void schedule_layout_update();
|
||||||
|
|
||||||
JS::NonnullGCPtr<HTMLCollection> get_elements_by_name(FlyString const&);
|
JS::NonnullGCPtr<NodeList> get_elements_by_name(FlyString const&);
|
||||||
|
|
||||||
JS::NonnullGCPtr<HTMLCollection> applets();
|
JS::NonnullGCPtr<HTMLCollection> applets();
|
||||||
JS::NonnullGCPtr<HTMLCollection> anchors();
|
JS::NonnullGCPtr<HTMLCollection> anchors();
|
||||||
|
|
|
@ -73,7 +73,7 @@ interface Document : Node {
|
||||||
readonly attribute Element? activeElement;
|
readonly attribute Element? activeElement;
|
||||||
|
|
||||||
Element? getElementById(DOMString id);
|
Element? getElementById(DOMString id);
|
||||||
HTMLCollection getElementsByName([FlyString] DOMString name);
|
NodeList getElementsByName([FlyString] DOMString name);
|
||||||
HTMLCollection getElementsByTagName([FlyString] DOMString tagName);
|
HTMLCollection getElementsByTagName([FlyString] DOMString tagName);
|
||||||
HTMLCollection getElementsByTagNameNS([FlyString] DOMString? namespace, [FlyString] DOMString localName);
|
HTMLCollection getElementsByTagNameNS([FlyString] DOMString? namespace, [FlyString] DOMString localName);
|
||||||
HTMLCollection getElementsByClassName(DOMString className);
|
HTMLCollection getElementsByClassName(DOMString className);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue