Linus Groh
0b52b883af
LibWeb: Implement '5.5. Response class' from the Fetch API :^)
2022-09-27 14:56:17 +01:00
Linus Groh
9fb672e981
LibWeb: Implement '5.4. Request class' from the Fetch API :^)
2022-09-27 14:56:17 +01:00
Linus Groh
87654f5b51
LibWeb: Start fleshing out the ReadableStream interface
...
This is so we can just assume it exists in Fetch APIs (while still
skipping functionality that relies on a full implementation, of
course).
2022-09-22 21:01:13 +01:00
Andreas Kling
530675993b
LibWeb: Rename Attribute to Attr
...
This name is not very good, but it's what the specification calls it.
2022-09-18 02:08:01 +02:00
Andreas Kling
ffad902c07
LibWeb: Use cached_web_prototype() as much as possible
...
Unlike ensure_web_prototype<T>(), the cached version doesn't require the
prototype type to be fully formed, so we can use it without including
the FooPrototype.h header. It's also a bit less verbose. :^)
2022-09-06 00:27:09 +02:00
Andreas Kling
a85542958c
LibWeb: Add some missing constructors to the Window object
2022-09-06 00:27:09 +02:00
Andreas Kling
6f433c8656
LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated
...
This is a monster patch that turns all EventTargets into GC-allocated
PlatformObjects. Their C++ wrapper classes are removed, and the LibJS
garbage collector is now responsible for their lifetimes.
There's a fair amount of hacks and band-aids in this patch, and we'll
have a lot of cleanup to do after this.
2022-09-06 00:27:09 +02:00
Sam Atkins
2ec52bbbd5
LibWeb: Implement Path2D class
2022-08-14 11:30:40 +02:00
Kenneth Myhra
890514a057
LibWeb: Introduce the File interface from the FileAPI spec
2022-07-26 20:54:30 +01:00
Linus Groh
ed49b66f25
LibWeb: Implement '5.1. Headers class' from the Fetch API :^)
2022-07-19 00:27:35 +01:00
Kenneth Myhra
df8c49f6bf
LibWeb: Introduce Blob
2022-07-17 00:23:19 +01:00
Andreas Kling
e883777a18
LibWeb: Add barebones implementation of DOMPoint and DOMPointReadOnly
2022-07-12 23:12:11 +02:00
Luke Wilde
c9ba5531e0
LibWeb: Introduce Mutation{Record,Observer} and observer microtasks
2022-07-11 22:35:08 +02:00
Luke Wilde
de88e119a0
LibWeb: Implement XMLSerializer
...
The main thing that is missing is validating certain pieces of data
against XML productions in well-formed mode, but nothing uses
well-formed mode right now.
Required by Closure Library for sanitising HTML.
e687b3d8ab/closure/goog/html/sanitizer/safedomtreeprocessor.js (L117)
2022-07-05 21:25:05 +02:00
Luke Wilde
1ceba560f4
LibWeb: Add CDATASection
...
Not used for anything currently other than exposing it on the Window
object. This allows Web Components Polyfills to patch its prototype.
2022-06-27 22:53:04 +01:00
Luke Wilde
58f882200c
LibWeb: Add the ability to retrieve a WebGL context from getContext
2022-06-13 21:45:27 +01:00
Luke Wilde
b0c2aee2e4
LibWeb: Introduce the WebGL namespace and add WebGLContextEvent
2022-06-13 21:45:27 +01:00
Sam Atkins
1cec8e473f
LibWeb: Add CSSSupportsRule wrapper
2022-05-11 20:16:10 +02:00
Sam Atkins
fda71a6d48
LibWeb: Add CSSMediaRule wrapper
2022-05-11 20:16:10 +02:00
Sam Atkins
0cf8986a1e
LibWeb: Add CSSImportRule wrapper
2022-05-11 20:16:10 +02:00
Sam Atkins
1951873a5d
LibWeb: Add CSSConditionRule wrapper
2022-05-11 20:16:10 +02:00
Sam Atkins
cfe5d63a1e
LibWeb: Add CSSGroupingRule wrapper
2022-05-11 20:16:10 +02:00
Sam Atkins
bc4c185aef
LibWeb: Add MediaList wrapper
...
Most of the pieces were already there, I'd just forgotten to actually
wire them up.
2022-05-11 20:16:10 +02:00
Simon Danner
bd90498332
LibWeb: Add SVGDefsElement
...
* Similarly to clipPath, this doesn't need to get rendered, so return no
LayoutNode.
2022-04-11 20:19:10 +02:00
Andreas Kling
e81594d9a1
LibWeb: Sketch out a very basic SVG <clipPath> element
...
This element doesn't actually support anything at the moment, but it
still massively speeds up painting performance on Wikipedia! :^)
How? Because we no longer paint SVG <path> elements found inside
<clipPath> elements. SVGClipPathElement::create_layout_node() returns
nullptr which stops the layout tree builder from recursing further into
the subtree, and so the <path> element never gets a layout or paint box.
Mousing over Wikipedia now barely break 50% CPU usage on my machine :^)
2022-04-10 21:35:55 +02:00
Igor Pissolati
a387b822a0
LibWeb: Add basic constructor/prototype to exotic objects
2022-04-06 11:38:11 +02:00
Igor Pissolati
8da99c3014
LibWeb: Add legacy Option factory function
2022-04-04 13:53:26 +01:00
Simon Wanner
73da139cd7
LibWeb: Expose IdleDeadline on the window object
2022-04-02 23:52:25 +01:00
Sam Atkins
804b8c85e8
LibWeb: Implement initial CSSFontFaceRule and FontFace classes
...
For now, this is the bare minimum that's needed: font-family and src.
2022-03-28 22:25:25 +02:00
Andreas Kling
5d672717aa
LibWeb: Add a barebones SVGTextContentElement with getNumberOfChars()
2022-03-20 13:36:45 +01:00
Simon Wanner
624527f15e
LibWeb: Add stub implementation of HTMLOptionsCollection
...
This is a subtype of `DOM::HTMLCollection` that only holds
`HTMLOptionElement`s. In this stub implementation only `item`,
`namedItem` and `length`, inherited from HTMLCollection, are exposed.
This is good enough for applications that only read the collection.
2022-03-16 14:25:09 +01:00
Andreas Kling
acbdb95b0a
LibWeb: Add support for DOM's TreeWalker
...
This patch adds TreeWalker (created via Document.createTreeWalker())
which allows you to traverse a filtered view of the DOM in all
directions.
2022-03-09 16:43:55 +01:00
Andreas Kling
fabcee016f
LibWeb: Add basic support for DOM's NodeIterator and NodeFilter
...
This patch adds NodeIterator (created via Document.createNodeIterator())
which allows you to iterate through all the nodes in a subtree while
filtering with a provided NodeFilter callback along the way.
This first cut implements the full API, but does not yet handle nodes
being removed from the document while referenced by the iterator. That
will be done in a subsequent patch.
2022-03-09 16:43:00 +01:00
Luke Wilde
3d44118595
LibWeb: Implement StaticRange
2022-02-26 12:53:32 +01:00
Luke Wilde
a2acda5669
LibWeb: Abstract Range's members into AbstractRange
...
Range's member variables are stored in AbstractRange as per the spec,
as they are also shared with StaticRange.
2022-02-26 12:53:32 +01:00
Luke Wilde
ed76b4238c
LibWeb: Implement the legacy Audio factory function
...
This creates an Audio element with preload="auto" and the given src
attribute.
Required by Cookie Clicker.
2022-02-26 12:18:56 +01:00
Ben Abraham
ae346cff6b
LibWeb: Add partially functioning Worker API
...
Add a partial implementation of HTML5 Worker API.
Messages can be sent from the inner context externally.
2022-02-17 22:45:21 +01:00
Ali Mohammad Pur
16c0646b9d
LibWeb: Implement a very basic version of TextDecoder
...
We had a very basic implementation of TextEncoder, let's add a
TextDecoder next to that :^)
2022-02-16 22:48:32 +03:30
DerpyCrabs
2f828231c4
LibWeb: Implement Geometry::DOMRectList
...
Implement DOMRectList that is used as a return type of
getClientRects functions on Element and Range.
2022-02-12 22:43:10 +01:00
Sam Atkins
2fad940b0b
LibWeb: Add SVG <polygon> element and test case :^)
2022-02-11 21:38:27 +01:00
Sam Atkins
116a1f485c
LibWeb: Add SVG <polyline> element and test case :^)
2022-02-11 21:38:27 +01:00
Sam Atkins
17912330c4
LibWeb: Add SVG <line> element and test case :^)
2022-02-11 21:38:27 +01:00
Sam Atkins
3a1a35ef8f
LibWeb: Add SVG <ellipse> element and test case :^)
2022-02-11 21:38:27 +01:00
Sam Atkins
21bdcee3c3
LibWeb: Add SVG <circle> element and test case :^)
2022-02-11 21:38:27 +01:00
Sam Atkins
1dde6a0a2b
LibWeb: Add SVG <rect> element and test case :^)
2022-02-11 21:38:27 +01:00
Andreas Kling
47979996e8
LibWeb: Add Storage interface and window.localStorage
...
This is a naive-but-somewhat-functional initial implementation of
HTML Storage.
Note that there is no persistence yet, everything is in-process only,
and one local Storage object per origin.
2022-02-08 21:53:20 +01:00
Luke Wilde
11eedc309a
LibWeb: Implement ErrorEvent
...
This will be used by the new EventTarget to check if it needs to do
special error event handling. Currently it isn't used for anything
else.
2022-02-07 14:58:18 +01:00
Andreas Kling
627ad6c37c
LibWeb: Add a proper FocusEvent interface for "focus" and "blur" events
2022-02-07 00:04:50 +01:00
Andreas Kling
f92ee94fe2
LibWeb: Expose KeyboardEvent's constructor on the window object
2022-02-03 22:35:13 +01:00
Andreas Kling
dc3bf32307
LibWeb: Add barebones CanvasGradient object
...
Also add the CanvasRenderingContext2D APIs to go along with it.
Note that it can't be used for anything yet.
2022-02-03 22:35:13 +01:00