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
Aliaksandr Kalenik
aa0d254fa3
LibWeb: Start fleshing out "URL and history update steps"
2023-09-13 21:35:52 +02:00