Commit graph

28363 commits

Author SHA1 Message Date
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
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
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