Ali Mohammad Pur
0937d88869
LibWeb: Remove more DeprecatedString null state remnants
2023-10-14 09:12:41 -04: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
Shannon Booth
48f367adbb
LibWeb: Port get_element_by_id from DeprecatedFlyString
...
We needed to keep the old versions of these functions around before all
of the IDL interfaces were ported over to new AK String, but now that is
done, we can remove the deprecated versions of these functions.
2023-10-08 08:11:48 -04:00
Aliaksandr Kalenik
a86531809e
LibWeb: Destroy navigable containers not inserted into document tree
...
This change fixes the bug where navigable containers related to a
document, but not present in the tree, were never destroyed.
Fixes https://github.com/SerenityOS/serenity/issues/21364
2023-10-08 06:17:40 +02:00
Shannon Booth
9303e9e76f
LibWeb: Port Element::local_name and TagNames from Deprecated String
...
Which pretty much needs to be done together due to the amount of places
where they are compared together.
This also involves porting over StackOfOpenElements over to FlyString
from DeprecatedFly string to prevent a gazillion calls to
`.to_deprecated_fly_string` calls in HTMLParser.
2023-10-03 14:47:53 +01:00
Aliaksandr Kalenik
dc19de58d0
LibWeb: Do not use JS::Handle for "scripts to execute" in DOM::Document
...
Using JS::Handle in members of GC-allocated object almost always leaks.
Instead we should visit these members in visit_edges().
2023-09-27 19:39:57 +02:00
Aliaksandr Kalenik
67c727177e
LibWeb: Clear all active timers when document is destroyed
...
This change implements a step from the document's destroy procedure in
the specification, saying that all active timers should be cleared.
By doing this, we also fix the leaking of a document in case where we
have navigated away from a page that has scheduled timers that haven't
yet been triggered.
2023-09-26 19:42:59 +02:00
Aliaksandr Kalenik
0c46d79e78
LibWeb: Use JS::HeapFunction for resumption steps in HTMLImageElement
2023-09-25 21:14:53 +02:00
Shannon Booth
3bd04d2c58
LibWeb: Port Attr interface from DeprecatedString to String
...
There are an unfortunate number of DeprecatedString conversions required
here, but these should all fall away and look much more pretty again
when other places are also ported away from DeprecatedString.
Leaves only the Element IDL interface left :^)
2023-09-25 15:39:29 +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
Shannon Booth
8ce9e51c97
LibWeb: Port Node interface from DeprecatedString to String
...
Which is fortunately quite straight forward :^)
2023-09-17 20:29:18 +02:00
Aliaksandr Kalenik
a76ef04ae6
LibWeb+WebContent: Create WebContentConsoleClient
for every document
...
Fixes regression introduced in b4fe118dff
The `WebContentConsoleClient` needs to be created not just once, but
for every new document. Although the JS Console window allows
communication only with the active document associated with the
top-level browsing context, we still need a console client for each
iframe's document to ensure their console logs are printed.
In the future, we might consider adding the ability to switch which
document the JS Console window communicates with.
Fixes https://github.com/SerenityOS/serenity/issues/21117
2023-09-17 19:58:28 +02:00
Aliaksandr Kalenik
76d42aa2d5
LibWeb: Add missing visit Document::m_intersection_observers
2023-09-16 19:44:55 -06:00
Aliaksandr Kalenik
078489d9ee
LibWeb: Add missing visit Document::m_target_element
2023-09-16 19:44:55 -06:00
Aliaksandr Kalenik
f01cbaf5fb
LibWeb: Remove unused javascript:
url navigation methods in Document
...
Those are superseded by methods to navigate `javascript:` url in
navigables.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
05cbc448b6
LibWeb: Update Document::update_layout() to use navigables
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
76a97d8863
LibWeb: Update Document::completely_finish_loading() to use navigables
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
57e53fa844
LibWeb: Update "has style sheet that blocking scripts" for navigables
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
2fbb6ae520
LibWeb: Add did_stop_being_active_document_in_navigable()
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
b90dd9d1f8
LibWeb: Destroy child navigables in Document::destroy()
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
c3e2a40b76
LibWeb: Early return from update_layout() if document is not active
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
80a06fa672
LibWeb: Use relevant_global_object in lookup_custom_element_definition
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
c0c542d495
LibWeb: Update `shared_declarative_refresh_steps()" 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
4a6ac18cd4
LibWeb: Call did_finish_load when page readiness changes to complete
...
Before, this function were called from FrameLoader and now we have to
move it to another place so it is still called after migrating to
navigables.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
537bf4c917
LibWeb: Update Document::is_fully_active() to match latest spec
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
bd119b92f1
LibWeb: Update Document::is_active() for navigables
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
e5302e0f56
LibWeb: Update Document::unload() to match latest spec
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
359d8a3dc2
LibWeb: Update Document::create_and_initialize() to match latest spec
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik
2c3bb26551
LibWeb: Update the document "abort" algorithm for navigables
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
Andreas Kling
f91b34ef2e
LibWeb: Update "obtain a BC to use for a navigation response"
...
This no longer calls "discard" on the browsing context, since discarding
is going away.
2023-09-16 16:53:32 +02:00
Andreas Kling
35ff38aaea
LibWeb: Visit Document::m_visual_viewport
...
Another day, another missing visit_edges() :^(
2023-09-16 14:46:38 +02:00
Shannon Booth
e74031a396
LibWeb: Port Document interface from DeprecatedString to String
2023-09-16 11:17:19 +02:00
Shannon Booth
c3e6077cfc
LibWeb: Make Document::{visibility,read}_state return a StringView
...
Also using the visibility state enum to change strcmp to a simple
enum state check :^)
2023-09-13 07:26:35 +02:00
Shannon Booth
49eb3bfb1d
LibWeb: Make Document::run_the_document_write_steps take a StringView
...
Which flows on down into HTMLTokenizer::insert_input_at_insertion_point.
2023-09-13 07:26:35 +02:00
Shannon Booth
827170f6e6
LibWeb: Take a StringView in Document::get_elements_by_class_name
...
We only ever use the view of the DeprecatedFlyString anyway, so let's
just use a StringView.
2023-09-13 07:26:35 +02:00
Shannon Booth
e42bda5f19
LibWeb: Make Document::open functions take a StringView
...
One of these functions doesn't make any use of the arguments at all, and
the other defers to an open helper which already takes a StringView.
2023-09-13 07:26:35 +02:00
Shannon Booth
8ad05fff4a
LibWeb: Make Document::set_cookie take a StringView
...
Enabled by also making the same change to ParsedCookie::parse_cookie :^)
2023-09-13 07:26:35 +02:00
Aliaksandr Kalenik
7eee3f6952
LibWeb: Add mutable_computed_values()
for NodeWithStyle
...
This fixes the issue that we previously had to use a gross static_cast
whenever we wanted to mutate computed values outside of the Node
methods.
2023-09-12 17:26:30 +02:00
Shannon Booth
41928c2902
LibWeb: Port DOMException interface from DeprecatedString to String
2023-09-06 11:44:45 -04:00
Shannon Booth
bcb6851c07
LibWeb: Port Text interface from DeprecatedString to String
2023-09-06 11:44:45 -04:00
Shannon Booth
cc1e4c5cb3
LibWeb: Port Comment interface from DeprecatedString to String
2023-09-06 11:44:45 -04:00
Jonatan Klemets
acd46b5974
LibWeb: Fix int parsing in Document::shared_declarative_refresh_steps
...
We now have functions for parsing integers in a spec-compliant way. This
patch replaces the `to_uint` call with a call to the spec-compliant
`Web::HTML::parse_non_negative_integer` function.
2023-08-31 22:27:48 +01:00
Aliaksandr Kalenik
a482166087
LibWeb: Bring html element height calculation closer to the spec
...
Previously we always set the height of the HTML element equal to the
viewport height but now this will only happen in quirks mode as it is
intended. Otherwise the html element height will be computed as auto.
2023-08-31 21:43:58 +02:00