Commit graph

24 commits

Author SHA1 Message Date
Shannon Booth
8ce9e51c97 LibWeb: Port Node interface from DeprecatedString to String
Which is fortunately quite straight forward :^)
2023-09-17 20:29:18 +02:00
Shannon Booth
d4a890080d LibWeb: Switch IDL from UseNewAKString to UseDeprecatedAKString
NewAKString is effectively the default for any new IDL interface, so
let's mark this as the default behavior. It also makes it much easier to
figure out whatever interfaces are still left to port over to new AK
String.
2023-09-02 19:23:41 +01:00
Luke Wilde
32e27bc7fa LibWeb: Add a bunch of missing CEReactions
This is almost guaranteed not to be all CEReactions we need to add, but
this puts us in a much better situation.
2023-04-06 11:36:56 +02:00
Andrew Kaster
67ceba2e6a LibWeb: Add Exposed attribute and IDL spec links where missing
The intent is to use these to autogenerate prototype declarations for
Window and WorkerGlobalScope classes.

And the spec links are just nice to have :^)
2022-10-09 10:14:57 +02:00
Igor Pissolati
682a4a347a LibWeb: Bring Node closer to spec
Node::base_uri() correct implementation was left as a FIXME.
2022-04-12 19:42:16 +02:00
Adam Hodgen
c6dd8a1f66 LibWeb: Implement Node.nodeValue DOM attribute 2022-02-21 16:31:45 +01:00
Ali Mohammad Pur
a59800b4a0 LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
Luke Wilde
1ea3f34823 LibWeb: Implement Node.getRootNode 2021-10-16 10:51:23 +02:00
Luke Wilde
6a7739c645 LibWeb: Convert Node.childNodes to NodeList
This changes the old child_nodes implementation to children_as_vector
so that can still be used in insert_before.
2021-10-03 00:18:52 +02:00
Andreas Kling
449cbd5ecc LibWeb: Implement Node.isEqualNode(Node? otherNode) 2021-09-13 12:54:24 +02:00
Andreas Kling
a0528598b5 LibWeb: Implement Node.isSameNode(Node? otherNode) 2021-09-13 12:49:23 +02:00
Luke Wilde
5e61382849 LibWeb: Make Node.textContent more spec compliant
The current implementation felt a bit ad-hoc and notably allowed
textContent to operate on all node types. It also only returned the
child text content of the Node instead of the descendant text content.
2021-09-06 02:36:04 +02:00
Luke
9cae827f07 LibWeb: Implement Node.contains
Used by Web Components Polyfills.
2021-07-05 12:39:46 +02:00
Luke
46f2c278b0 LibWeb: Implement Node.replaceChild
The `if (child->parent())` check seems to be redundant, but I'm keeping
it just to match the spec.
2021-05-07 08:53:37 +02:00
Luke
8bafbdddc6 LibWeb: Expose Node.ownerDocument
Required by jQuery.
2021-05-02 22:51:46 +02:00
Linus Groh
5da4c9bf1e LibWeb: Implement Node.cloneNode()
With this we can now successfully run a Vue.js 2 hello world! :^)
2021-04-14 09:30:29 +02:00
Brian Gianforcaro
988c23fff0 LibWeb: Add implementation of Node.compareDocumentPosition()
While looking into getting Duck Duck Go loading further in the
Browser, I noticed that it was complaining about the missing
method Node.compareDocumentPosition.

This change implements as much of the DOM spec as possible
with the current implementation of the DOM to date. The
implementation is validated by new tests in the Node.js.
2021-04-11 09:40:06 +02:00
Brian Gianforcaro
0f8932d7ab LibWeb: Connect existing implementation of Node::is_connected to JS.
I was looking at implementing something else, and saw this was low
hanging fruit, that brings the browser closer to standards conformance.

Add a basic test as well to validate it's implementation.
2021-04-11 09:40:06 +02:00
Luke
5beacf08a2 LibWeb: Make the node mutation algorithms more spec compliant
The mutation algorithms now more closely follow the spec and
fixes some assertion failures in tests such as Acid3 and Dromaeo.

The main thing that is missing right now is passing exceptions to the
bindings layer. This is because of issue #6075. I spent a while trying
to work it out and got so frustrated I just left it as a FIXME. Besides
that, the algorithms bail at the appropriate points.

This also makes the adopting steps in the document more spec compliant
as it's needed by the insertion algorithm. While I was at it, I added
the adoptNode IDL binding.

This adds a bunch of ancestor/descendant checks to TreeNode as well.
I moved the "remove_all_children" function to Node as it needs to use
the full remove algorithm instead of simply removing it from
the child list.
2021-04-06 21:42:00 +02:00
Luke
ed139bee7f LibWeb: Add a couple child node operations to Node and add node types 2021-03-06 19:57:12 +01:00
Andreas Kling
a0bcfa30bf LibWeb: Add simple implementation of Node.removeChild() 2021-01-28 08:58:22 +01:00
Andreas Kling
5a58f42e3c LibWeb: Remove accidentally committed changes from b72f067f0d 2021-01-28 08:57:12 +01:00
Andreas Kling
b72f067f0d Kernel+Userland: Remove unused "effective priority" from threads
This has been merged with the regular Thread::priority field after
the recent changes to the scheduler.
2021-01-28 08:25:53 +01:00
Andreas Kling
13d7c09125 Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Renamed from Libraries/LibWeb/DOM/Node.idl (Browse further)