Matthew Olsson
a9d192e882
LibJS+LibWeb: Explicitly mark ignored members in visit_edges methods
2023-04-30 06:04:33 +02:00
Matthew Olsson
39d8c8d2a9
LibJS+LibWeb: Add missing visit calls in visit_edges implementations
2023-04-30 06:04:33 +02:00
Matthew Olsson
82eeee2008
LibJS+LibWeb: Normalize calls to Base::visit_edges in GC objects
2023-04-30 06:04:33 +02:00
Matthew Olsson
3f22919eb5
LibWeb: Add missing JS::GCPtr wrappers in HTMLLinkElement
2023-04-30 06:04:33 +02:00
Aliaksandr Kalenik
62bc8590ad
LibWeb: Implement "get all used history steps" for traversables
...
https://html.spec.whatwg.org/multipage/browsing-the-web.html#getting-all-used-history-steps
2023-04-28 18:11:44 +02:00
Aliaksandr Kalenik
6ec88b36b9
LibWeb: Implement "get the target history entry" for navigables
2023-04-28 18:11:44 +02:00
Aliaksandr Kalenik
d9d8896380
LibWeb: Implement "get session history entries" for navigables
...
https://html.spec.whatwg.org/multipage/browsing-the-web.html#getting-session-history-entries
2023-04-28 18:11:44 +02:00
Aliaksandr Kalenik
c9c8f2413f
LibWeb: Change Navigable::traversable_navigable() to be const
2023-04-28 18:11:44 +02:00
Aliaksandr Kalenik
6660eb3e1b
LibWeb: Add non-const session_history_entries getter in traversable
2023-04-28 18:11:44 +02:00
Aliaksandr Kalenik
51d64bdaec
LibWeb: Add NestedHistory in DocumentState
2023-04-28 18:11:44 +02:00
Aliaksandr Kalenik
3c89286467
LibWeb: Implement creation of fresh top-level traversables
...
Co-authored-by: Andreas Kling <kling@serenityos.org>
2023-04-26 15:51:50 +02:00
Aliaksandr Kalenik
9a19bdbfcf
LibWeb: Implement Navigable::initialize_navigable()
2023-04-26 15:51:50 +02:00
Aliaksandr Kalenik
74ab8ec4f0
LibWeb: Add step property in SessionHistoryEntry
2023-04-26 15:51:50 +02:00
Timothy Flynn
78ad471367
LibWeb: Remove custom playback timer from HTMLMediaElement
...
After the EventLoop changes, we do not need to override LibVideo's timer
with a Qt timer for Ladybird. The timer callback provided here also does
not need the JS::SafeFunction wrapper that Platform::Timer provides.
2023-04-25 18:02:22 +02:00
Aliaksandr Kalenik
ce9d9a10b8
LibWeb: Start fleshing out Navigable::navigate()
...
Start implementation of https://html.spec.whatwg.org/multipage/browsing-the-web.html#navigate
Co-authored-by: Andreas Kling <kling@serenityos.org>
2023-04-25 12:54:01 +02:00
Aliaksandr Kalenik
1ee4a3e310
LibWeb: Add m_ongoing_navigation in Navigable
2023-04-25 12:54:01 +02:00
Andreas Kling
2626e28bb6
LibWeb: Add HTML::Task::Source::NavigationAndTraversal
2023-04-25 12:54:01 +02:00
Andreas Kling
4d8edf65b5
LibWeb: Add HistoryHandlingBehavior::Push
...
Also add FIXMEs about removing no-longer-used enum values.
2023-04-25 12:54:01 +02:00
Aliaksandr Kalenik
5446c7adc3
LibWeb: Add HTML::POSTResource
...
This is "POST resource" from the HTML spec.
2023-04-25 12:54:01 +02:00
Aliaksandr Kalenik
3b00636288
LibWeb: Implement "create a new browsing context and document"
...
Co-authored-by: Andreas Kling <kling@serenityos.org>
2023-04-24 07:57:15 +02:00
Andreas Kling
6871fbce9f
LibWeb: Implement the "top-level traversable" of a browsing context
2023-04-24 07:57:15 +02:00
Andreas Kling
65467021e2
LibWeb: Add updated version of "determine the origin" AO from HTML spec
...
The old version is still around since it has many users, so we can't
remove it until everything has been updated to use the new version.
2023-04-24 07:57:15 +02:00
Aliaksandr Kalenik
3225c39191
LibWeb: Implement Document::make_active()
...
Implementation of "make active" algorithm from the spec for Document.
Co-authored-by: Andreas Kling <kling@serenityos.org>
2023-04-24 07:57:15 +02:00
Timothy Flynn
32e2207b55
LibWeb: Implement the HTMLMediaElement fastSeek method
2023-04-24 07:55:54 +02:00
Aliaksandr Kalenik
9f691b7fe4
LibWeb: Convert navigationId from DeprecatedString to String
2023-04-24 07:55:20 +02:00
Timothy Flynn
848078aedd
LibWeb: Propagate LibVideo decoder errors to the HTMLMediaElement
2023-04-23 16:22:45 +02:00
Timothy Flynn
9c940608fd
LibWeb: Implement the HTMLMediaElement error attribute
2023-04-23 16:22:45 +02:00
Timothy Flynn
73a80b7047
LibWeb: Implement the MediaError IDL interface
2023-04-23 16:22:45 +02:00
Andreas Kling
6e416284b9
LibWeb: Add API for finding Navigable with a given active document
...
This will be used to look up a document's node navigable. It might be
nice to have a direct pointer from Document to its Navigable, but at
the moment I don't understand the algorithms well enough to maintain
that linkage.
2023-04-23 15:41:05 +02:00
Andreas Kling
54e01824c7
LibWeb: Implement getting the top-level traversable of a navigable
2023-04-23 14:18:57 +02:00
Andreas Kling
05dc1da321
LibWeb: Implement getting the traversable navigable of a navigable
2023-04-23 14:18:57 +02:00
Sam Atkins
6d93e03211
LibWeb+Browser+Ladybird: Use JS::SafeFunction for EventLoop callbacks
...
This automatically protects captured objects from being GC'd before the
callback runs.
2023-04-21 20:44:47 +01:00
Timothy Flynn
e0ccba9c85
LibWeb: Implement the HTMLVideoElement poster attribute
...
This will fetch the URL indicated by the poster attribute when it's set,
changed, or removed. The spec doesn't say how to handle animated poster
images, so we just grab the first frame of the image, which seems to
match other implementations.
2023-04-21 07:54:36 +02:00
Timothy Flynn
b384f2009d
LibWeb: Implement the HTMLMediaElement show-poster flag
...
Note that this doesn't do much yet, as the HTMLVideoElement does not
handle its poster attribute as of this commit.
2023-04-21 07:54:36 +02:00
Timothy Flynn
12c15641c1
LibWeb: Implement the HTMLMediaElement "potentially playing" concept
2023-04-21 07:54:36 +02:00
Timothy Flynn
9f71799456
LibWeb: Make HTMLMediaElement's attribute change handlers protected
...
These will be need to be overridden by HTMLVideoElement. We also need to
be sure to invoke HTMLMediaElement's base class's did_remove_attribute.
2023-04-21 07:54:36 +02:00
Timothy Flynn
42d93005ac
LibWeb: Add a getter for HTMLMediaElement's current playback position
...
This will be needed by the layout node, which may change what is painted
when the position of the frame image is not the same as the element's
current time.
2023-04-21 07:54:36 +02:00
Timothy Flynn
dd188aafb9
LibWeb: Track decoded video frame positions along with the frame image
...
This will be needed by the layout node, which may change what is painted
when the position of the frame image is not the same as the element's
current time.
2023-04-21 07:54:36 +02:00
Linus Groh
d58b671ff6
LibWeb/DOM: Rename Node::{paint => paintable}_box()
...
It returns a PaintableBox, not a 'PaintBox'.
2023-04-20 20:43:30 +02:00
Linus Groh
e6be5c37c0
LibWeb/WebDriver: Handle WindowProxy in internal_json_clone_algorithm()
...
To test:
```console
curl http://0.0.0.0:8000/session \
-H 'Content-Type: application/json' \
-d '{"capabilities": {}}'
curl http://0.0.0.0:8000/session/0/execute/sync \
-H 'Content-Type: application/json' \
-d '{"script": "return window;", "args": []}'
```
Which should result in:
```json
{
"value": {
"window-fcc6-11e5-b4f8-330a88ab9d7f":
"86307df6-e2f1-4175-85cb-77295ff90898"
}
}
```
2023-04-20 14:41:31 -04:00
Linus Groh
b4f78760f2
LibWeb/HTML: Store NonnullGCPtr in browsing context group set
...
These are never supposed to be null.
2023-04-20 16:47:57 +01:00
Linus Groh
4ee72420e8
LibWeb/HTML: Store NonnullGCPtr in browsing context set
...
These are never supposed to be null.
2023-04-20 16:47:53 +01:00
Timothy Flynn
d2f9645cc0
LibWeb: Properly stop, rather than terminate, ongoing media fetches
...
We are currently using the fetch controller's terminate() method to stop
ongoing fetches when the HTMLMediaElement load algorithm is invoked.
This method ultimately causes the fetch response to be a network error,
which we propagate through the HTMLMediaElement's error event. This can
cause websites, such as Steam, to avoid attempting to play any video.
The spec does not actually specify what it means to "stop" or "cancel" a
fetching process. But we should not use terminate() as that is a defined
spec method, and the spec does tend to indicate when that method should
be used (e.g. as it does in XMLHttpRequest).
2023-04-20 06:19:41 +02:00
Timothy Flynn
1fb0c7826b
LibWeb: Do not handle media ready state changes for empty network states
...
This was missed in the header text of the ready state transition spec.
2023-04-20 06:19:41 +02:00
Timothy Flynn
27fd31b2ad
LibWeb: Implement the HTMLMediaElement delaying-the-load-event flag
2023-04-20 06:19:41 +02:00
Timothy Flynn
1a67b86b76
LibWeb: Implement the HTMLMediaElement currentSrc attribute
2023-04-20 06:19:41 +02:00
Andreas Kling
74a6f50c91
LibWeb: Add HTML::TraversableNavigable
...
This is the "traversable navigable" concept from the HTML spec.
Co-authored-by: Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
2023-04-19 18:26:45 +02:00
Andreas Kling
2d602dcb34
LibWeb: Add HTML::Navigable
...
This is the first step towards implementing the new "navigable" concept
from the HTML spec.
Co-authored-by: Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
2023-04-19 18:26:45 +02:00
Andreas Kling
d8ccc2d54e
LibWeb: Rename BrowsingContextContainer => NavigableContainer
...
The "browsing context container" concept in the HTML spec has been
replaced with "navigable container". Renaming this is the first step of
many towards implementing the new world.
Co-authored-by: Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
2023-04-19 18:26:45 +02:00
Timothy Flynn
f8d6a67294
LibWeb: Implement the HTMLMediaElement crossOrigin attribute
2023-04-19 07:57:52 +02:00