Aliaksandr Kalenik
9b16e5373d
LibWeb: Process session history queue after initial iframe navigation
...
This is not in the spec, but we need to make sure that "apply the
history step" for initial navigation to about:blank in iframe is
applied before subsequent navigations. Otherwise, "set ongoing
navigation" call during "about:blank" traversal might abort subsequent
ongoing navigation which is not expected to happen.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
0e0936e1ce
LibWeb: Update Window::frame_element()
to use navigables
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
67f5c027fe
LibWeb: Use saved navigable pointer in destroy_the_child_navigable
...
During the destruction of a navigable, we need to use the pointer to
the navigable that was saved at the beginning of the function. This
is because `Node::navigable()` will return a nullptr in subsequent
steps after the navigable's document becomes inactive.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
cf985afdcb
LibWeb: Look for targetStepSHE in parent while creating child navigable
...
Reported issue in the spec https://github.com/whatwg/html/issues/9686
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
cd75b1de3d
LibWeb: Delete discard() in Document and BrowsingContext
...
Those are not used anymore after moving to navigables.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
180c3e2fef
LibWeb: Remove unused BrowsingContext::close()
...
Was replaced by close_top_level_traversable()
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
bf785fee34
LibWeb: Remove unused BrowsingContext::container_document()
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
1f2ed7effc
LibWeb: Remove outdated version of determine_the_origin()
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
7b91f79817
LibWeb: Delete unused BrowsingContext::is_child_of()
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
6942bdcfce
LibWeb: Update top_level_browsing_context() to use navigables
2023-09-16 16:53:32 +02:00
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