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
Andrew Kaster
d97b09693e
LibWeb: Convert SandboxingFlagSet into a enum class
...
Instead of having a nested enum within a struct, use the macro
AK_ENUM_BITWISE_OPERATORS to add all the convienent has_flag free
functions and such for ease of use.
2023-08-29 09:39:57 +02:00
Andreas Kling
b3a885755c
LibWeb: Detach the paint tree in Document::tear_down_the_layout_tree()
...
Otherwise, someone may try to paint the paint tree after the layout tree
has been torn down. This could in theory be possible in the future, but
until we've completely severed the paint tree's dependency on the layout
tree, this is not safe as the layout tree is no longer in a valid state.
2023-08-28 23:36:22 +02:00
Andrew Kaster
03eae09619
LibWeb: Implement snapshotting source snapshot params per the spec
2023-08-28 09:47:11 +02:00
Sam Atkins
84a5c67d6b
LibWeb: Use system colors in more places
2023-08-25 20:30:20 +01:00
Aliaksandr Kalenik
5ff7448fee
LibWeb: Move viewport subscriptions from BrowsingContext to Document
...
With this change, elements that want to receive viewport rect updates
will need to register on document instead of the browsing context.
This change solves the problem where a browsing context for a document
is guaranteed to exist only while the document is active so browsing
context might not exit by the time DOM node that want to register is
constructed.
This is a part of preparation work before switching to navigables where
this issue becomes more visible.
2023-08-23 20:14:20 +02:00
Andreas Kling
234a73e43e
LibWeb: Implement "document-tree child navigables"
2023-08-23 19:49:26 +02:00
Andreas Kling
ae5313d33c
LibWeb: Add Document::viewport_rect()
...
This is a convenience helper that returns an empty rect if there is no
browsing context (to get the actual rect from).
2023-08-21 13:56:18 +02:00
Aliaksandr Kalenik
01cc14714e
LibWeb: Implement getting "inclusive ancestor navigables" of a document
2023-08-20 16:07:24 +02:00
Andreas Kling
e211f6c925
LibWeb: Implement getting "ancestor navigables" of a document
2023-08-20 16:07:24 +02:00
Andreas Kling
25375bf1d5
LibWeb: Make Document::paintable() return a ViewportPaintable
2023-08-20 05:02:59 +02:00