1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-18 15:15:08 +00:00
Commit graph

1746 commits

Author SHA1 Message Date
Aliaksandr Kalenik
fda420875d LibWeb: Delete BrowsingContext::set_active_document()
Superseded by Document::make_active()
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
4532584b3a LibWeb: Remove unused BrowsingContext::create_a_new_browsing_context()
Became unused after introducing
create_a_new_browsing_context_and_document() used in navigables.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
24f97491bf LibWeb: Delete unused create_a_new_browsing_context_group()
Became unused after introducing
create_a_new_browsing_context_group_and_document() used in navigables
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
6665f0db43 LibWeb: Delete unused document_tree_child_browsing_context_count()
The function is no longer needed with navigables.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
605d24ef7d LibWeb: Update WindowProxy::internal_own_property_keys() for navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
089a23a1f2 LibWeb: Update Window::length() to use navigables 2023-09-16 16:53:32 +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
3171abe92a LibWeb: Call Document::set_window() from Document::make_active() 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
24b3e315a0 LibWeb: Remove unused navigation methods in BrowsingContext 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
912cf89727 LibWeb: Update HTMLIFrameElement to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
623d1a78da LibWeb: Update HTMLObjectElement to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
3634749d98 LibWeb: Update Window::open_impl() to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
1e54026269 LibWeb: Update History::go() to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
dd9eca254e LibWeb: Update WindowProxy::internal_get_own_property for navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
d45f2a4952 LibWeb: Update Location::replace() to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
acff244335 LibWeb: Use navigate() instead of did_set_location_href in Location 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
083e4a3f30 LibWeb: Update Location::reload() to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
dd7bba66ed LibWeb: Change viewport ownership from BrowsingContext to Navigable 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
c7a6d418d7 LibWeb: Update HTMLHyperlinkElementUtils to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
857537f90c LibWeb: Update HTMLFormElement to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
2323c77718 LibWeb: Call page_did_create_main_document() from navigables navigation
Before, this function were called from FrameLoader and now we still
have to call it from navigables navigation code so JS Console is
created.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
ce9af96f78 LibWeb: Use document from DocumentState in navigation
New navigables spec assumes that document pointer is located in
DocumentState instead of SessionHistoryEntry like it was in the
old navigation spec.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
ee50d9b2b5 LibWeb: Update Page to use navigables 2023-09-16 16:53:32 +02:00
Shannon Booth
e74031a396 LibWeb: Port Document interface from DeprecatedString to String 2023-09-16 11:17:19 +02:00
Andrew Kaster
ae15b68b79 LibWeb: Call page_did_start_loading from navigate()
This fixes a crash in Browser on Serenity
2023-09-15 18:27:17 +02:00
Aliaksandr Kalenik
6522fa8933 LibWeb: Use DocumentLoadEventDelayer to delay load event in Navigable
Use a delayer object that actually delays load event for child
navigables instead of boolean flag that does nothing.
2023-09-15 18:27:17 +02:00
Aliaksandr Kalenik
b398d6a35c LibWeb: Determine origin while populating navigation params from srcdoc
Address the FIXMEs by implementing the missing parts of the procedure
from the specification.
2023-09-15 18:27:17 +02:00
Aliaksandr Kalenik
7ad2dd2693 LibWeb: Exit navigation process if navigation id has changed
Change of navigation id means that it has been aborted, and we should
return early.
2023-09-15 18:27:17 +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
799b465fac LibWeb: Compare urls excluding fragments in Navigable::navigate() 2023-09-15 18:27:17 +02:00
Aliaksandr Kalenik
fbc95440a4 LibWeb: Only return initialized navigables from child_navigables()
Fixes a crash in `get_session_history_entries()` that happens when
it attempts to find entries for a navigable that hasn't been fully
initialized and therefore doesn't have a nested history entry yet.
2023-09-15 18:27:17 +02:00
Aliaksandr Kalenik
15d265da65 LibWeb: Fix "stack-use-after-return" in navigate_to_a_fragmement()
Callback running on the session history queue should capture necessary
pointers by value instead of reference, because navigate_to_a_fragment
stack will have been destroyed by the time it will be executed.
2023-09-15 18:27:17 +02:00
Luke Wilde
56f0b10d14 LibWeb: Fix setTimeout() when there's no active script
Implements https://github.com/whatwg/html/pull/9712
Fixes https://github.com/SerenityOS/serenity/issues/20970
2023-09-15 08:53:21 +02:00
Luke Wilde
9335524f15 LibWeb: Default ScriptFetchOptions parser metadata to NotParserInserted
See: https://html.spec.whatwg.org/multipage/webappapis.html#default-classic-script-fetch-options
2023-09-15 08:53:21 +02:00
Shannon Booth
d7c1cc0276 LibWeb: Fix missing 'get an output encoding' step in HTMLFormElement
This could mean that the picked encoding was not being set to UTF-8 if
the documents encoding was 'replacement', 'utf-16le' or 'utf-16be'.
2023-09-14 06:49:57 -04:00
Aliaksandr Kalenik
84139a10d2 LibWeb: Implement navigation to javascript: URLs for navigables
Implements following algorithms from the specification:
https://html.spec.whatwg.org/multipage/browsing-the-web.html#navigate-to-a-javascript:-url
https://html.spec.whatwg.org/multipage/browsing-the-web.html#evaluate-a-javascript:-url
2023-09-13 21:35:52 +02:00
Aliaksandr Kalenik
09013583f2 LibWeb: Add Navigable::set_ongoing_navigation() 2023-09-13 21:35:52 +02:00
Aliaksandr Kalenik
aa0d254fa3 LibWeb: Start fleshing out "URL and history update steps" 2023-09-13 21:35:52 +02:00
Sam Atkins
29bb0f0ae6 LibWeb: Stub out an "open" state on <select> elements
The CSS Selectors-4 spec suggests that `:open` and `:closed` should
apply to `<select>` elements, so let's add a way of storing and
exposing that state. We don't yet actually generate any layout for
`<select>` elements, so they will always report that they are closed.
2023-09-13 19:55:22 +02:00
Timothy Flynn
b1632c58bf LibWeb: Create a shadow tree for details elements with manual slots
The spec requires that details elements be assigned a shadow tree with
two slots. The first slot is assigned the first summary child element of
the details element. The second slot is assigned all other children.
2023-09-13 13:45:47 +02:00
Timothy Flynn
683ce8e615 LibWeb: Implement (most of) the assigned slot/slottable lookup APIs
This implements looking up a slottable's assigned slot, and a slot's
list of assigned slottables. For the latter, only unflattened lookups
are implemented so far.
2023-09-13 13:45:47 +02:00
Timothy Flynn
b602ee7ddd LibWeb: Implement automatic slottable assignment
This implements automatic slottable assignment by way of hooking into
the element attribute change steps. When the `name` attribute of a slot
or the `slot` attribute of a slottable changes, assignment is performed.
2023-09-13 13:45:47 +02:00
Timothy Flynn
e9da74ebe0 LibWeb: Implement manual slottable assignment
This implements manual slottable assignment by way of HTMLSlotElement's
`assign` API. This includes all of the slottable-related AOs needed to
perform the assignment.
2023-09-13 13:45:47 +02:00
Timothy Flynn
7870f10aa8 LibWeb: Introduce the slot concept for HTML slot elements
A slot is an HTMLSlotElement. It may have any number of slottable nodes
assigned to it.
2023-09-13 13:45:47 +02:00
Timothy Flynn
54b5a431a3 LibWeb: Implement element slot-related attributes and settings
This implements the element's slot attribute itself, and setting the
slot assignment on the element's shadow root.
2023-09-13 13:45:47 +02:00
Timothy Flynn
8bb5652835 LibWeb: Implement HTMLDetailsElement's open attribute closer to the spec
The spec now has a "toggle task tracker" to coalesce rapid changes to
this attribute. It also now has an explicit ToggleEvent to encapsulate
the old and new state of the element.

This further handles the attribute being added/removed using a override
of Element::attribute_changed(), rather than being the only element to
instead override Element::set/remove__attribute().
2023-09-13 13:45:47 +02:00
Timothy Flynn
153ae93f9c LibWeb: Implement ToggleEvent for HTMLDetailsElement 2023-09-13 13:45:47 +02:00