Shannon Booth
9ce8189f21
Everywhere: Use unqualified AK::URL
...
Now possible in LibWeb now that there is no longer a Web::URL.
2024-02-25 08:54:31 +01:00
Andrew Kaster
2b3bc2654f
LibWeb: Mark Navigable as destroyed in destroy_top_level_traversable AO
...
Without this, a top level traversable might show up in settings we don't
want it to when accessing all_navigables, such as choose a navigable.
2024-02-13 19:46:10 +01:00
Andrew Kaster
53273e2037
LibWeb: Don't navigate() to about:blank when making a fresh Traversable
...
This matches the behavior of the window open steps, and should probably
be a spec issue :yakplus:
2024-02-08 15:53:46 +01:00
Andrew Kaster
813c66403d
LibWeb: Catch null browsing context in destroy_top_level_traversable
...
When WebDriver asks to destroy a window, we can hit this case with no
active browsing context. This seems odd, but perhaps is a spec issue as
well. Just log to dbgln for now.
2024-02-05 08:05:48 -07:00
Andrew Kaster
36cd2fb7c5
Ladybird+WebContent: Update IPC calls to handle multiple traversables
...
The IPC layer between chromes and LibWeb now understands that multiple
top level traversables can live in each WebContent process.
This largely mechanical change adds a billion page_id/page_index
arguments to make sure that pages that end up opening new WebViews
through mechanisms like window.open() still work properly with those
extra windows.
2024-02-03 20:51:37 -05:00
Andrew Kaster
4f088aff3d
LibWeb: Implement synchronous session history steps
2024-01-19 11:47:59 +01:00
Andrew Kaster
346eb02659
LibWeb: Remove last substantial FIXMEs from Navigation API
2024-01-19 11:47:59 +01:00
Andrew Kaster
6c1944ee61
LibWeb: Flesh out apply the history step to setup the navigation API
...
We now populate the navigation history entries in the navigation API and
fire more navigation events as appropriate.
2024-01-19 11:47:59 +01:00
Andrew Kaster
a8091c009b
LibWeb: Add assorted AOs related to populating the navigation API's SHEs
2024-01-19 11:47:59 +01:00
Shannon Booth
fd7be22653
LibWeb: Make TraversableNavigable store Page member as NonnullGCPtr
2023-12-05 09:38:32 +01:00
Andreas Kling
bfd354492e
LibWeb: Put most LibWeb GC objects in type-specific heap blocks
...
With this change, we now have ~1200 CellAllocators across both LibJS and
LibWeb in a normal WebContent instance.
This gives us a minimum heap size of 4.7 MiB in the scenario where we
only have one cell allocated per type. Of course, in practice there will
be many more of each type, so the effective overhead is quite a bit
smaller than that in practice.
I left a few types unconverted to this mechanism because I got tired of
doing this. :^)
2023-11-19 22:00:48 +01:00
Aliaksandr Kalenik
38531ce7cf
LibWeb: Do not unload during same-document history step application
...
See https://github.com/whatwg/html/pull/9904
2023-11-02 16:06:16 +01:00
Aliaksandr Kalenik
44f7d7406c
LibWeb: Use struct to pass Navigable::navigate() params
...
Using structs makes the navigate() calls looks cleaner. No change
in behavior is intended.
2023-10-12 03:25:06 +02:00
Karol Kosek
426b7ffa41
LibWeb: Don't include Window.h in Element.h and Document.h
...
Window.h is a rather heavy file, so let's try not to include it in
header files when we can!
Element.h now also includes LibWeb/Bindings/Intrinsics.h, but that's
just out of my laziness. Most if not all objects call
`Bindings::ensure_web_prototype<>()` anyway, so I don't think we would
gain much by sticking the header to source files instead.
2023-10-09 07:29:27 +02:00
Andreas Kling
759ad905de
LibWeb: Remove FIXME about spec bug in page visibility
...
Because the spec bug got fixed \o/
2023-09-27 09:31:27 +02:00
Aliaksandr Kalenik
699ead0939
LibWeb: Start fleshing out update document for history step application
2023-09-23 17:59:10 -06:00
Andrew Kaster
7e277797ad
LibWeb: Add about base url to the various AOs that construct documents
...
And some assorted cleanup along the way. The browsing context and
document AOs in particular need re-alignment with the spec.
2023-09-22 19:45:11 -06:00
Andrew Kaster
dc0f7c4c54
LibWeb: Align NavigationParams and the creation AOs to the spec
...
And remove assorted spec FIXMEs along the way. Also align
populate_session_history_entry_document to the spec, with a bonus spec
bug to be filed.
This involves creating a new NonFetchSchemeNavigationParams spec, and
having the associated AOs take a Variant rather than Optional to
accomodate the fact that this extra struct could be returned by the
algorithm. We don't actually *do* anything with these params, but the
scaffolding is there now, with less TODOs.
2023-09-22 19:45:11 -06:00
Andreas Kling
38cb15ff49
LibWeb: Move system visibility state to TraversableNavigable
...
This no longer belongs in BrowsingContext.
2023-09-20 18:29:17 +02:00
Andreas Kling
51caa14381
LibWeb: Remove FrameLoader
...
This class is no longer used, now that we've moved to navigables.
2023-09-20 18:29:17 +02:00
Aliaksandr Kalenik
7daa462ef8
LibWeb: Remove BrowsingContext::create_a_new_top_level_browsing_context
...
This call has been replaced by
`create_a_new_top_level_browsing_context_and_document`
after specification was refactored to use navigables.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
c437f16cc1
LibWeb: Early return navigation process if navigable has been destroyed
...
If a navigable has been destroyed during a navigation process, we
should early return from it. The introduced checks are not in
the spec because, as explained in
https://github.com/whatwg/html/issues/9690 the spec is not written
with such a level of detail.
2023-09-15 18:27:17 +02:00
Aliaksandr Kalenik
c20123378d
LibWeb: Add unloading of child navigables in "apply the history step"
...
Implements missing step from the spec.
2023-09-15 18:27:17 +02:00
Aliaksandr Kalenik
2445205e9d
LibWeb: Align session history step application code with latest spec
...
Replaces direct "apply the history step" calls with new functions from
the spec:
- "update for navigable creation/destruction"
- "apply the push/replace history step"
- "apply the reload history step"
2023-09-15 18:27:17 +02:00
Aliaksandr Kalenik
d3d2e56a68
LibWeb: Call set_ongoing_navigation()
on navigable instead of this
...
This fixes incorrectly implemented spec when `set_ongoing_navigation()`
is called on `this` (=traversable) instead of `navigable` variable.
2023-09-15 18:27:17 +02:00
Aliaksandr Kalenik
09013583f2
LibWeb: Add Navigable::set_ongoing_navigation()
2023-09-13 21:35:52 +02:00
Andrew Kaster
03eae09619
LibWeb: Implement snapshotting source snapshot params per the spec
2023-08-28 09:47:11 +02:00
Aliaksandr Kalenik
343c709566
LibWeb: Add m_page
in TraversableNavigable
2023-08-22 20:30:06 +02:00
Andreas Kling
5a704453af
LibWeb: Implement "close a top-level traversable"
2023-08-22 20:30:06 +02:00
Aliaksandr Kalenik
d5adb7f10c
LibWeb: Implement "finalize a same-document navigation"
2023-08-20 16:06:56 +02:00
Aliaksandr Kalenik
38c7703fe8
LibWeb: Add allowPOST param in populate_session_history_entry_document
2023-08-14 17:46:46 +02:00
Aliaksandr Kalenik
08788072c1
LibWeb: Add SessionHistoryTraversalQueue
2023-08-14 17:46:46 +02:00
Ali Mohammad Pur
06c6c40df9
LibWeb+LibJS: Move some code around to make CSS/Parser parse faster
...
This makes it possible to include fewer full definitions of things,
which makes the file about 30% faster to compile.
2023-07-11 09:38:37 +03:30
Andreas Kling
40e7f64433
LibWeb: Implement most of "destroy a top-level traversable"
...
Co-authored-by: Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
2023-06-21 16:26:44 +02:00
Aliaksandr Kalenik
ffd5b3da16
LibWeb: Implement reload for navigables
2023-06-20 18:30:27 +02:00
Aliaksandr Kalenik
aafa09e7a5
LibWeb: Implement "traverse the history by delta" for traversables
2023-06-20 17:36:44 +02:00
Aliaksandr Kalenik
c90136d48d
LibWeb: Start fleshing out "apply the history step" for traversables
...
Implements https://html.spec.whatwg.org/multipage/browsing-the-web.html#apply-the-history-step
2023-06-19 21:28:20 +02:00
Aliaksandr Kalenik
caf7fd4f19
LibWeb: Add supporting method to get navigables whose SHE will change
...
Implements https://html.spec.whatwg.org/multipage/browsing-the-web.html#get-all-navigables-whose-current-session-history-entry-will-change-or-reload
2023-06-19 21:28:20 +02:00
Aliaksandr Kalenik
9c1087de8c
LibWeb: Implement "get the used step" for traversable navigables
...
Implements https://html.spec.whatwg.org/multipage/browsing-the-web.html#getting-the-used-step
2023-06-19 21:28:20 +02:00
Aliaksandr Kalenik
5b06e43938
LibWeb: Implement get_the_history_object_length_and_index()
2023-06-19 21:28:20 +02:00
Aliaksandr Kalenik
0444df1a7c
LibWeb: Implement "clear the forward session history" for traversable
...
https://html.spec.whatwg.org/multipage/browsing-the-web.html#clear-the-forward-session-history
2023-05-08 17:53:59 +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
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
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