Commit graph

54725 commits

Author SHA1 Message Date
Aliaksandr Kalenik 4446858401 LibWeb: Do not crash if parsing failed in load_document()
If `load_document()` is called with a response that has a mime type we
can't use to build a document, we should return nullptr as the spec
says, instead of crashing. Also we should not crash if error happened
during parsing.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik 351567a01f Tests/LibWeb: Add text tests for navigation 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik ead311eac7 LibWeb: Delete navigation id check in navigate_to_a_javascript_url
Adding this check was a mistake because although the navigation id
changes to null in step 2, it still has to proceed and apply the
history step.
2023-09-16 16:53:32 +02: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 38461a7b86 LibWeb: Update EventHandler::handle_mouseup to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik 69513de1ad LibWeb: Update IntersectionObserver::intersection_root() for navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik 10b2ce49dc LibWeb: Invalidate style before running insertion steps
This fixes issue reproducing with following steps:
1. Node::insert_before() adopts a node into another document.
2. Node::insert_before() runs insertion steps for adopted node (adopted
   node style is not invalidated yet).
3. Insertion steps execute spin_until() on event loop.
4. The next task on event loop does Document::update_style() which
   requires layout tree rebuild.
5. Layout tree rebuild fails because there is a node with invalidated
   style.
2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik 6736a76915 LibWeb: Update Window::name() to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik 5d12dea4c9 LibWeb: Update Window::set_name() to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik c95215f829 LibWeb: Update Window::focus() to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik e54071ce89 LibWeb: Update Window::parent() to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik 8d82dc3a9f LibWeb: Update Window::top() to use 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 6411fea552 LibWeb: Update focus_chain() to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik 38034237c5 LibWeb: Update run_iframe_load_event_steps 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 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 d17b1d6b1f LibWeb: Update WebDriverConnection::close_window() to use navigables 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik df5db1631b LibWeb: Update WebDriverConnection::close_session() to use navigables 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 57e53fa844 LibWeb: Update "has style sheet that blocking scripts" for navigables 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 2fbb6ae520 LibWeb: Add did_stop_being_active_document_in_navigable() 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 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 24b3e315a0 LibWeb: Remove unused navigation methods in BrowsingContext 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 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 7dd01b245b LibWeb: Remove unused Page::load(LoadRequest&) 2023-09-16 16:53:32 +02:00
Aliaksandr Kalenik d559fb8b7e WebContent: Update wait_for_navigation_to_complete 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