Elisée Maurer
34db0dab41
LibWeb: Implement Element.toggleAttribute()
2022-03-30 18:30:29 +02:00
Ali Mohammad Pur
a59800b4a0
LibWeb: Add imports to all IDL files that depend on others
2022-02-16 22:48:32 +03:30
Edwin Hoksberg
c646afc26c
LibWeb: Support Element.closest(selectors)
2022-02-16 07:23:27 -05:00
DerpyCrabs
58ce2dd088
LibWeb: Add stub implementation for Element's getClientRects
...
getClientRects supposed to return a list of bounding DOMRect
for each box fragment of Element's layout, but most elements have
only one box fragment, so implementing it with getBoundingClientRect
is useful.
2022-02-12 22:43:10 +01:00
Andreas Kling
e2c71b6725
LibWeb: Add a partial implementation of Element.setAttributeNS()
...
This implementation does some of the required validation and then passes
through the localName and value to Element.setAttribute().
2022-02-05 22:50:39 +01:00
Luke Wilde
7431f6073b
LibWeb: Implement ChildNode.replaceWith
2022-01-31 15:25:36 +01:00
Luke Wilde
5a5e3a6ec3
LibWeb: Implement ChildNode.after
2022-01-31 15:25:36 +01:00
Luke Wilde
1bbe40c5af
LibWeb: Implement ChildNode.before
2022-01-31 15:25:36 +01:00
Luke Wilde
d1bc9358c1
LibWeb: Implement ParentNode.replaceChildren
2022-01-31 15:25:36 +01:00
Luke Wilde
34dfdc3f37
LibWeb: Implement ParentNode.append
2022-01-31 15:25:36 +01:00
Luke Wilde
d5c96c3ccf
LibWeb: Implement ParentNode.prepend
...
`convert_nodes_to_single_node` is inside its own file so ChildNode can
include and use it without having to include other headers such as
DOM/Node.h. This is to prevent circular includes.
2022-01-31 15:25:36 +01:00
Luke Wilde
4427386d5f
LibWeb: Implement Element.getAttributeNames
2021-12-30 14:30:35 +01:00
Luke Wilde
6088011c4b
LibWeb: Add Element.webkitMatchesSelector
...
This is an alias of Element.matches for web compatibility.
https://dom.spec.whatwg.org/#dom-element-webkitmatchesselector
Used by particularly old versions of Sizzle, such as 1.10.2:
16b079b164/jquery.js (L1644)
This particular version is used by DuckDuckGo.
2021-10-28 21:43:36 +02:00
Timothy Flynn
14349f058a
LibWeb: Implement the Element classList attribute
...
And ensure it is updated (if it exists) when the 'class' attribute is
changed.
2021-10-18 23:33:56 +02:00
Timothy Flynn
5d4cd061c7
LibWeb: Implement the Element attributes getter
2021-10-17 13:51:10 +01:00
Luke Wilde
2f7fb1fe63
LibWeb: Convert ParentNode.querySelectorAll to NodeList
2021-10-03 00:18:52 +02:00
Andreas Kling
3006e15c94
LibWeb: Support Element.client{Top,Left,Width,Height}
2021-09-30 02:17:23 +02:00
Andreas Kling
9d852623f2
LibWeb: Support Element.matches(selectors)
...
This returns whether an element matches any of a set of selectors.
2021-09-30 02:16:36 +02:00
Luke Wilde
7bdf0be667
LibWeb: Implement ChildNode.remove
2021-09-29 17:56:13 +02:00
Andreas Kling
43d378940f
LibWeb: Add DOMRect and Element.getBoundingClientRect()
...
This marks our entry into the Web::Geometry namespace, based on the
"Geometry" spec at https://drafts.fxtf.org/geometry/
2021-09-27 01:01:29 +02:00
Luke Wilde
d47e431d54
LibWeb: Add getElementsByTagNameNS and add support for * in non-NS
...
This also moves getElementsByTagName to ParentNode to remove the code
duplication between Document and Element. This additionally fixes a bug
where getElementsByTagName did not check if the element was a
descendant, meaning it would also include the context element if the
condition matched.
2021-09-22 20:33:06 +02:00
Luke Wilde
e4d97add3d
LibWeb: Implement ParentNode.children
...
Required by Web Platform Tests for the innerHTML/outerHTML tests.
2021-09-14 02:09:18 +02:00
Luke Wilde
8e0f3436a2
LibWeb: Make the innerHTML setter spec compliant
...
This adds innerHTML to ShadowRoot in the process.
2021-09-14 02:09:18 +02:00
Luke
56d7d28d41
LibWeb: Expose Element.{prefix,localName}
2021-05-11 18:01:36 +02:00
Andreas Kling
e4df1b223f
LibWeb: Implement a slow but functional HTMLCollection :^)
...
HTMLCollection is an awkward legacy interface from the DOM spec.
It provides a live view of a DOM subtree, with some kind of filtering
that determines which elements are part of the collection.
We now return HTMLCollection objects from these APIs:
- getElementsByClassName()
- getElementsByName()
- getElementsByTagName()
This initial implementation does not do any kind of caching, since that
is quite a tricky problem, and there will be plenty of time for tricky
problems later on when the engine is more mature.
2021-04-22 21:21:46 +02:00
Luke
83d2c3f2f5
LibWeb: Move element_child_count to ParentNode and add its IDL attribute
...
I initially had it in Node just because, but then saw it was part of
ParentNode in the spec.
2021-04-11 18:32:42 +02:00
Andreas Kling
33e3f0c71f
LibWeb: Expose barebones CSSStyleDeclaration to JavaScript
...
You can now access an element's inline style via Element.style.
The interface is not very capable yet though. :^)
2021-03-13 22:41:32 +01:00
Linus Groh
79bab28f5e
LibWeb: Implement Element.getElementsBy{Tag,Class}Name()
...
Just like the Document variants, but using the given Element as
for_each_in_subtree_of_type() root.
2021-02-08 17:59:04 +01:00
Andreas Kling
13d7c09125
Libraries: Move to Userland/Libraries/
2021-01-12 12:17:46 +01:00