This mapping has 3 multi-map groups: several pairings are equally correct there. The code view shows one arbitrary valid pairing, not the only one.

Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–519 unchanged (519 lines)
520
521 auto navigable = this->navigable();
522 if (!navigable || !navigable->is_focused())
523 return;
524
525 auto node = cursor_position->node();
526 if (node->paintable()) {
527 m_cursor_blink_state = !m_cursor_blink_state;
528 node->paintable()->set_needs_display();
529 }
530 });
531
532 HTML::main_thread_event_loop().register_document({}, *this);
533}
534
…lines 535–1159 unchanged (625 lines)
1160 m_needs_full_layout_tree_update = true;
1161}
1162
1163Color Document::background_color() const
1164{
1165 // CSS2 says we should use the HTML element's background color unless it's transparent...
1166 if (auto* html_element = this->html_element(); html_element && html_element->layout_node()) {
1167 auto color = html_element->layout_node()->computed_values().background_color();
1168 if (color.alpha())
1169 return color;
1170 }
1171
1172 // ...in which case we use the BODY element's background color.
1173 if (auto* body_element = body(); body_element && body_element->layout_node()) {
1174 auto color = body_element->layout_node()->computed_values().background_color();
1175 return color;
1176 }
1177
1178 // By default, the document is transparent.
1179 // The outermost canvas is colored by the PageHost.
1180 return Color::Transparent;
1181}
1182
1183Vector<CSS::BackgroundLayerData> const* Document::background_layers() const
1184{
1185 auto* body_element = body();
1186 if (!body_element)
1187 return {};
1188
1189 auto body_layout_node = body_element->layout_node();
1190 if (!body_layout_node)
1191 return {};
1192
1193 return &body_layout_node->background_layers();
1194}
1195
1196CSS::ImageRendering Document::background_image_rendering() const
1197{
1198 auto* body_element = body();
1199 if (!body_element)
1200 return CSS::ImageRendering::Auto;
1201
1202 auto body_layout_node = body_element->layout_node();
1203 if (!body_layout_node)
1204 return CSS::ImageRendering::Auto;
1205
1206 return body_layout_node->computed_values().image_rendering();
1207}
1208
…lines 1209–1392 unchanged (184 lines)
1393
1394static void propagate_scrollbar_width_to_viewport(Element& root_element, Layout::Viewport& viewport)
1395{
1396 // https://drafts.csswg.org/css-scrollbars/#scrollbar-width
1397 // UAs must apply the scrollbar-color value set on the root element to the viewport.
1398 auto& viewport_computed_values = viewport.mutable_computed_values();
1399 auto& root_element_computed_values = root_element.layout_node()->computed_values();
1400 viewport_computed_values.set_scrollbar_width(root_element_computed_values.scrollbar_width());
1401}
1402
1403// https://drafts.csswg.org/css-overflow-3/#overflow-propagation
1404static void propagate_overflow_to_viewport(Element& root_element, Layout::Viewport& viewport)
1405{
…lines 1406–1413 unchanged (8 lines)
1414 auto* body_element = root_element.first_child_of_type<HTML::HTMLBodyElement>();
1415 if (body_element && !body_element->computed_properties()->contain().is_empty())
1416 return;
1417
1418 // UAs must apply the overflow-* values set on the root element to the viewport
1419 // when the root element’s display value is not none.
1420 auto overflow_origin_node = root_element.layout_node();
1421 auto& viewport_computed_values = viewport.mutable_computed_values();
1422
1423 // However, when the root element is an [HTML] html element (including XML syntax for HTML)
1424 // whose overflow value is visible (in both axes), and that element has as a child
1425 // a body element whose display value is also not none,
1426 // user agents must instead apply the overflow-* values of the first such child element to the viewport.
1427 if (root_element.is_html_html_element()) {
1428 auto root_element_layout_node = root_element.layout_node();
1429 auto& root_element_computed_values = root_element_layout_node->mutable_computed_values();
1430 if (root_element_computed_values.overflow_x() == CSS::Overflow::Visible && root_element_computed_values.overflow_y() == CSS::Overflow::Visible) {
1431 auto* body_element = root_element.first_child_of_type<HTML::HTMLBodyElement>();
1432 if (body_element && body_element->layout_node())
1433 overflow_origin_node = body_element->layout_node();
1434 }
1435 }
1436
1437 // If 'visible' is applied to the viewport, it must be interpreted as 'auto'. If 'clip' is applied to the viewport, it must be interpreted as 'hidden'.
1438 auto& overflow_origin_computed_values = overflow_origin_node->mutable_computed_values();
1439 auto overflow_x_to_apply = overflow_origin_computed_values.overflow_x();
…lines 1440–1458 unchanged (19 lines)
1459
1460void Document::update_layout(UpdateLayoutReason reason)
1461{
1462 auto navigable = this->navigable();
1463 if (!navigable || navigable->active_document() != this)
1464 return;
1465
1466 update_style();
1467
1468 auto svg_roots_to_relayout = move(m_svg_roots_needing_relayout);
1469
1470 if (m_layout_root && !m_layout_root->needs_layout_update() && svg_roots_to_relayout.is_empty())
1471 return;
1472
1473 // NOTE: If this is a document hosting <template> contents, layout is unnecessary.
1474 if (m_created_for_appropriate_template_contents)
1475 return;
1476
1477 auto const needs_layout_tree_rebuild = !m_layout_root || needs_layout_tree_update() || child_needs_layout_tree_update() || needs_full_layout_tree_update();
…lines 1478–1500 unchanged (23 lines)
1501
1502 auto timer = Core::ElapsedTimer::start_new(Core::TimerType::Precise);
1503
1504 if (needs_layout_tree_rebuild) {
1505 Layout::TreeBuilder tree_builder;
1506 m_layout_root = as<Layout::Viewport>(*tree_builder.build(*this));
1507
1508 if (document_element && document_element->layout_node()) {
1509 propagate_overflow_to_viewport(*document_element, *m_layout_root);
1510 propagate_scrollbar_width_to_viewport(*document_element, *m_layout_root);
1511 }
1512
1513 set_needs_full_layout_tree_update(false);
1514
1515 if constexpr (UPDATE_LAYOUT_DEBUG) {
1516 dbgln("TREEBUILD {} µs", timer.elapsed_time().to_microseconds());
1517 }
…lines 1518–1555 unchanged (38 lines)
1556 Layout::BlockFormattingContext root_formatting_context(layout_state, Layout::LayoutMode::Normal, *m_layout_root, nullptr);
1557
1558 auto& viewport = static_cast<Layout::Viewport&>(*m_layout_root);
1559 auto& viewport_state = layout_state.get_mutable(viewport);
1560 viewport_state.set_content_width(viewport_rect.width());
1561 viewport_state.set_content_height(viewport_rect.height());
1562
1563 if (document_element && document_element->layout_node()) {
1564 auto& icb_state = layout_state.get_mutable(as<Layout::NodeWithStyleAndBoxModelMetrics>(*document_element->layout_node()));
1565 icb_state.set_content_width(viewport_rect.width());
1566 }
1567
1568 root_formatting_context.run(
1569 Layout::AvailableSpace(
1570 Layout::AvailableSize::make_definite(viewport_rect.width()),
…lines 1571–1574 unchanged (4 lines)
1575
1576 // Broadcast the current viewport rect to any new paintables, so they know whether they're visible or not.
1577 inform_all_viewport_clients_about_the_current_viewport_rect();
1578
1579 m_document->set_needs_display();
1580 set_needs_to_resolve_paint_only_properties();
1581
1582 paintable()->assign_scroll_frames();
1583
1584 set_needs_accumulated_visual_contexts_update(true);
1585 update_paint_and_hit_testing_properties_if_needed();
1586
1587 if (auto range = get_selection()->range()) {
1588 paintable()->recompute_selection_states(*range);
1589 }
1590
1591 // Collect elements with content-visibility: auto. This is used in the HTML event loop to avoid traversing the whole tree every time.
1592 Vector<GC::Ref<Painting::PaintableBox>> paintable_boxes_with_auto_content_visibility;
1593 paintable()->for_each_in_subtree_of_type<Painting::PaintableBox>([&](auto& paintable_box) {
1594 if (paintable_box.dom_node()
1595 && paintable_box.dom_node()->is_element()
1596 && paintable_box.computed_values().content_visibility() == CSS::ContentVisibility::Auto) {
1597 paintable_boxes_with_auto_content_visibility.append(paintable_box);
1598 }
1599 return TraversalDecision::Continue;
1600 });
1601 paintable()->set_paintable_boxes_with_auto_content_visibility(move(paintable_boxes_with_auto_content_visibility));
1602
1603 m_layout_root->for_each_in_inclusive_subtree([](auto& node) {
1604 node.reset_needs_layout_update();
1605 return TraversalDecision::Continue;
1606 });
1607
1608 if constexpr (UPDATE_LAYOUT_DEBUG) {
1609 dbgln("LAYOUT {} {} µs", to_string(reason), timer.elapsed_time().to_microseconds());
1610 }
1611}
1612
1613[[nodiscard]] static CSS::RequiredInvalidationAfterStyleChange update_style_recursively(Node& node, CSS::StyleComputer& style_computer, bool needs_inherited_style_update, bool recompute_elements_depending_on_custom_properties, bool parent_display_changed)
1614{
1615 bool const needs_full_style_update = node.document().needs_full_style_update();
1616 CSS::RequiredInvalidationAfterStyleChange invalidation;
1617
1618 if (node.is_element())
…lines 1619–1645 unchanged (27 lines)
1646 assigned_node->set_needs_style_update(true);
1647 });
1648 }
1649 }
1650 }
1651 }
1652 if (node_invalidation.relayout && node.layout_node()) {
1653 node.layout_node()->set_needs_layout_update(SetNeedsLayoutReason::StyleChange);
1654 }
1655 if (node_invalidation.rebuild_layout_tree) {
1656 // We mark layout tree for rebuild starting from parent element to correctly invalidate
1657 // "display" property change to/from "contents" value.
1658 if (auto parent_element = node.parent_element()) {
1659 parent_element->set_needs_layout_tree_update(true, SetNeedsLayoutTreeUpdateReason::StyleChange);
1660 } else {
…lines 1661–1815 unchanged (155 lines)
1816
1817 m_needs_animated_style_update = false;
1818}
1819
1820void Document::update_paint_and_hit_testing_properties_if_needed()
1821{
1822 if (auto* paintable = this->paintable()) {
1823 paintable->refresh_scroll_state();
1824 }
1825
1826 if (m_needs_to_resolve_paint_only_properties) {
1827 m_needs_to_resolve_paint_only_properties = false;
1828 if (auto* paintable = this->paintable()) {
1829 paintable->resolve_paint_only_properties();
1830 }
1831 }
1832
1833 if (m_needs_accumulated_visual_contexts_update) {
1834 m_needs_accumulated_visual_contexts_update = false;
1835 if (auto* paintable = this->paintable()) {
1836 paintable->assign_accumulated_visual_contexts();
1837 }
1838 }
1839}
1840
1841void Document::set_normal_link_color(Color color)
1842{
1843 m_normal_link_color = color;
…lines 1844–1917 unchanged (74 lines)
1918 // 3. Let color be the result of parsing value.
1919 auto css_value = parse_css_value(context, value, CSS::PropertyID::Color);
1920
1921 // 4. If color is not failure, then return color.
1922 if (!css_value.is_null() && css_value->has_color()) {
1923 CSS::ColorResolutionContext color_resolution_context {};
1924 if (html_element() && html_element()->layout_node()) {
1925 color_resolution_context = CSS::ColorResolutionContext::for_layout_node_with_style(*html_element()->layout_node());
1926 }
1927
1928 theme_color = css_value->to_color(color_resolution_context).value();
1929 return TraversalDecision::Break;
1930 }
1931 }
…lines 1932–1942 unchanged (11 lines)
1943}
1944
1945Layout::Viewport* Document::layout_node()
1946{
1947 return static_cast<Layout::Viewport*>(Node::layout_node());
1948}
1949
1950void Document::set_inspected_node(GC::Ptr<Node> node)
1951{
1952 m_inspected_node = node;
1953}
1954
1955void Document::set_highlighted_node(GC::Ptr<Node> node, Optional<CSS::PseudoElement> pseudo_element)
…lines 1956–1967 unchanged (12 lines)
1968}
1969
1970GC::Ptr<Layout::Node> Document::highlighted_layout_node()
1971{
1972 if (!m_highlighted_node)
1973 return nullptr;
1974
1975 if (!m_highlighted_pseudo_element.has_value() || !m_highlighted_node->is_element())
1976 return m_highlighted_node->layout_node();
1977
1978 auto const& element = static_cast<Element const&>(*m_highlighted_node);
1979 return element.get_pseudo_element_node(m_highlighted_pseudo_element.value());
1980}
1981
1982static Node* find_common_ancestor(Node* a, Node* b)
…lines 1983–2747 unchanged (765 lines)
2748 auto* new_focused_element = as_if<Element>(node.ptr());
2749 if (new_focused_element)
2750 new_focused_element->did_receive_focus();
2751
2752 reset_cursor_blink_cycle();
2753
2754 if (paintable())
2755 paintable()->set_needs_display();
2756
2757 // Scroll the viewport if necessary to make the newly focused element visible.
2758 if (new_focused_element) {
2759 new_focused_element->queue_an_element_task(HTML::Task::Source::UserInteraction, [new_focused_element] {
2760 if (new_focused_element->document().focused_area().ptr() != new_focused_element)
2761 return;
…lines 2762–2797 unchanged (36 lines)
2798 } else {
2799 invalidate_style_for_elements_affected_by_pseudo_class_change(CSS::PseudoClass::Active, m_active_element, *common_ancestor, element);
2800 }
2801
2802 m_active_element = element;
2803
2804 if (paintable())
2805 paintable()->set_needs_display();
2806}
2807
2808void Document::set_target_element(GC::Ptr<Element> element)
2809{
2810 if (m_target_element.ptr() == element)
2811 return;
…lines 2812–2829 unchanged (18 lines)
2830 } else {
2831 invalidate_style_for_elements_affected_by_pseudo_class_change(CSS::PseudoClass::Target, m_target_element, *common_ancestor, element);
2832 }
2833
2834 m_target_element = element;
2835
2836 if (paintable())
2837 paintable()->set_needs_display();
2838}
2839
2840// https://html.spec.whatwg.org/multipage/browsing-the-web.html#the-indicated-part-of-the-document
2841Document::IndicatedPart Document::determine_the_indicated_part() const
2842{
2843 // For an HTML document document, the following processing model must be followed to determine its indicated part:
…lines 2844–4013 unchanged (1170 lines)
4014 },
4015 m_page_showing);
4016}
4017
4018void Document::invalidate_stacking_context_tree()
4019{
4020 if (auto* paintable_box = this->paintable_box())
4021 paintable_box->invalidate_stacking_context();
4022}
4023
4024void Document::check_favicon_after_loading_link_resource()
4025{
4026 // https://html.spec.whatwg.org/multipage/links.html#rel-icon
…lines 4027–5541 unchanged (1515 lines)
5542}
5543
5544Painting::ViewportPaintable* Document::paintable()
5545{
5546 return static_cast<Painting::ViewportPaintable*>(Node::paintable());
5547}
5548
5549// https://html.spec.whatwg.org/multipage/browsing-the-web.html#restore-the-history-object-state
5550void Document::restore_the_history_object_state(GC::Ref<HTML::SessionHistoryEntry> entry)
5551{
5552 // 1. Let targetRealm be document's relevant realm.
5553 auto& target_realm = HTML::relevant_realm(*this);
5554
…lines 5555–6622 unchanged (1068 lines)
6623// https://drafts.csswg.org/css-position-4/#process-top-layer-removals
6624void Document::process_top_layer_removals()
6625{
6626 // 1. For each element el in doc’s pending top layer removals: if el’s computed value of overlay is none, or el is
6627 // not rendered, remove el from doc’s top layer and pending top layer removals.
6628 GC::RootVector<GC::Ref<Element>> elements_to_remove(heap());
6629 for (auto& element : m_top_layer_pending_removals) {
6630 // FIXME: Implement overlay property
6631 if (!element->paintable()) {
6632 elements_to_remove.append(element);
6633 }
6634 }
6635
6636 for (auto& element : elements_to_remove) {
6637 m_top_layer_elements.remove(element);
6638 m_top_layer_pending_removals.remove(element);
6639 }
…lines 6640–6657 unchanged (18 lines)
6658 // 3. Return null.
6659 return {};
6660}
6661
6662void Document::set_needs_to_refresh_scroll_state(bool b)
6663{
6664 if (auto* paintable = this->paintable())
6665 paintable->set_needs_to_refresh_scroll_state(b);
6666}
6667
6668Vector<GC::Root<Range>> Document::find_matching_text(String const& query, CaseSensitivity case_sensitivity)
6669{
6670 // Ensure the layout tree exists before searching for text matches.
…lines 6671–7945 unchanged (1275 lines)

After

…lines 1–519 unchanged (519 lines)
520
521 auto navigable = this->navigable();
522 if (!navigable || !navigable->is_focused())
523 return;
524
525 auto node = cursor_position->node();
526 if (node->unsafe_paintable()) {
527 m_cursor_blink_state = !m_cursor_blink_state;
528 node->set_needs_display();
529 }
530 });
531
532 HTML::main_thread_event_loop().register_document({}, *this);
533}
534
…lines 535–1159 unchanged (625 lines)
1160 m_needs_full_layout_tree_update = true;
1161}
1162
1163Color Document::background_color() const
1164{
1165 // CSS2 says we should use the HTML element's background color unless it's transparent...
1166 // NB: Called during resolve_paint_properties() inside update_layout().
1167 if (auto* html_element = this->html_element(); html_element && html_element->unsafe_layout_node()) {
1168 auto color = html_element->unsafe_layout_node()->computed_values().background_color();
1169 if (color.alpha())
1170 return color;
1171 }
1172
1173 // ...in which case we use the BODY element's background color.
1174 if (auto* body_element = body(); body_element && body_element->unsafe_layout_node()) {
1175 auto color = body_element->unsafe_layout_node()->computed_values().background_color();
1176 return color;
1177 }
1178
1179 // By default, the document is transparent.
1180 // The outermost canvas is colored by the PageHost.
1181 return Color::Transparent;
1182}
1183
1184Vector<CSS::BackgroundLayerData> const* Document::background_layers() const
1185{
1186 auto* body_element = body();
1187 if (!body_element)
1188 return {};
1189
1190 // NB: Called during resolve_paint_properties() inside update_layout().
1191 auto body_layout_node = body_element->unsafe_layout_node();
1192 if (!body_layout_node)
1193 return {};
1194
1195 return &body_layout_node->background_layers();
1196}
1197
1198CSS::ImageRendering Document::background_image_rendering() const
1199{
1200 auto* body_element = body();
1201 if (!body_element)
1202 return CSS::ImageRendering::Auto;
1203
1204 // NB: Called during resolve_paint_properties() inside update_layout().
1205 auto body_layout_node = body_element->unsafe_layout_node();
1206 if (!body_layout_node)
1207 return CSS::ImageRendering::Auto;
1208
1209 return body_layout_node->computed_values().image_rendering();
1210}
1211
…lines 1212–1395 unchanged (184 lines)
1396
1397static void propagate_scrollbar_width_to_viewport(Element& root_element, Layout::Viewport& viewport)
1398{
1399 // https://drafts.csswg.org/css-scrollbars/#scrollbar-width
1400 // UAs must apply the scrollbar-color value set on the root element to the viewport.
1401 auto& viewport_computed_values = viewport.mutable_computed_values();
1402 // NB: Called during layout tree construction.
1403 auto& root_element_computed_values = root_element.unsafe_layout_node()->computed_values();
1404 viewport_computed_values.set_scrollbar_width(root_element_computed_values.scrollbar_width());
1405}
1406
1407// https://drafts.csswg.org/css-overflow-3/#overflow-propagation
1408static void propagate_overflow_to_viewport(Element& root_element, Layout::Viewport& viewport)
1409{
…lines 1410–1417 unchanged (8 lines)
1418 auto* body_element = root_element.first_child_of_type<HTML::HTMLBodyElement>();
1419 if (body_element && !body_element->computed_properties()->contain().is_empty())
1420 return;
1421
1422 // UAs must apply the overflow-* values set on the root element to the viewport
1423 // when the root element’s display value is not none.
1424 // NB: Called during layout tree construction.
1425 auto overflow_origin_node = root_element.unsafe_layout_node();
1426 auto& viewport_computed_values = viewport.mutable_computed_values();
1427
1428 // However, when the root element is an [HTML] html element (including XML syntax for HTML)
1429 // whose overflow value is visible (in both axes), and that element has as a child
1430 // a body element whose display value is also not none,
1431 // user agents must instead apply the overflow-* values of the first such child element to the viewport.
1432 if (root_element.is_html_html_element()) {
1433 auto root_element_layout_node = root_element.unsafe_layout_node();
1434 auto& root_element_computed_values = root_element_layout_node->mutable_computed_values();
1435 if (root_element_computed_values.overflow_x() == CSS::Overflow::Visible && root_element_computed_values.overflow_y() == CSS::Overflow::Visible) {
1436 auto* body_element = root_element.first_child_of_type<HTML::HTMLBodyElement>();
1437 if (body_element && body_element->unsafe_layout_node())
1438 overflow_origin_node = body_element->unsafe_layout_node();
1439 }
1440 }
1441
1442 // If 'visible' is applied to the viewport, it must be interpreted as 'auto'. If 'clip' is applied to the viewport, it must be interpreted as 'hidden'.
1443 auto& overflow_origin_computed_values = overflow_origin_node->mutable_computed_values();
1444 auto overflow_x_to_apply = overflow_origin_computed_values.overflow_x();
…lines 1445–1464 unchanged (20 lines)
1465void Document::update_layout(UpdateLayoutReason reason)
1466{
1467 auto navigable = this->navigable();
1468 if (!navigable || navigable->active_document() != this)
1469 return;
1470
1471 VERIFY(!m_is_running_update_layout);
1472 ScopeGuard guard = [&] { m_is_running_update_layout = false; };
1473 m_is_running_update_layout = true;
1474
1475 update_style();
1476
1477 if (layout_is_up_to_date())
1478 return;
1479
1480 auto svg_roots_to_relayout = move(m_svg_roots_needing_relayout);
1481
1482 // NOTE: If this is a document hosting <template> contents, layout is unnecessary.
1483 if (m_created_for_appropriate_template_contents)
1484 return;
…lines 1485–1510 unchanged (26 lines)
1511 auto timer = Core::ElapsedTimer::start_new(Core::TimerType::Precise);
1512
1513 if (needs_layout_tree_rebuild) {
1514 Layout::TreeBuilder tree_builder;
1515 m_layout_root = as<Layout::Viewport>(*tree_builder.build(*this));
1516
1517 // NB: Called during layout update.
1518 if (document_element && document_element->unsafe_layout_node()) {
1519 propagate_overflow_to_viewport(*document_element, *m_layout_root);
1520 propagate_scrollbar_width_to_viewport(*document_element, *m_layout_root);
1521 }
1522
1523 set_needs_full_layout_tree_update(false);
1524
1525 if constexpr (UPDATE_LAYOUT_DEBUG) {
1526 dbgln("TREEBUILD {} µs", timer.elapsed_time().to_microseconds());
1527 }
…lines 1528–1566 unchanged (39 lines)
1567
1568 auto& viewport = static_cast<Layout::Viewport&>(*m_layout_root);
1569 auto& viewport_state = layout_state.get_mutable(viewport);
1570 viewport_state.set_content_width(viewport_rect.width());
1571 viewport_state.set_content_height(viewport_rect.height());
1572
1573 // NB: Called during layout update.
1574 if (document_element && document_element->unsafe_layout_node()) {
1575 auto& icb_state = layout_state.get_mutable(as<Layout::NodeWithStyleAndBoxModelMetrics>(*document_element->unsafe_layout_node()));
1576 icb_state.set_content_width(viewport_rect.width());
1577 }
1578
1579 root_formatting_context.run(
1580 Layout::AvailableSpace(
1581 Layout::AvailableSize::make_definite(viewport_rect.width()),
…lines 1582–1585 unchanged (4 lines)
1586
1587 // Broadcast the current viewport rect to any new paintables, so they know whether they're visible or not.
1588 inform_all_viewport_clients_about_the_current_viewport_rect();
1589
1590 m_document->set_needs_display();
1591 set_needs_to_resolve_paint_only_properties();
1592
1593 // NB: Called during layout update.
1594 unsafe_paintable()->assign_scroll_frames();
1595
1596 set_needs_accumulated_visual_contexts_update(true);
1597 update_paint_and_hit_testing_properties_if_needed();
1598
1599 if (auto range = get_selection()->range()) {
1600 unsafe_paintable()->recompute_selection_states(*range);
1601 }
1602
1603 // Collect elements with content-visibility: auto. This is used in the HTML event loop to avoid traversing the whole tree every time.
1604 Vector<GC::Ref<Painting::PaintableBox>> paintable_boxes_with_auto_content_visibility;
1605 unsafe_paintable()->for_each_in_subtree_of_type<Painting::PaintableBox>([&](auto& paintable_box) {
1606 if (paintable_box.dom_node()
1607 && paintable_box.dom_node()->is_element()
1608 && paintable_box.computed_values().content_visibility() == CSS::ContentVisibility::Auto) {
1609 paintable_boxes_with_auto_content_visibility.append(paintable_box);
1610 }
1611 return TraversalDecision::Continue;
1612 });
1613 unsafe_paintable()->set_paintable_boxes_with_auto_content_visibility(move(paintable_boxes_with_auto_content_visibility));
1614
1615 m_layout_root->for_each_in_inclusive_subtree([](auto& node) {
1616 node.reset_needs_layout_update();
1617 return TraversalDecision::Continue;
1618 });
1619
1620 if constexpr (UPDATE_LAYOUT_DEBUG) {
1621 dbgln("LAYOUT {} {} µs", to_string(reason), timer.elapsed_time().to_microseconds());
1622 }
1623
1624 VERIFY(layout_is_up_to_date());
1625}
1626
1627bool Document::layout_is_up_to_date() const
1628{
1629 if (!navigable() || navigable()->active_document() != this)
1630 return true;
1631 if (!m_layout_root)
1632 return false;
1633 return !m_layout_root->needs_layout_update()
1634 && !needs_layout_tree_update()
1635 && !child_needs_layout_tree_update()
1636 && !needs_full_layout_tree_update()
1637 && m_svg_roots_needing_relayout.is_empty();
1638}
1639
1640[[nodiscard]] static CSS::RequiredInvalidationAfterStyleChange update_style_recursively(Node& node, CSS::StyleComputer& style_computer, bool needs_inherited_style_update, bool recompute_elements_depending_on_custom_properties, bool parent_display_changed)
1641{
1642 bool const needs_full_style_update = node.document().needs_full_style_update();
1643 CSS::RequiredInvalidationAfterStyleChange invalidation;
1644
…lines 1645–1672 unchanged (28 lines)
1673 assigned_node->set_needs_style_update(true);
1674 });
1675 }
1676 }
1677 }
1678 }
1679 if (node_invalidation.relayout)
1680 node.set_needs_layout_update(SetNeedsLayoutReason::StyleChange);
1681 if (node_invalidation.rebuild_layout_tree) {
1682 // We mark layout tree for rebuild starting from parent element to correctly invalidate
1683 // "display" property change to/from "contents" value.
1684 if (auto parent_element = node.parent_element()) {
1685 parent_element->set_needs_layout_tree_update(true, SetNeedsLayoutTreeUpdateReason::StyleChange);
1686 } else {
…lines 1687–1841 unchanged (155 lines)
1842
1843 m_needs_animated_style_update = false;
1844}
1845
1846void Document::update_paint_and_hit_testing_properties_if_needed()
1847{
1848 // NB: Called during paint property resolution.
1849 if (auto* paintable = this->unsafe_paintable()) {
1850 paintable->refresh_scroll_state();
1851 }
1852
1853 if (m_needs_to_resolve_paint_only_properties) {
1854 m_needs_to_resolve_paint_only_properties = false;
1855 if (auto* paintable = this->unsafe_paintable()) {
1856 paintable->resolve_paint_only_properties();
1857 }
1858 }
1859
1860 if (m_needs_accumulated_visual_contexts_update) {
1861 m_needs_accumulated_visual_contexts_update = false;
1862 if (auto* paintable = this->unsafe_paintable()) {
1863 paintable->assign_accumulated_visual_contexts();
1864 }
1865 }
1866}
1867
1868void Document::set_normal_link_color(Color color)
1869{
1870 m_normal_link_color = color;
…lines 1871–1944 unchanged (74 lines)
1945 // 3. Let color be the result of parsing value.
1946 auto css_value = parse_css_value(context, value, CSS::PropertyID::Color);
1947
1948 // 4. If color is not failure, then return color.
1949 if (!css_value.is_null() && css_value->has_color()) {
1950 CSS::ColorResolutionContext color_resolution_context {};
1951 // NB: Called during theme color computation, layout may be stale.
1952 if (html_element() && html_element()->unsafe_layout_node()) {
1953 color_resolution_context = CSS::ColorResolutionContext::for_layout_node_with_style(*html_element()->unsafe_layout_node());
1954 }
1955
1956 theme_color = css_value->to_color(color_resolution_context).value();
1957 return TraversalDecision::Break;
1958 }
1959 }
…lines 1960–1971 unchanged (12 lines)
1972
1973Layout::Viewport* Document::layout_node()
1974{
1975 return static_cast<Layout::Viewport*>(Node::layout_node());
1976}
1977
1978Layout::Viewport const* Document::unsafe_layout_node() const
1979{
1980 return static_cast<Layout::Viewport const*>(Node::unsafe_layout_node());
1981}
1982
1983Layout::Viewport* Document::unsafe_layout_node()
1984{
1985 return static_cast<Layout::Viewport*>(Node::unsafe_layout_node());
1986}
1987
1988void Document::set_inspected_node(GC::Ptr<Node> node)
1989{
1990 m_inspected_node = node;
1991}
1992
…lines 1993–2006 unchanged (14 lines)
2007
2008GC::Ptr<Layout::Node> Document::highlighted_layout_node()
2009{
2010 if (!m_highlighted_node)
2011 return nullptr;
2012
2013 // NB: Called during resolve_paint_properties() inside update_layout().
2014 if (!m_highlighted_pseudo_element.has_value() || !m_highlighted_node->is_element())
2015 return m_highlighted_node->unsafe_layout_node();
2016
2017 auto const& element = static_cast<Element const&>(*m_highlighted_node);
2018 return element.get_pseudo_element_node(m_highlighted_pseudo_element.value());
2019}
2020
2021static Node* find_common_ancestor(Node* a, Node* b)
…lines 2022–2785 unchanged (764 lines)
2786
2787 auto* new_focused_element = as_if<Element>(node.ptr());
2788 if (new_focused_element)
2789 new_focused_element->did_receive_focus();
2790
2791 reset_cursor_blink_cycle();
2792
2793 set_needs_display();
2794
2795 // Scroll the viewport if necessary to make the newly focused element visible.
2796 if (new_focused_element) {
2797 new_focused_element->queue_an_element_task(HTML::Task::Source::UserInteraction, [new_focused_element] {
2798 if (new_focused_element->document().focused_area().ptr() != new_focused_element)
2799 return;
…lines 2800–2834 unchanged (35 lines)
2835 }
2836 } else {
2837 invalidate_style_for_elements_affected_by_pseudo_class_change(CSS::PseudoClass::Active, m_active_element, *common_ancestor, element);
2838 }
2839
2840 m_active_element = element;
2841
2842 set_needs_display();
2843}
2844
2845void Document::set_target_element(GC::Ptr<Element> element)
2846{
2847 if (m_target_element.ptr() == element)
2848 return;
…lines 2849–2865 unchanged (17 lines)
2866 }
2867 } else {
2868 invalidate_style_for_elements_affected_by_pseudo_class_change(CSS::PseudoClass::Target, m_target_element, *common_ancestor, element);
2869 }
2870
2871 m_target_element = element;
2872
2873 set_needs_display();
2874}
2875
2876// https://html.spec.whatwg.org/multipage/browsing-the-web.html#the-indicated-part-of-the-document
2877Document::IndicatedPart Document::determine_the_indicated_part() const
2878{
2879 // For an HTML document document, the following processing model must be followed to determine its indicated part:
…lines 2880–4049 unchanged (1170 lines)
4050 },
4051 m_page_showing);
4052}
4053
4054void Document::invalidate_stacking_context_tree()
4055{
4056 // NB: Called during stacking context invalidation.
4057 if (auto* paintable_box = this->unsafe_paintable_box())
4058 paintable_box->invalidate_stacking_context();
4059}
4060
4061void Document::check_favicon_after_loading_link_resource()
4062{
4063 // https://html.spec.whatwg.org/multipage/links.html#rel-icon
…lines 4064–5579 unchanged (1516 lines)
5580
5581Painting::ViewportPaintable* Document::paintable()
5582{
5583 return static_cast<Painting::ViewportPaintable*>(Node::paintable());
5584}
5585
5586Painting::ViewportPaintable const* Document::unsafe_paintable() const
5587{
5588 return static_cast<Painting::ViewportPaintable const*>(Node::unsafe_paintable());
5589}
5590
5591Painting::ViewportPaintable* Document::unsafe_paintable()
5592{
5593 return static_cast<Painting::ViewportPaintable*>(Node::unsafe_paintable());
5594}
5595
5596// https://html.spec.whatwg.org/multipage/browsing-the-web.html#restore-the-history-object-state
5597void Document::restore_the_history_object_state(GC::Ref<HTML::SessionHistoryEntry> entry)
5598{
5599 // 1. Let targetRealm be document's relevant realm.
5600 auto& target_realm = HTML::relevant_realm(*this);
…lines 5601–6669 unchanged (1069 lines)
6670// https://drafts.csswg.org/css-position-4/#process-top-layer-removals
6671void Document::process_top_layer_removals()
6672{
6673 // 1. For each element el in doc’s pending top layer removals: if el’s computed value of overlay is none, or el is
6674 // not rendered, remove el from doc’s top layer and pending top layer removals.
6675 GC::RootVector<GC::Ref<Element>> elements_to_remove(heap());
6676 // NB: Called during top layer processing.
6677 for (auto& element : m_top_layer_pending_removals) {
6678 // FIXME: Implement overlay property
6679 if (!element->unsafe_paintable()) {
6680 elements_to_remove.append(element);
6681 }
6682 }
6683
6684 for (auto& element : elements_to_remove) {
6685 m_top_layer_elements.remove(element);
6686 m_top_layer_pending_removals.remove(element);
6687 }
…lines 6688–6705 unchanged (18 lines)
6706 // 3. Return null.
6707 return {};
6708}
6709
6710void Document::set_needs_to_refresh_scroll_state(bool b)
6711{
6712 // NB: Propagating scroll state invalidation.
6713 if (auto* paintable = this->unsafe_paintable())
6714 paintable->set_needs_to_refresh_scroll_state(b);
6715}
6716
6717Vector<GC::Root<Range>> Document::find_matching_text(String const& query, CaseSensitivity case_sensitivity)
6718{
6719 // Ensure the layout tree exists before searching for text matches.
…lines 6720–7994 unchanged (1275 lines)

Before

translation_unit
comment "/*\n * Copyright (c) 2018-2025, Andreas Kling <andreas@ladybi"...
preproc_include
#include "#include"
system_lib_string "<AK/Bitmap.h>"
preproc_include
#include "#include"
system_lib_string "<AK/CharacterTypes.h>"
preproc_include
#include "#include"
system_lib_string "<AK/Debug.h>"
preproc_include
#include "#include"
system_lib_string "<AK/GenericLexer.h>"
preproc_include
#include "#include"
system_lib_string "<AK/InsertionSort.h>"
preproc_include
#include "#include"
system_lib_string "<AK/JsonObjectSerializer.h>"
preproc_include
#include "#include"
system_lib_string "<AK/Random.h>"
preproc_include
#include "#include"
system_lib_string "<AK/StringBuilder.h>"
preproc_include
#include "#include"
system_lib_string "<AK/TemporaryChange.h>"
preproc_include
#include "#include"
system_lib_string "<AK/Time.h>"
preproc_include
#include "#include"
system_lib_string "<AK/Utf8View.h>"
preproc_include
#include "#include"
system_lib_string "<LibCore/Timer.h>"
preproc_include
#include "#include"
system_lib_string "<LibGC/RootVector.h>"
preproc_include
#include "#include"
system_lib_string "<LibHTTP/Cookie/Cookie.h>"
preproc_include
#include "#include"
system_lib_string "<LibHTTP/Cookie/ParsedCookie.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Console.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Array.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/FunctionObject.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/NativeFunction.h>"
preproc_include
#include "#include"
system_lib_string "<LibTextCodec/Decoder.h>"
preproc_include
#include "#include"
system_lib_string "<LibURL/Origin.h>"
preproc_include
#include "#include"
system_lib_string "<LibURL/Parser.h>"
preproc_include
#include "#include"
system_lib_string "<LibUnicode/Segmenter.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Animations/Animation.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Animations/AnimationPlaybackEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Animations/AnimationTimeline.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Animations/DocumentTimeline.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Animations/TimeValue.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Bindings/DocumentPrototype.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Bindings/MainThreadVM.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Bindings/PrincipalHostDefined.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/AnimationEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSAnimation.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSCounterStyleRule.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSImportRule.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSPropertyRule.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSStyleSheet.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSTransition.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/ComputedProperties.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CounterStyle.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CounterStyleDefinition.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/FontComputer.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/FontFaceSet.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/MediaQueryList.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/MediaQueryListEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/Parser/Parser.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/SelectorEngine.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleComputer.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleInvalidation.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleSheetIdentifier.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleSheetList.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleValues/ColorSchemeStyleValue.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleValues/GuaranteedInvalidStyleValue.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleValues/RandomValueSharingStyleValue.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/SystemColor.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/TransitionEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/VisualViewport.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ContentSecurityPolicy/Directives/Directive.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ContentSecurityPolicy/Policy.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ContentSecurityPolicy/PolicyList.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/AbstractElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/AccessibilityTreeNode.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/AdoptedStyleSheets.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Attr.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/CDATASection.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Comment.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/CustomEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/DOMImplementation.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Document.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/DocumentFragment.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/DocumentObserver.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/DocumentOrShadowRoot.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/DocumentType.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/EditingHostManager.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Element.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/ElementByIdMap.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/ElementFactory.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Event.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/HTMLCollection.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/InputEventsTarget.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/LiveNodeList.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/NodeIterator.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Position.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/ProcessingInstruction.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Range.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/ShadowRoot.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/StyleInvalidator.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Text.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/TreeWalker.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Utils.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOMURL/DOMURL.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Dump.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Fetch/Infrastructure/HTTP/Responses.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/FileAPI/BlobURLStore.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/AttributeNames.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/BeforeUnloadEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/BrowsingContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/BrowsingContextGroup.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/CustomElements/CustomElementDefinition.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/CustomElements/CustomElementReactionNames.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/CustomElements/CustomElementRegistry.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/DocumentState.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/DragEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/EventLoop/EventLoop.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/EventNames.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Focus.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLAllCollection.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLAnchorElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLAreaElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLBaseElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLBodyElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLDialogElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLDocument.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLEmbedElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLFormElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLFrameSetElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLHeadElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLHtmlElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLIFrameElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLImageElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLInputElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLLinkElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLMetaElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLObjectElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLScriptElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLSlotElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLStyleElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLTextAreaElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLTitleElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HashChangeEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/History.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/ListOfAvailableImages.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Location.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/MessageEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/MessagePort.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Navigable.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/NavigableContainer.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Navigation.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/NavigationParams.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Numbers.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Parser/HTMLParser.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/PolicyContainers.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/PopStateEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/Agent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/ClassicScript.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/Environments.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/ExceptionReporter.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/TemporaryExecutionContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/SharedResourceRequest.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Storage.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/StorageEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/StructuredSerialize.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/TraversableNavigable.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Window.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/WindowProxy.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HighResolutionTime/Performance.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HighResolutionTime/TimeOrigin.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Infra/CharacterTypes.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Infra/Strings.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/IntersectionObserver/IntersectionObserver.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Layout/BlockFormattingContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Layout/SVGFormattingContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Layout/SVGSVGBox.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Layout/TreeBuilder.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Layout/Viewport.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Namespace.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Page/EventHandler.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Page/Page.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/AccumulatedVisualContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/DisplayList.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/DisplayListCommand.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/PaintableBox.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/StackingContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/ViewportPaintable.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/PermissionsPolicy/AutoplayAllowlist.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Platform/EventLoopPlugin.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ResizeObserver/ResizeObserver.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ResizeObserver/ResizeObserverEntry.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/SVG/SVGDecodedImageData.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/SVG/SVGElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/SVG/SVGSVGElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/SVG/SVGStyleElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/SVG/SVGTitleElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Selection/Selection.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/TrustedTypes/RequireTrustedTypesForDirective.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/TrustedTypes/TrustedTypePolicy.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/CompositionEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/EventNames.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/FocusEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/KeyboardEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/MouseEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/PointerEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/PointerTypes.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/TextEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ViewTransition/ViewTransition.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/WebIDL/AbstractOperations.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/WebIDL/DOMException.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/WebIDL/ExceptionOr.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/WebIDL/ObservableArray.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/XPath/XPath.h>"
namespace_definition
namespace "namespace"
nested_namespace_specifier
namespace_identifier "Web"
:: "::"
namespace_identifier "DOM"
declaration_list
{ "{"
expression_statement
call_expression
identifier "GC_DEFINE_ALLOCATOR"
argument_list
( "("
identifier "Document"
) ")"
; ";"
comment "// https://html.spec.whatwg.org/multipage/origin.html#obtain"...
function_definition (+341 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+1222 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-document"
function_definition (+97 nodes collapsed)
function_definition (+61 nodes collapsed)
function_definition (+62 nodes collapsed)
function_definition
function_declarator (+31 nodes collapsed)
field_initializer_list (+218 nodes collapsed)
compound_statement
{ "{"
expression_statement (+27 nodes collapsed)
expression_statement
assignment_expression
identifier "m_cursor_blink_timer"
= "="
call_expression
qualified_identifier
namespace_identifier "Core"
:: "::"
qualified_identifier
namespace_identifier "Timer"
:: "::"
identifier "create_repeating"
argument_list
( "("
number_literal "500"
, ","
lambda_expression
lambda_capture_specifier
[ "["
this "this"
] "]"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "cursor_position"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "cursor_position"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "cursor_position"
) ")"
return_statement
return "return"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "navigable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "navigable"
argument_list
( "("
) ")"
; ";"
if_statement (+23 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "node"
= "="
call_expression
field_expression
identifier "cursor_position"
-> "->"
field_identifier "node"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
call_expression
field_expression
identifier "node"
-> "->"
field_identifier "paintable"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "m_cursor_blink_state"
= "="
unary_expression
! "!"
identifier "m_cursor_blink_state"
; ";"
expression_statement
call_expression any 2:1
field_expression any 2:1
call_expression any 2:1
field_expression any 2:1
identifier "node"
-> "->" any 2:1
field_identifier "paintable"
argument_list
( "("
) ")"
-> "->" any 2:1
field_identifier "set_needs_display"
argument_list
( "("
) ")"
; ";"
} "}"
} "}"
) ")"
; ";"
expression_statement (+24 nodes collapsed)
} "}"
function_definition
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
destructor_name
~ "~"
identifier "Document"
parameter_list
( "("
) ")"
default_method_clause
= "="
default "default"
; ";"
function_definition (+47 nodes collapsed)
function_definition (+139 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+187 nodes collapsed)
function_definition (+962 nodes collapsed)
comment "// https://w3c.github.io/selection-api/#dom-document-getsele"...
function_definition (+51 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+61 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+61 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+583 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+550 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+105 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+172 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/nav-history-apis.h"...
function_definition (+60 nodes collapsed)
function_definition (+53 nodes collapsed)
function_definition (+26 nodes collapsed)
function_definition (+29 nodes collapsed)
function_definition (+120 nodes collapsed)
function_definition (+29 nodes collapsed)
function_definition (+33 nodes collapsed)
comment "// https://www.w3.org/TR/SVG2/struct.html#InterfaceDocumentE"...
function_definition (+47 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#the-html-"...
function_definition (+51 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#the-head-"...
function_definition (+67 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#the-title"...
function_definition (+99 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+52 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+49 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#the-body-"...
function_definition (+150 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+240 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#document."...
function_definition (+178 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#document."...
function_definition (+405 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition
type_identifier "Color"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "background_color"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
comment "// CSS2 says we should use the HTML element's background col"...
if_statement
if "if"
condition_clause
( "("
init_statement
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "html_element"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "html_element"
argument_list
( "("
) ")"
; ";"
binary_expression
identifier "html_element"
&& "&&"
call_expression
field_expression
identifier "html_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "color"
= "="
call_expression
field_expression
call_expression
field_expression
call_expression
field_expression
identifier "html_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
-> "->"
field_identifier "computed_values"
argument_list
( "("
) ")"
. "."
field_identifier "background_color"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
call_expression
field_expression
identifier "color"
. "."
field_identifier "alpha"
argument_list
( "("
) ")"
) ")"
return_statement
return "return"
identifier "color"
; ";"
} "}"
comment "// ...in which case we use the BODY element's background col"...
if_statement
if "if"
condition_clause
( "("
init_statement
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "body_element"
= "="
call_expression
identifier "body"
argument_list
( "("
) ")"
; ";"
binary_expression
identifier "body_element"
&& "&&"
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "color"
= "="
call_expression
field_expression
call_expression
field_expression
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
-> "->"
field_identifier "computed_values"
argument_list
( "("
) ")"
. "."
field_identifier "background_color"
argument_list
( "("
) ")"
; ";"
return_statement
return "return"
identifier "color"
; ";"
} "}"
comment "// By default, the document is transparent."
comment "// The outermost canvas is colored by the PageHost."
return_statement
return "return"
qualified_identifier
namespace_identifier "Color"
:: "::"
identifier "Transparent"
; ";"
} "}"
function_definition
template_type
type_identifier "Vector"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "BackgroundLayerData"
> ">"
type_qualifier
const "const"
pointer_declarator
* "*"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "background_layers"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "body_element"
= "="
call_expression
identifier "body"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "body_element"
) ")"
return_statement
return "return"
initializer_list
{ "{"
} "}"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "body_layout_node"
= "="
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "body_layout_node"
) ")"
return_statement
return "return"
initializer_list
{ "{"
} "}"
; ";"
return_statement
return "return"
pointer_expression
& "&"
call_expression
field_expression
identifier "body_layout_node"
-> "->"
field_identifier "background_layers"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "ImageRendering"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "background_image_rendering"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "body_element"
= "="
call_expression
identifier "body"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "body_element"
) ")"
return_statement
return "return"
qualified_identifier
namespace_identifier "CSS"
:: "::"
qualified_identifier
namespace_identifier "ImageRendering"
:: "::"
identifier "Auto"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "body_layout_node"
= "="
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "body_layout_node"
) ")"
return_statement
return "return"
qualified_identifier
namespace_identifier "CSS"
:: "::"
qualified_identifier
namespace_identifier "ImageRendering"
:: "::"
identifier "Auto"
; ";"
return_statement
return "return"
call_expression
field_expression
call_expression
field_expression
identifier "body_layout_node"
-> "->"
field_identifier "computed_values"
argument_list
( "("
) ")"
. "."
field_identifier "image_rendering"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition (+221 nodes collapsed)
function_definition (+31 nodes collapsed)
function_definition (+31 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+34 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+62 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+105 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+59 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+76 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+72 nodes collapsed)
function_definition (+49 nodes collapsed)
function_definition (+32 nodes collapsed)
function_definition (+443 nodes collapsed)
function_definition
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "propagate_scrollbar_width_to_viewport"
parameter_list
( "("
parameter_declaration
type_identifier "Element"
reference_declarator
& "&"
identifier "root_element"
, ","
parameter_declaration
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "Viewport"
reference_declarator
& "&"
identifier "viewport"
) ")"
compound_statement
{ "{"
comment "// https://drafts.csswg.org/css-scrollbars/#scrollbar-width"
comment "// UAs must apply the scrollbar-color value set on the root "...
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "viewport_computed_values"
= "="
call_expression
field_expression
identifier "viewport"
. "."
field_identifier "mutable_computed_values"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "root_element_computed_values"
= "="
call_expression
field_expression
call_expression
field_expression
identifier "root_element"
. "."
field_identifier "layout_node"
argument_list
( "("
) ")"
-> "->"
field_identifier "computed_values"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "viewport_computed_values"
. "."
field_identifier "set_scrollbar_width"
argument_list
( "("
call_expression
field_expression
identifier "root_element_computed_values"
. "."
field_identifier "scrollbar_width"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
comment "// https://drafts.csswg.org/css-overflow-3/#overflow-propaga"...
function_definition
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "propagate_overflow_to_viewport"
parameter_list
( "("
parameter_declaration
type_identifier "Element"
reference_declarator
& "&"
identifier "root_element"
, ","
parameter_declaration
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "Viewport"
reference_declarator
& "&"
identifier "viewport"
) ")"
compound_statement
{ "{"
comment "// https://drafts.csswg.org/css-contain-2/#contain-property"
comment "// Additionally, when any containments are active on either "...
comment "// properties from the <body> element to the initial contain"...
comment "// disabled. Notably, this affects:"
comment "// - 'overflow' and its longhands (see CSS Overflow 3 §\u{202f}3.3 "...
if_statement (+42 nodes collapsed)
declaration (+26 nodes collapsed)
if_statement (+35 nodes collapsed)
comment "// UAs must apply the overflow-* values set on the root elem"...
comment "// when the root element’s display value is not none."
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "overflow_origin_node"
= "="
call_expression
field_expression
identifier "root_element"
. "."
field_identifier "layout_node"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "viewport_computed_values"
= "="
call_expression
field_expression
identifier "viewport"
. "."
field_identifier "mutable_computed_values"
argument_list
( "("
) ")"
; ";"
comment "// However, when the root element is an [HTML] html element "...
comment "// whose overflow value is visible (in both axes), and that "...
comment "// a body element whose display value is also not none,"
comment "// user agents must instead apply the overflow-* values of t"...
if_statement
if "if"
condition_clause
( "("
call_expression
field_expression
identifier "root_element"
. "."
field_identifier "is_html_html_element"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "root_element_layout_node"
= "="
call_expression
field_expression
identifier "root_element"
. "."
field_identifier "layout_node"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "root_element_computed_values"
= "="
call_expression
field_expression
identifier "root_element_layout_node"
-> "->"
field_identifier "mutable_computed_values"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause (+39 nodes collapsed)
compound_statement
{ "{"
declaration (+26 nodes collapsed)
if_statement
if "if"
condition_clause
( "("
binary_expression
identifier "body_element"
&& "&&"
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
) ")"
expression_statement
assignment_expression
identifier "overflow_origin_node"
= "="
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
; ";"
} "}"
} "}"
comment "// If 'visible' is applied to the viewport, it must be inter"...
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "overflow_origin_computed_values"
= "="
call_expression
field_expression
identifier "overflow_origin_node"
-> "->"
field_identifier "mutable_computed_values"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "overflow_x_to_apply"
= "="
call_expression
field_expression
identifier "overflow_origin_computed_values"
. "."
field_identifier "overflow_x"
argument_list
( "("
) ")"
; ";"
if_statement (+62 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "overflow_y_to_apply"
= "="
call_expression
field_expression
identifier "overflow_origin_computed_values"
. "."
field_identifier "overflow_y"
argument_list
( "("
) ")"
; ";"
if_statement (+62 nodes collapsed)
expression_statement
call_expression
field_expression
identifier "viewport_computed_values"
. "."
field_identifier "set_overflow_x"
argument_list
( "("
identifier "overflow_x_to_apply"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "viewport_computed_values"
. "."
field_identifier "set_overflow_y"
argument_list
( "("
identifier "overflow_y_to_apply"
) ")"
; ";"
comment "// The element from which the value is propagated must then "...
comment "// FIXME: Apply this to the used values, not the computed on"...
expression_statement
call_expression
field_expression
identifier "overflow_origin_computed_values"
. "."
field_identifier "set_overflow_x"
argument_list
( "("
qualified_identifier
namespace_identifier "CSS"
:: "::"
qualified_identifier
namespace_identifier "Overflow"
:: "::"
identifier "Visible"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "overflow_origin_computed_values"
. "."
field_identifier "set_overflow_y"
argument_list
( "("
qualified_identifier
namespace_identifier "CSS"
:: "::"
qualified_identifier
namespace_identifier "Overflow"
:: "::"
identifier "Visible"
) ")"
; ";"
} "}"
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "update_layout"
parameter_list
( "("
parameter_declaration
type_identifier "UpdateLayoutReason"
identifier "reason"
) ")"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "navigable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "navigable"
argument_list
( "("
) ")"
; ";"
if_statement (+24 nodes collapsed)
expression_statement
call_expression
identifier "update_style"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "svg_roots_to_relayout"
= "="
call_expression
identifier "move"
argument_list
( "("
identifier "m_svg_roots_needing_relayout"
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
binary_expression
binary_expression
identifier "m_layout_root"
&& "&&"
unary_expression
! "!"
call_expression
field_expression
identifier "m_layout_root"
-> "->"
field_identifier "needs_layout_update"
argument_list
( "("
) ")"
&& "&&"
call_expression
field_expression
identifier "svg_roots_to_relayout"
. "."
field_identifier "is_empty"
argument_list
( "("
) ")"
) ")"
return_statement
return "return"
; ";"
comment "// NOTE: If this is a document hosting <template> contents, "...
if_statement
if "if"
condition_clause
( "("
identifier "m_created_for_appropriate_template_contents"
) ")"
return_statement
return "return"
; ";"
declaration (+33 nodes collapsed)
comment "// Partial SVG relayout"
if_statement (+107 nodes collapsed)
comment "// Clear text blocks cache so we rebuild them on the next fi"...
if_statement
if "if"
condition_clause
( "("
identifier "m_layout_root"
) ")"
expression_statement
call_expression
field_expression
identifier "m_layout_root"
-> "->"
field_identifier "invalidate_text_blocks_cache"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "invalidate_display_list"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "document_element"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "document_element"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "viewport_rect"
= "="
call_expression
field_expression
identifier "navigable"
-> "->"
field_identifier "viewport_rect"
argument_list
( "("
) ")"
; ";"
declaration (+25 nodes collapsed)
if_statement
if "if"
condition_clause
( "("
identifier "needs_layout_tree_rebuild"
) ")"
compound_statement
{ "{"
declaration
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "TreeBuilder"
identifier "tree_builder"
; ";"
expression_statement (+32 nodes collapsed)
if_statement
if "if"
condition_clause
( "("
binary_expression
identifier "document_element"
&& "&&"
call_expression
field_expression
identifier "document_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement (+31 nodes collapsed)
expression_statement
call_expression
identifier "set_needs_full_layout_tree_update"
argument_list
( "("
false "false"
) ")"
; ";"
if_statement (+37 nodes collapsed)
} "}"
declaration
type_identifier "u32"
init_declarator
identifier "layout_index_counter"
= "="
number_literal "0"
; ";"
expression_statement (+273 nodes collapsed)
declaration
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "LayoutState"
identifier "layout_state"
; ";"
expression_statement
call_expression
field_expression
identifier "layout_state"
. "."
field_identifier "ensure_capacity"
argument_list
( "("
identifier "layout_index_counter"
) ")"
; ";"
compound_statement
{ "{"
declaration (+27 nodes collapsed)
declaration (+28 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "viewport_state"
= "="
call_expression
field_expression
identifier "layout_state"
. "."
field_identifier "get_mutable"
argument_list
( "("
identifier "viewport"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "viewport_state"
. "."
field_identifier "set_content_width"
argument_list
( "("
call_expression
field_expression
identifier "viewport_rect"
. "."
field_identifier "width"
argument_list
( "("
) ")"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "viewport_state"
. "."
field_identifier "set_content_height"
argument_list
( "("
call_expression
field_expression
identifier "viewport_rect"
. "."
field_identifier "height"
argument_list
( "("
) ")"
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
binary_expression
identifier "document_element"
&& "&&"
call_expression
field_expression
identifier "document_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "icb_state"
= "="
call_expression
field_expression
identifier "layout_state"
. "."
field_identifier "get_mutable"
argument_list
( "("
call_expression
template_function
identifier "as"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "NodeWithStyleAndBoxModelMetrics"
> ">"
argument_list
( "("
pointer_expression
* "*"
call_expression
field_expression
identifier "document_element"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
) ")"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "icb_state"
. "."
field_identifier "set_content_width"
argument_list
( "("
call_expression
field_expression
identifier "viewport_rect"
. "."
field_identifier "width"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
expression_statement (+57 nodes collapsed)
} "}"
expression_statement
call_expression
field_expression
identifier "layout_state"
. "."
field_identifier "commit"
argument_list
( "("
pointer_expression
* "*"
identifier "m_layout_root"
) ")"
; ";"
comment "// Broadcast the current viewport rect to any new paintables"...
expression_statement
call_expression
identifier "inform_all_viewport_clients_about_the_current_viewport_rect"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "m_document"
-> "->"
field_identifier "set_needs_display"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "set_needs_to_resolve_paint_only_properties"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
field_expression
call_expression
identifier "paintable"
argument_list
( "("
) ")"
-> "->"
field_identifier "assign_scroll_frames"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "set_needs_accumulated_visual_contexts_update"
argument_list
( "("
true "true"
) ")"
; ";"
expression_statement
call_expression
identifier "update_paint_and_hit_testing_properties_if_needed"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
identifier "range"
= "="
call_expression
field_expression
call_expression
identifier "get_selection"
argument_list
( "("
) ")"
-> "->"
field_identifier "range"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
call_expression
identifier "paintable"
argument_list
( "("
) ")"
-> "->"
field_identifier "recompute_selection_states"
argument_list
( "("
pointer_expression
* "*"
identifier "range"
) ")"
; ";"
} "}"
comment "// Collect elements with content-visibility: auto. This is u"...
declaration (+22 nodes collapsed)
expression_statement
call_expression
field_expression
call_expression
identifier "paintable"
argument_list
( "("
) ")"
-> "->"
template_method
field_identifier "for_each_in_subtree_of_type"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "Painting"
:: "::"
type_identifier "PaintableBox"
> ">"
argument_list (+99 nodes collapsed)
; ";"
expression_statement
call_expression
field_expression
call_expression
identifier "paintable"
argument_list
( "("
) ")"
-> "->"
field_identifier "set_paintable_boxes_with_auto_content_visibility"
argument_list
( "("
call_expression
identifier "move"
argument_list
( "("
identifier "paintable_boxes_with_auto_content_visibility"
) ")"
) ")"
; ";"
expression_statement (+44 nodes collapsed)
if_statement (+44 nodes collapsed)
} "}"
function_definition
attribute_declaration
[[ "[["
attribute
identifier "nodiscard"
]] "]]"
storage_class_specifier
static "static"
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "RequiredInvalidationAfterStyleChange"
function_declarator (+31 nodes collapsed)
compound_statement
{ "{"
declaration (+23 nodes collapsed)
declaration
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "RequiredInvalidationAfterStyleChange"
identifier "invalidation"
; ";"
if_statement (+39 nodes collapsed)
comment "// NOTE: If the current node has `display:none`, we can disr"...
comment "// caused by its children, as they will not be rendere"...
comment "// We will still recompute style for the children, tho"...
declaration
primitive_type "bool"
init_declarator
identifier "is_display_none"
= "="
false "false"
; ";"
declaration
primitive_type "bool"
init_declarator
identifier "did_change_custom_properties"
= "="
false "false"
; ";"
declaration
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "RequiredInvalidationAfterStyleChange"
identifier "node_invalidation"
; ";"
if_statement (+275 nodes collapsed)
if_statement
if "if"
condition_clause
( "("
binary_expression
field_expression
identifier "node_invalidation"
. "."
field_identifier "relayout"
&& "&&"
call_expression
field_expression
identifier "node"
. "."
field_identifier "layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
call_expression
field_expression
identifier "node"
. "."
field_identifier "layout_node"
argument_list
( "("
) ")"
-> "->"
field_identifier "set_needs_layout_update"
argument_list
( "("
qualified_identifier
namespace_identifier "SetNeedsLayoutReason"
:: "::"
identifier "StyleChange"
) ")"
; ";"
} "}"
if_statement (+72 nodes collapsed)
expression_statement
call_expression
field_expression
identifier "node"
. "."
field_identifier "set_needs_style_update"
argument_list
( "("
false "false"
) ")"
; ";"
expression_statement
assignment_expression
identifier "invalidation"
|= "|="
identifier "node_invalidation"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "did_change_custom_properties"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "recompute_elements_depending_on_custom_properties"
= "="
true "true"
; ";"
} "}"
declaration
primitive_type "bool"
init_declarator
identifier "children_need_inherited_style_update"
= "="
unary_expression
! "!"
call_expression
field_expression
identifier "invalidation"
. "."
field_identifier "is_none"
argument_list
( "("
) ")"
; ";"
comment "// NB: When display changes to/from flex/grid/contents, chil"...
comment "// This requires a full style recompute, not just inheri"...
declaration
primitive_type "bool"
init_declarator
identifier "children_need_full_style_recompute"
= "="
field_expression
identifier "node_invalidation"
. "."
field_identifier "rebuild_layout_tree"
; ";"
if_statement (+256 nodes collapsed)
expression_statement
call_expression
field_expression
identifier "node"
. "."
field_identifier "set_child_needs_style_update"
argument_list
( "("
false "false"
) ")"
; ";"
if_statement (+39 nodes collapsed)
return_statement
return "return"
identifier "invalidation"
; ";"
} "}"
function_definition (+428 nodes collapsed)
function_definition (+38 nodes collapsed)
function_definition (+218 nodes collapsed)
function_definition (+117 nodes collapsed)
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "update_paint_and_hit_testing_properties_if_needed"
parameter_list
( "("
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
pointer_declarator
* "*"
identifier "paintable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "paintable"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
identifier "paintable"
-> "->"
field_identifier "refresh_scroll_state"
argument_list
( "("
) ")"
; ";"
} "}"
if_statement
if "if"
condition_clause
( "("
identifier "m_needs_to_resolve_paint_only_properties"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "m_needs_to_resolve_paint_only_properties"
= "="
false "false"
; ";"
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
pointer_declarator
* "*"
identifier "paintable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "paintable"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
identifier "paintable"
-> "->"
field_identifier "resolve_paint_only_properties"
argument_list
( "("
) ")"
; ";"
} "}"
} "}"
if_statement
if "if"
condition_clause
( "("
identifier "m_needs_accumulated_visual_contexts_update"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "m_needs_accumulated_visual_contexts_update"
= "="
false "false"
; ";"
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
pointer_declarator
* "*"
identifier "paintable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "paintable"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
identifier "paintable"
-> "->"
field_identifier "assign_accumulated_visual_contexts"
argument_list
( "("
) ")"
; ";"
} "}"
} "}"
} "}"
function_definition (+22 nodes collapsed)
function_definition (+22 nodes collapsed)
function_definition (+22 nodes collapsed)
function_definition (+35 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/semantics.html#met"...
function_definition (+259 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/semantics.html#met"...
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "obtain_theme_color"
parameter_list
( "("
) ")"
compound_statement
{ "{"
declaration
type_identifier "Color"
init_declarator
identifier "theme_color"
= "="
qualified_identifier
namespace_identifier "Color"
:: "::"
identifier "Transparent"
; ";"
comment "// 1. Let candidate elements be the list of all meta element"...
expression_statement
call_expression
template_function
identifier "for_each_in_subtree_of_type"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "HTML"
:: "::"
type_identifier "HTMLMetaElement"
> ">"
argument_list
( "("
lambda_expression
lambda_capture_specifier
[ "["
lambda_default_capture
& "&"
] "]"
abstract_function_declarator
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "HTML"
:: "::"
type_identifier "HTMLMetaElement"
reference_declarator
& "&"
identifier "element"
) ")"
compound_statement
{ "{"
comment "// * the element is in a document tree;"
comment "// * the element has a name attribute, whose value is an"...
comment "// * the element has a content attribute."
comment "// 2. For each element in candidate elements:"
declaration (+22 nodes collapsed)
if_statement
if "if"
condition_clause (+51 nodes collapsed)
compound_statement
{ "{"
comment "// 1. If element has a media attribute and the value of elem"...
declaration (+23 nodes collapsed)
declaration (+22 nodes collapsed)
if_statement (+73 nodes collapsed)
comment "// 2. Let value be the result of stripping leading and trail"...
declaration (+26 nodes collapsed)
comment "// 3. Let color be the result of parsing value."
declaration (+23 nodes collapsed)
comment "// 4. If color is not failure, then return color."
if_statement
if "if"
condition_clause (+23 nodes collapsed)
compound_statement
{ "{"
declaration
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "ColorResolutionContext"
init_declarator
identifier "color_resolution_context"
initializer_list
{ "{"
} "}"
; ";"
if_statement
if "if"
condition_clause
( "("
binary_expression
call_expression
identifier "html_element"
argument_list
( "("
) ")"
&& "&&"
call_expression
field_expression
call_expression
identifier "html_element"
argument_list
( "("
) ")"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "color_resolution_context"
= "="
call_expression
qualified_identifier
namespace_identifier "CSS"
:: "::"
qualified_identifier
namespace_identifier "ColorResolutionContext"
:: "::"
identifier "for_layout_node_with_style"
argument_list
( "("
pointer_expression
* "*"
call_expression
field_expression
call_expression
identifier "html_element"
argument_list
( "("
) ")"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
expression_statement (+21 nodes collapsed)
return_statement
return "return"
qualified_identifier
namespace_identifier "TraversalDecision"
:: "::"
identifier "Break"
; ";"
} "}"
} "}"
return_statement
return "return"
qualified_identifier
namespace_identifier "TraversalDecision"
:: "::"
identifier "Continue"
; ";"
} "}"
) ")"
; ";"
comment "// 3. Return nothing(the page has no theme color)."
expression_statement (+29 nodes collapsed)
} "}"
function_definition (+51 nodes collapsed)
function_definition (+45 nodes collapsed)
function_definition (+31 nodes collapsed)
function_definition (+160 nodes collapsed)
function_definition
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "Node"
> ">"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "highlighted_layout_node"
parameter_list
( "("
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "m_highlighted_node"
) ")"
return_statement
return "return"
null
nullptr "nullptr"
; ";"
if_statement
if "if"
condition_clause (+25 nodes collapsed)
return_statement
return "return"
call_expression
field_expression
identifier "m_highlighted_node"
-> "->"
field_identifier "layout_node"
argument_list
( "("
) ")"
; ";"
declaration (+29 nodes collapsed)
return_statement
return "return"
call_expression
field_expression
identifier "element"
. "."
field_identifier "get_pseudo_element_node"
argument_list
( "("
call_expression
field_expression
identifier "m_highlighted_pseudo_element"
. "."
field_identifier "value"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
function_definition (+159 nodes collapsed)
function_definition (+1021 nodes collapsed)
function_definition (+1476 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+132 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/obsolete.html#dom-"...
function_definition (+81 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/obsolete.html#dom-"...
function_definition (+117 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+100 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+100 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+30 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+137 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+100 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+100 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+95 nodes collapsed)
comment "// https://drafts.csswg.org/css-font-loading/#font-source"
function_definition (+29 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/obsolete.html#dom-"...
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "clear"
parameter_list
( "("
) ")"
compound_statement
{ "{"
comment "// Do nothing"
} "}"
comment "// https://html.spec.whatwg.org/multipage/obsolete.html#dom-"...
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "capture_events"
parameter_list
( "("
) ")"
compound_statement
{ "{"
comment "// Do nothing"
} "}"
comment "// https://html.spec.whatwg.org/multipage/obsolete.html#dom-"...
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "release_events"
parameter_list
( "("
) ")"
compound_statement
{ "{"
comment "// Do nothing"
} "}"
function_definition (+25 nodes collapsed)
function_definition (+25 nodes collapsed)
function_definition (+25 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/webappapis.html#re"...
function_definition (+37 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createelement"
function_definition (+325 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createelementns"
comment "// https://dom.spec.whatwg.org/#internal-createelementns-ste"...
function_definition (+248 nodes collapsed)
function_definition (+46 nodes collapsed)
function_definition (+56 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createcdatasect"...
function_definition (+149 nodes collapsed)
function_definition (+56 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createprocessin"...
function_definition (+162 nodes collapsed)
function_definition (+36 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createevent"
function_definition (+1025 nodes collapsed)
function_definition (+27 nodes collapsed)
function_definition (+65 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+106 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+106 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+106 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-importnode"
function_definition (+124 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#concept-node-adopt"
function_definition (+505 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-adoptnode"
function_definition (+193 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+71 nodes collapsed)
function_definition (+28 nodes collapsed)
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "set_focused_area"
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
identifier "node"
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
binary_expression
identifier "m_focused_area"
== "=="
identifier "node"
) ")"
return_statement
return "return"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
type_identifier "Ptr"
init_declarator
identifier "old_focused_area"
= "="
identifier "m_focused_area"
; ";"
if_statement (+41 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "common_ancestor"
= "="
call_expression
identifier "find_common_ancestor"
argument_list
( "("
identifier "old_focused_area"
, ","
identifier "node"
) ")"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "old_focused_node_root"
= "="
null
nullptr "nullptr"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "new_focused_node_root"
= "="
null
nullptr "nullptr"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "old_focused_area"
) ")"
expression_statement
assignment_expression
identifier "old_focused_node_root"
= "="
call_expression
field_expression
identifier "old_focused_area"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "node"
) ")"
expression_statement
assignment_expression
identifier "new_focused_node_root"
= "="
call_expression
field_expression
identifier "node"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement (+233 nodes collapsed)
expression_statement
assignment_expression
identifier "m_focused_area"
= "="
identifier "node"
; ";"
declaration (+28 nodes collapsed)
if_statement
if "if"
condition_clause
( "("
identifier "new_focused_element"
) ")"
expression_statement
call_expression
field_expression
identifier "new_focused_element"
-> "->"
field_identifier "did_receive_focus"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "reset_cursor_blink_cycle"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
call_expression
identifier "paintable"
argument_list
( "("
) ")"
) ")"
expression_statement
call_expression
field_expression
call_expression
identifier "paintable"
argument_list
( "("
) ")"
-> "->"
field_identifier "set_needs_display"
argument_list
( "("
) ")"
; ";"
comment "// Scroll the viewport if necessary to make the newly focuse"...
if_statement (+121 nodes collapsed)
expression_statement
call_expression
identifier "update_active_element"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition (+39 nodes collapsed)
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "set_active_element"
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Element"
> ">"
identifier "element"
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
binary_expression
call_expression
field_expression
identifier "m_active_element"
. "."
field_identifier "ptr"
argument_list
( "("
) ")"
== "=="
identifier "element"
) ")"
return_statement
return "return"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "old_active_element"
= "="
call_expression
identifier "move"
argument_list
( "("
identifier "m_active_element"
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "common_ancestor"
= "="
call_expression
identifier "find_common_ancestor"
argument_list
( "("
identifier "old_active_element"
, ","
identifier "element"
) ")"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "old_active_node_root"
= "="
null
nullptr "nullptr"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "new_active_node_root"
= "="
null
nullptr "nullptr"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "old_active_element"
) ")"
expression_statement
assignment_expression
identifier "old_active_node_root"
= "="
call_expression
field_expression
identifier "old_active_element"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "element"
) ")"
expression_statement
assignment_expression
identifier "new_active_node_root"
= "="
call_expression
field_expression
identifier "element"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement (+101 nodes collapsed)
expression_statement
assignment_expression
identifier "m_active_element"
= "="
identifier "element"
; ";"
if_statement
if "if"
condition_clause
( "("
call_expression
identifier "paintable"
argument_list
( "("
) ")"
) ")"
expression_statement
call_expression
field_expression
call_expression
identifier "paintable"
argument_list
( "("
) ")"
-> "->"
field_identifier "set_needs_display"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "set_target_element"
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Element"
> ">"
identifier "element"
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
binary_expression
call_expression
field_expression
identifier "m_target_element"
. "."
field_identifier "ptr"
argument_list
( "("
) ")"
== "=="
identifier "element"
) ")"
return_statement
return "return"
; ";"
declaration (+21 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "common_ancestor"
= "="
call_expression
identifier "find_common_ancestor"
argument_list
( "("
identifier "old_target_element"
, ","
identifier "element"
) ")"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "old_target_node_root"
= "="
null
nullptr "nullptr"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "new_target_node_root"
= "="
null
nullptr "nullptr"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "old_target_element"
) ")"
expression_statement
assignment_expression
identifier "old_target_node_root"
= "="
call_expression
field_expression
identifier "old_target_element"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "element"
) ")"
expression_statement
assignment_expression
identifier "new_target_node_root"
= "="
call_expression
field_expression
identifier "element"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement (+101 nodes collapsed)
expression_statement
assignment_expression
identifier "m_target_element"
= "="
identifier "element"
; ";"
if_statement
if "if"
condition_clause
( "("
call_expression
identifier "paintable"
argument_list
( "("
) ")"
) ")"
expression_statement
call_expression
field_expression
call_expression
identifier "paintable"
argument_list
( "("
) ")"
-> "->"
field_identifier "set_needs_display"
argument_list
( "("
) ")"
; ";"
} "}"
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+201 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+189 nodes collapsed)
comment "// https://drafts.csswg.org/css-transitions-2/#event-dispatc"...
function_definition (+1383 nodes collapsed)
comment "// https://www.w3.org/TR/css-animations-2/#event-dispatch"
function_definition (+1246 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+258 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+32 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view-1/#scroll-to-the-begi"...
function_definition (+48 nodes collapsed)
function_definition (+88 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#update-th"...
function_definition (+351 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+111 nodes collapsed)
function_definition
type_identifier "Page"
reference_declarator
& "&"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "page"
parameter_list
( "("
) ")"
compound_statement
{ "{"
return_statement
return "return"
identifier "m_page"
; ";"
} "}"
function_definition (+23 nodes collapsed)
function_definition (+53 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+26 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+343 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+214 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+175 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#cookie-av"...
function_definition (+81 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+81 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+81 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+81 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+81 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+81 nodes collapsed)
function_definition (+112 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/semantics.html#has"...
function_definition (+26 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/semantics.html#has"...
function_definition (+110 nodes collapsed)
function_definition
type_identifier "String"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "referrer"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
return_statement
return "return"
identifier "m_referrer"
; ";"
} "}"
function_definition (+27 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+127 nodes collapsed)
function_definition (+47 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/history.html#dom-d"...
function_definition (+59 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#d"...
function_definition (+28 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#d"...
function_definition (+69 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#u"...
function_definition (+144 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view/#run-the-resize-steps"
function_definition (+275 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view-1/#document-run-the-s"...
function_definition (+232 nodes collapsed)
function_definition (+45 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view/#evaluate-media-queri"...
function_definition (+291 nodes collapsed)
function_definition (+241 nodes collapsed)
function_definition (+43 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#d"...
function_definition (+24 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#h"...
function_definition (+222 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#a"...
function_definition (+82 nodes collapsed)
function_definition (+39 nodes collapsed)
function_definition (+31 nodes collapsed)
comment "// https://www.w3.org/TR/xml/#NT-NameStartChar"
function_definition (+256 nodes collapsed)
comment "// https://www.w3.org/TR/xml/#NT-NameChar"
function_definition (+101 nodes collapsed)
comment "// https://www.w3.org/TR/xml/#NT-Name"
function_definition (+137 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createnodeitera"...
function_definition (+67 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createtreewalke"...
function_definition (+67 nodes collapsed)
function_definition (+62 nodes collapsed)
function_definition (+52 nodes collapsed)
function_definition (+60 nodes collapsed)
function_definition (+50 nodes collapsed)
function_definition (+48 nodes collapsed)
function_definition (+56 nodes collapsed)
function_definition (+75 nodes collapsed)
function_definition (+75 nodes collapsed)
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "invalidate_stacking_context_tree"
parameter_list
( "("
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
pointer_declarator
* "*"
identifier "paintable_box"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "paintable_box"
argument_list
( "("
) ")"
) ")"
expression_statement
call_expression
field_expression
identifier "paintable_box"
-> "->"
field_identifier "invalidate_stacking_context"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition (+305 nodes collapsed)
function_definition (+29 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/custom-elements.ht"...
function_definition (+223 nodes collapsed)
function_definition (+51 nodes collapsed)
function_definition (+46 nodes collapsed)
function_definition (+60 nodes collapsed)
function_definition (+51 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/origin.html#dom-do"...
function_definition (+71 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsers.html#is-a"...
function_definition (+358 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsers.html#dom-"...
function_definition (+247 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+25 nodes collapsed)
function_definition (+22 nodes collapsed)
function_definition (+25 nodes collapsed)
function_definition (+84 nodes collapsed)
function_definition (+34 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+137 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+225 nodes collapsed)
function_definition (+61 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+118 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+143 nodes collapsed)
function_definition (+61 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+93 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+200 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+151 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+461 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+32 nodes collapsed)
struct_specifier (+463 nodes collapsed)
; ";"
expression_statement
call_expression
identifier "GC_DEFINE_ALLOCATOR"
argument_list
( "("
identifier "DocumentDestructionState"
) ")"
; ";"
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+381 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+99 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+177 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#active-pa"...
function_definition (+70 nodes collapsed)
function_definition (+46 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+299 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+444 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/iframe-embed-objec"...
function_definition (+181 nodes collapsed)
function_definition (+76 nodes collapsed)
function_definition (+29 nodes collapsed)
function_definition (+37 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/scripting.html#app"...
function_definition (+157 nodes collapsed)
function_definition (+199 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createattribute"
function_definition (+112 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createattribute"...
function_definition (+101 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+269 nodes collapsed)
function_definition (+24 nodes collapsed)
function_definition (+28 nodes collapsed)
function_definition (+54 nodes collapsed)
function_definition (+58 nodes collapsed)
function_definition (+53 nodes collapsed)
function_definition (+43 nodes collapsed)
function_definition (+39 nodes collapsed)
function_definition (+66 nodes collapsed)
function_definition (+56 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+44 nodes collapsed)
comment "// https://www.w3.org/TR/intersection-observer/#queue-an-int"...
function_definition (+396 nodes collapsed)
comment "// https://www.w3.org/TR/intersection-observer/#queue-an-int"...
function_definition (+178 nodes collapsed)
comment "// https://www.w3.org/TR/intersection-observer/#compute-the-"...
function_definition (+95 nodes collapsed)
comment "// https://www.w3.org/TR/intersection-observer/#run-the-upda"...
function_definition (+1028 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+573 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+41 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/semantics.html#sha"...
function_definition (+1138 nodes collapsed)
function_definition (+51 nodes collapsed)
function_definition (+45 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+136 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+723 nodes collapsed)
function_definition (+43 nodes collapsed)
comment "// https://www.w3.org/TR/web-animations-1/#dom-document-time"...
function_definition (+68 nodes collapsed)
function_definition (+39 nodes collapsed)
function_definition (+39 nodes collapsed)
function_definition (+40 nodes collapsed)
comment "// https://www.w3.org/TR/web-animations-1/#update-animations"...
function_definition (+690 nodes collapsed)
comment "// https://www.w3.org/TR/web-animations-1/#remove-replaced-a"...
function_definition (+948 nodes collapsed)
function_definition (+58 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+108 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+57 nodes collapsed)
function_definition (+170 nodes collapsed)
function_definition (+269 nodes collapsed)
function_definition (+146 nodes collapsed)
function_definition (+176 nodes collapsed)
function_definition (+149 nodes collapsed)
function_definition (+61 nodes collapsed)
function_definition (+125 nodes collapsed)
function_definition (+34 nodes collapsed)
function_definition (+59 nodes collapsed)
function_definition (+70 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#m"...
function_definition (+39 nodes collapsed)
function_definition (+200 nodes collapsed)
function_definition (+87 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view/#dom-document-element"...
function_definition (+315 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view/#dom-document-element"...
function_definition (+409 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view/#dom-document-scrolli"...
function_definition (+128 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#exposed"
function_definition (+64 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-tree-"...
function_definition (+415 nodes collapsed)
function_definition (+281 nodes collapsed)
function_definition (+118 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+255 nodes collapsed)
comment "// https://drafts.csswg.org/resize-observer-1/#calculate-dep"...
function_definition (+68 nodes collapsed)
comment "// https://drafts.csswg.org/resize-observer-1/#gather-active"...
function_definition (+184 nodes collapsed)
comment "// https://drafts.csswg.org/resize-observer-1/#broadcast-act"...
function_definition (+456 nodes collapsed)
comment "// https://drafts.csswg.org/resize-observer-1/#has-active-ob"...
function_definition (+60 nodes collapsed)
comment "// https://drafts.csswg.org/resize-observer-1/#has-skipped-o"...
function_definition (+60 nodes collapsed)
function_definition (+67 nodes collapsed)
function_definition (+179 nodes collapsed)
function_definition (+196 nodes collapsed)
function_definition (+64 nodes collapsed)
function_definition (+144 nodes collapsed)
function_definition (+602 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+37 nodes collapsed)
comment "// https://drafts.csswg.org/css-position-4/#add-an-element-t"...
function_definition (+141 nodes collapsed)
comment "// https://drafts.csswg.org/css-position-4/#request-an-eleme"...
function_definition (+114 nodes collapsed)
comment "// https://drafts.csswg.org/css-position-4/#remove-an-elemen"...
function_definition (+83 nodes collapsed)
comment "// https://drafts.csswg.org/css-position-4/#process-top-laye"...
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "process_top_layer_removals"
parameter_list
( "("
) ")"
compound_statement
{ "{"
comment "// 1. For each element el in doc’s pending top layer removal"...
comment "// not rendered, remove el from doc’s top layer and pendi"...
declaration (+32 nodes collapsed)
for_range_loop
for "for"
( "("
placeholder_type_specifier
auto "auto"
reference_declarator
& "&"
identifier "element"
: ":"
identifier "m_top_layer_pending_removals"
) ")"
compound_statement
{ "{"
comment "// FIXME: Implement overlay property"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
call_expression
field_expression
identifier "element"
-> "->"
field_identifier "paintable"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
identifier "elements_to_remove"
. "."
field_identifier "append"
argument_list
( "("
identifier "element"
) ")"
; ";"
} "}"
} "}"
for_range_loop (+36 nodes collapsed)
if_statement (+26 nodes collapsed)
} "}"
comment "// https://html.spec.whatwg.org/multipage/popover.html#topmo"...
function_definition (+87 nodes collapsed)
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "set_needs_to_refresh_scroll_state"
parameter_list
( "("
parameter_declaration
primitive_type "bool"
identifier "b"
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
pointer_declarator
* "*"
identifier "paintable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "paintable"
argument_list
( "("
) ")"
) ")"
expression_statement
call_expression
field_expression
identifier "paintable"
-> "->"
field_identifier "set_needs_to_refresh_scroll_state"
argument_list
( "("
identifier "b"
) ")"
; ";"
} "}"
function_definition (+599 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#document-allow-declarative-s"...
function_definition
primitive_type "bool"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "allow_declarative_shadow_roots"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
return_statement
return "return"
identifier "m_allow_declarative_shadow_roots"
; ";"
} "}"
function_definition (+39 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#render-bl"...
function_definition (+108 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#allows-ad"...
function_definition (+39 nodes collapsed)
function_definition (+36 nodes collapsed)
function_definition (+36 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#run-the-fullscreen-st"...
function_definition (+282 nodes collapsed)
function_definition (+50 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#fullscreen-an-element"
function_definition (+270 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#fullscreen-element"
function_definition (+75 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#dom-document-fullscre"...
function_definition (+182 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#dom-document-fullscre"...
function_definition (+28 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#dom-document-fullscre"...
function_definition (+28 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#fully-exit-fullscreen"
function_definition (+198 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#exit-fullscreen"
function_definition (+791 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#unfullscreen-a-docume"...
function_definition (+129 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#simple-fullscreen-doc"...
function_definition (+81 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#collect-documents-to-"...
function_definition (+303 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#unfullscreen-an-eleme"...
function_definition (+90 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#document-allow-declarative-s"...
function_definition (+22 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+117 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+261 nodes collapsed)
function_definition (+179 nodes collapsed)
function_definition (+238 nodes collapsed)
function_definition (+48 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+65 nodes collapsed)
function_definition (+36 nodes collapsed)
function_definition (+41 nodes collapsed)
function_definition (+30 nodes collapsed)
function_definition (+188 nodes collapsed)
function_definition (+87 nodes collapsed)
function_definition (+28 nodes collapsed)
function_definition (+673 nodes collapsed)
function_definition (+57 nodes collapsed)
function_definition (+57 nodes collapsed)
function_definition (+57 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+294 nodes collapsed)
comment "// https://w3c.github.io/webappsec-csp/#run-document-csp-ini"...
function_definition (+114 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+37 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+37 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+37 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+37 nodes collapsed)
comment "// https://drafts.csswg.org/css-view-transitions-1/#dom-docu"...
function_definition (+250 nodes collapsed)
comment "// https://drafts.csswg.org/css-view-transitions-1/#perform-"...
function_definition (+100 nodes collapsed)
comment "// https://drafts.csswg.org/css-view-transitions-1/#flush-th"...
function_definition (+50 nodes collapsed)
comment "// https://drafts.csswg.org/css-view-transitions-1/#view-tra"...
function_definition (+179 nodes collapsed)
function_definition (+47 nodes collapsed)
function_definition (+1143 nodes collapsed)
function_definition (+125 nodes collapsed)
function_definition (+434 nodes collapsed)
function_definition (+31 nodes collapsed)
function_definition (+90 nodes collapsed)
function_definition (+130 nodes collapsed)
function_definition (+44 nodes collapsed)
comment "// https://drafts.css-houdini.org/css-properties-values-api/"...
function_definition (+114 nodes collapsed)
function_definition (+110 nodes collapsed)
function_definition (+145 nodes collapsed)
function_definition (+155 nodes collapsed)
function_definition (+892 nodes collapsed)
function_definition (+48 nodes collapsed)
function_definition (+48 nodes collapsed)
function_definition (+48 nodes collapsed)
function_definition (+48 nodes collapsed)
function_definition (+51 nodes collapsed)
function_definition (+51 nodes collapsed)
function_definition (+24 nodes collapsed)
} "}"

After

translation_unit
comment "/*\n * Copyright (c) 2018-2025, Andreas Kling <andreas@ladybi"...
preproc_include
#include "#include"
system_lib_string "<AK/Bitmap.h>"
preproc_include
#include "#include"
system_lib_string "<AK/CharacterTypes.h>"
preproc_include
#include "#include"
system_lib_string "<AK/Debug.h>"
preproc_include
#include "#include"
system_lib_string "<AK/GenericLexer.h>"
preproc_include
#include "#include"
system_lib_string "<AK/InsertionSort.h>"
preproc_include
#include "#include"
system_lib_string "<AK/JsonObjectSerializer.h>"
preproc_include
#include "#include"
system_lib_string "<AK/Random.h>"
preproc_include
#include "#include"
system_lib_string "<AK/StringBuilder.h>"
preproc_include
#include "#include"
system_lib_string "<AK/TemporaryChange.h>"
preproc_include
#include "#include"
system_lib_string "<AK/Time.h>"
preproc_include
#include "#include"
system_lib_string "<AK/Utf8View.h>"
preproc_include
#include "#include"
system_lib_string "<LibCore/Timer.h>"
preproc_include
#include "#include"
system_lib_string "<LibGC/RootVector.h>"
preproc_include
#include "#include"
system_lib_string "<LibHTTP/Cookie/Cookie.h>"
preproc_include
#include "#include"
system_lib_string "<LibHTTP/Cookie/ParsedCookie.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Console.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/Array.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/FunctionObject.h>"
preproc_include
#include "#include"
system_lib_string "<LibJS/Runtime/NativeFunction.h>"
preproc_include
#include "#include"
system_lib_string "<LibTextCodec/Decoder.h>"
preproc_include
#include "#include"
system_lib_string "<LibURL/Origin.h>"
preproc_include
#include "#include"
system_lib_string "<LibURL/Parser.h>"
preproc_include
#include "#include"
system_lib_string "<LibUnicode/Segmenter.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Animations/Animation.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Animations/AnimationPlaybackEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Animations/AnimationTimeline.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Animations/DocumentTimeline.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Animations/TimeValue.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Bindings/DocumentPrototype.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Bindings/MainThreadVM.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Bindings/PrincipalHostDefined.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/AnimationEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSAnimation.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSCounterStyleRule.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSImportRule.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSPropertyRule.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSStyleSheet.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CSSTransition.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/ComputedProperties.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CounterStyle.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/CounterStyleDefinition.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/FontComputer.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/FontFaceSet.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/MediaQueryList.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/MediaQueryListEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/Parser/Parser.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/SelectorEngine.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleComputer.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleInvalidation.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleSheetIdentifier.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleSheetList.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleValues/ColorSchemeStyleValue.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleValues/GuaranteedInvalidStyleValue.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/StyleValues/RandomValueSharingStyleValue.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/SystemColor.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/TransitionEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/CSS/VisualViewport.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ContentSecurityPolicy/Directives/Directive.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ContentSecurityPolicy/Policy.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ContentSecurityPolicy/PolicyList.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/AbstractElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/AccessibilityTreeNode.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/AdoptedStyleSheets.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Attr.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/CDATASection.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Comment.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/CustomEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/DOMImplementation.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Document.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/DocumentFragment.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/DocumentObserver.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/DocumentOrShadowRoot.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/DocumentType.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/EditingHostManager.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Element.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/ElementByIdMap.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/ElementFactory.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Event.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/HTMLCollection.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/InputEventsTarget.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/LiveNodeList.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/NodeIterator.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Position.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/ProcessingInstruction.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Range.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/ShadowRoot.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/StyleInvalidator.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Text.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/TreeWalker.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOM/Utils.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/DOMURL/DOMURL.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Dump.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Fetch/Infrastructure/HTTP/Responses.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/FileAPI/BlobURLStore.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/AttributeNames.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/BeforeUnloadEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/BrowsingContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/BrowsingContextGroup.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/CustomElements/CustomElementDefinition.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/CustomElements/CustomElementReactionNames.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/CustomElements/CustomElementRegistry.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/DocumentState.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/DragEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/EventLoop/EventLoop.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/EventNames.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Focus.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLAllCollection.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLAnchorElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLAreaElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLBaseElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLBodyElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLDialogElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLDocument.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLEmbedElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLFormElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLFrameSetElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLHeadElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLHtmlElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLIFrameElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLImageElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLInputElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLLinkElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLMetaElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLObjectElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLScriptElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLSlotElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLStyleElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLTextAreaElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HTMLTitleElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/HashChangeEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/History.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/ListOfAvailableImages.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Location.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/MessageEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/MessagePort.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Navigable.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/NavigableContainer.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Navigation.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/NavigationParams.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Numbers.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Parser/HTMLParser.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/PolicyContainers.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/PopStateEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/Agent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/ClassicScript.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/Environments.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/ExceptionReporter.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/TemporaryExecutionContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/SharedResourceRequest.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Storage.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/StorageEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/StructuredSerialize.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/TraversableNavigable.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/Window.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HTML/WindowProxy.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HighResolutionTime/Performance.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/HighResolutionTime/TimeOrigin.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Infra/CharacterTypes.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Infra/Strings.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/IntersectionObserver/IntersectionObserver.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Layout/BlockFormattingContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Layout/SVGFormattingContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Layout/SVGSVGBox.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Layout/TreeBuilder.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Layout/Viewport.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Namespace.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Page/EventHandler.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Page/Page.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/AccumulatedVisualContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/DisplayList.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/DisplayListCommand.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/PaintableBox.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/StackingContext.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Painting/ViewportPaintable.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/PermissionsPolicy/AutoplayAllowlist.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Platform/EventLoopPlugin.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ResizeObserver/ResizeObserver.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ResizeObserver/ResizeObserverEntry.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/SVG/SVGDecodedImageData.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/SVG/SVGElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/SVG/SVGSVGElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/SVG/SVGStyleElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/SVG/SVGTitleElement.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/Selection/Selection.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/TrustedTypes/RequireTrustedTypesForDirective.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/TrustedTypes/TrustedTypePolicy.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/CompositionEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/EventNames.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/FocusEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/KeyboardEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/MouseEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/PointerEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/PointerTypes.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/UIEvents/TextEvent.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/ViewTransition/ViewTransition.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/WebIDL/AbstractOperations.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/WebIDL/DOMException.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/WebIDL/ExceptionOr.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/WebIDL/ObservableArray.h>"
preproc_include
#include "#include"
system_lib_string "<LibWeb/XPath/XPath.h>"
namespace_definition
namespace "namespace"
nested_namespace_specifier
namespace_identifier "Web"
:: "::"
namespace_identifier "DOM"
declaration_list
{ "{"
expression_statement
call_expression
identifier "GC_DEFINE_ALLOCATOR"
argument_list
( "("
identifier "Document"
) ")"
; ";"
comment "// https://html.spec.whatwg.org/multipage/origin.html#obtain"...
function_definition (+341 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+1222 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-document"
function_definition (+97 nodes collapsed)
function_definition (+61 nodes collapsed)
function_definition (+62 nodes collapsed)
function_definition
function_declarator (+31 nodes collapsed)
field_initializer_list (+218 nodes collapsed)
compound_statement
{ "{"
expression_statement (+27 nodes collapsed)
expression_statement
assignment_expression
identifier "m_cursor_blink_timer"
= "="
call_expression
qualified_identifier
namespace_identifier "Core"
:: "::"
qualified_identifier
namespace_identifier "Timer"
:: "::"
identifier "create_repeating"
argument_list
( "("
number_literal "500"
, ","
lambda_expression
lambda_capture_specifier
[ "["
this "this"
] "]"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "cursor_position"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "cursor_position"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "cursor_position"
) ")"
return_statement
return "return"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "navigable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "navigable"
argument_list
( "("
) ")"
; ";"
if_statement (+23 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "node"
= "="
call_expression
field_expression
identifier "cursor_position"
-> "->"
field_identifier "node"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
call_expression
field_expression
identifier "node"
-> "->"
field_identifier "unsafe_paintable"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "m_cursor_blink_state"
= "="
unary_expression
! "!"
identifier "m_cursor_blink_state"
; ";"
expression_statement
call_expression any 2:1
field_expression any 2:1
identifier "node"
-> "->" any 2:1
field_identifier "set_needs_display"
argument_list
( "("
) ")"
; ";"
} "}"
} "}"
) ")"
; ";"
expression_statement (+24 nodes collapsed)
} "}"
function_definition
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
destructor_name
~ "~"
identifier "Document"
parameter_list
( "("
) ")"
default_method_clause
= "="
default "default"
; ";"
function_definition (+47 nodes collapsed)
function_definition (+139 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+187 nodes collapsed)
function_definition (+962 nodes collapsed)
comment "// https://w3c.github.io/selection-api/#dom-document-getsele"...
function_definition (+51 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+61 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+61 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+583 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+550 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+105 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+172 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/nav-history-apis.h"...
function_definition (+60 nodes collapsed)
function_definition (+53 nodes collapsed)
function_definition (+26 nodes collapsed)
function_definition (+29 nodes collapsed)
function_definition (+120 nodes collapsed)
function_definition (+29 nodes collapsed)
function_definition (+33 nodes collapsed)
comment "// https://www.w3.org/TR/SVG2/struct.html#InterfaceDocumentE"...
function_definition (+47 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#the-html-"...
function_definition (+51 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#the-head-"...
function_definition (+67 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#the-title"...
function_definition (+99 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+52 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+49 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#the-body-"...
function_definition (+150 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+240 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#document."...
function_definition (+178 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#document."...
function_definition (+405 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition
type_identifier "Color"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "background_color"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
comment "// CSS2 says we should use the HTML element's background col"...
comment "// NB: Called during resolve_paint_properties() inside updat"...
if_statement
if "if"
condition_clause
( "("
init_statement
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "html_element"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "html_element"
argument_list
( "("
) ")"
; ";"
binary_expression
identifier "html_element"
&& "&&"
call_expression
field_expression
identifier "html_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "color"
= "="
call_expression
field_expression
call_expression
field_expression
call_expression
field_expression
identifier "html_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
-> "->"
field_identifier "computed_values"
argument_list
( "("
) ")"
. "."
field_identifier "background_color"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
call_expression
field_expression
identifier "color"
. "."
field_identifier "alpha"
argument_list
( "("
) ")"
) ")"
return_statement
return "return"
identifier "color"
; ";"
} "}"
comment "// ...in which case we use the BODY element's background col"...
if_statement
if "if"
condition_clause
( "("
init_statement
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "body_element"
= "="
call_expression
identifier "body"
argument_list
( "("
) ")"
; ";"
binary_expression
identifier "body_element"
&& "&&"
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "color"
= "="
call_expression
field_expression
call_expression
field_expression
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
-> "->"
field_identifier "computed_values"
argument_list
( "("
) ")"
. "."
field_identifier "background_color"
argument_list
( "("
) ")"
; ";"
return_statement
return "return"
identifier "color"
; ";"
} "}"
comment "// By default, the document is transparent."
comment "// The outermost canvas is colored by the PageHost."
return_statement
return "return"
qualified_identifier
namespace_identifier "Color"
:: "::"
identifier "Transparent"
; ";"
} "}"
function_definition
template_type
type_identifier "Vector"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "BackgroundLayerData"
> ">"
type_qualifier
const "const"
pointer_declarator
* "*"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "background_layers"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "body_element"
= "="
call_expression
identifier "body"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "body_element"
) ")"
return_statement
return "return"
initializer_list
{ "{"
} "}"
; ";"
comment "// NB: Called during resolve_paint_properties() inside updat"...
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "body_layout_node"
= "="
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "body_layout_node"
) ")"
return_statement
return "return"
initializer_list
{ "{"
} "}"
; ";"
return_statement
return "return"
pointer_expression
& "&"
call_expression
field_expression
identifier "body_layout_node"
-> "->"
field_identifier "background_layers"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "ImageRendering"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "background_image_rendering"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "body_element"
= "="
call_expression
identifier "body"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "body_element"
) ")"
return_statement
return "return"
qualified_identifier
namespace_identifier "CSS"
:: "::"
qualified_identifier
namespace_identifier "ImageRendering"
:: "::"
identifier "Auto"
; ";"
comment "// NB: Called during resolve_paint_properties() inside updat"...
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "body_layout_node"
= "="
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "body_layout_node"
) ")"
return_statement
return "return"
qualified_identifier
namespace_identifier "CSS"
:: "::"
qualified_identifier
namespace_identifier "ImageRendering"
:: "::"
identifier "Auto"
; ";"
return_statement
return "return"
call_expression
field_expression
call_expression
field_expression
identifier "body_layout_node"
-> "->"
field_identifier "computed_values"
argument_list
( "("
) ")"
. "."
field_identifier "image_rendering"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition (+221 nodes collapsed)
function_definition (+31 nodes collapsed)
function_definition (+31 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+34 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+62 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+105 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+59 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+76 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+72 nodes collapsed)
function_definition (+49 nodes collapsed)
function_definition (+32 nodes collapsed)
function_definition (+443 nodes collapsed)
function_definition
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "propagate_scrollbar_width_to_viewport"
parameter_list
( "("
parameter_declaration
type_identifier "Element"
reference_declarator
& "&"
identifier "root_element"
, ","
parameter_declaration
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "Viewport"
reference_declarator
& "&"
identifier "viewport"
) ")"
compound_statement
{ "{"
comment "// https://drafts.csswg.org/css-scrollbars/#scrollbar-width"
comment "// UAs must apply the scrollbar-color value set on the root "...
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "viewport_computed_values"
= "="
call_expression
field_expression
identifier "viewport"
. "."
field_identifier "mutable_computed_values"
argument_list
( "("
) ")"
; ";"
comment "// NB: Called during layout tree construction."
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "root_element_computed_values"
= "="
call_expression
field_expression
call_expression
field_expression
identifier "root_element"
. "."
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
-> "->"
field_identifier "computed_values"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "viewport_computed_values"
. "."
field_identifier "set_scrollbar_width"
argument_list
( "("
call_expression
field_expression
identifier "root_element_computed_values"
. "."
field_identifier "scrollbar_width"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
comment "// https://drafts.csswg.org/css-overflow-3/#overflow-propaga"...
function_definition
storage_class_specifier
static "static"
primitive_type "void"
function_declarator
identifier "propagate_overflow_to_viewport"
parameter_list
( "("
parameter_declaration
type_identifier "Element"
reference_declarator
& "&"
identifier "root_element"
, ","
parameter_declaration
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "Viewport"
reference_declarator
& "&"
identifier "viewport"
) ")"
compound_statement
{ "{"
comment "// https://drafts.csswg.org/css-contain-2/#contain-property"
comment "// Additionally, when any containments are active on either "...
comment "// properties from the <body> element to the initial contain"...
comment "// disabled. Notably, this affects:"
comment "// - 'overflow' and its longhands (see CSS Overflow 3 §\u{202f}3.3 "...
if_statement (+42 nodes collapsed)
declaration (+26 nodes collapsed)
if_statement (+35 nodes collapsed)
comment "// UAs must apply the overflow-* values set on the root elem"...
comment "// when the root element’s display value is not none."
comment "// NB: Called during layout tree construction."
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "overflow_origin_node"
= "="
call_expression
field_expression
identifier "root_element"
. "."
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "viewport_computed_values"
= "="
call_expression
field_expression
identifier "viewport"
. "."
field_identifier "mutable_computed_values"
argument_list
( "("
) ")"
; ";"
comment "// However, when the root element is an [HTML] html element "...
comment "// whose overflow value is visible (in both axes), and that "...
comment "// a body element whose display value is also not none,"
comment "// user agents must instead apply the overflow-* values of t"...
if_statement
if "if"
condition_clause
( "("
call_expression
field_expression
identifier "root_element"
. "."
field_identifier "is_html_html_element"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "root_element_layout_node"
= "="
call_expression
field_expression
identifier "root_element"
. "."
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "root_element_computed_values"
= "="
call_expression
field_expression
identifier "root_element_layout_node"
-> "->"
field_identifier "mutable_computed_values"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause (+39 nodes collapsed)
compound_statement
{ "{"
declaration (+26 nodes collapsed)
if_statement
if "if"
condition_clause
( "("
binary_expression
identifier "body_element"
&& "&&"
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
) ")"
expression_statement
assignment_expression
identifier "overflow_origin_node"
= "="
call_expression
field_expression
identifier "body_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
; ";"
} "}"
} "}"
comment "// If 'visible' is applied to the viewport, it must be inter"...
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "overflow_origin_computed_values"
= "="
call_expression
field_expression
identifier "overflow_origin_node"
-> "->"
field_identifier "mutable_computed_values"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "overflow_x_to_apply"
= "="
call_expression
field_expression
identifier "overflow_origin_computed_values"
. "."
field_identifier "overflow_x"
argument_list
( "("
) ")"
; ";"
if_statement (+62 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "overflow_y_to_apply"
= "="
call_expression
field_expression
identifier "overflow_origin_computed_values"
. "."
field_identifier "overflow_y"
argument_list
( "("
) ")"
; ";"
if_statement (+62 nodes collapsed)
expression_statement
call_expression
field_expression
identifier "viewport_computed_values"
. "."
field_identifier "set_overflow_x"
argument_list
( "("
identifier "overflow_x_to_apply"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "viewport_computed_values"
. "."
field_identifier "set_overflow_y"
argument_list
( "("
identifier "overflow_y_to_apply"
) ")"
; ";"
comment "// The element from which the value is propagated must then "...
comment "// FIXME: Apply this to the used values, not the computed on"...
expression_statement
call_expression
field_expression
identifier "overflow_origin_computed_values"
. "."
field_identifier "set_overflow_x"
argument_list
( "("
qualified_identifier
namespace_identifier "CSS"
:: "::"
qualified_identifier
namespace_identifier "Overflow"
:: "::"
identifier "Visible"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "overflow_origin_computed_values"
. "."
field_identifier "set_overflow_y"
argument_list
( "("
qualified_identifier
namespace_identifier "CSS"
:: "::"
qualified_identifier
namespace_identifier "Overflow"
:: "::"
identifier "Visible"
) ")"
; ";"
} "}"
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "update_layout"
parameter_list
( "("
parameter_declaration
type_identifier "UpdateLayoutReason"
identifier "reason"
) ")"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "navigable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "navigable"
argument_list
( "("
) ")"
; ";"
if_statement (+24 nodes collapsed)
expression_statement
call_expression
identifier "VERIFY"
argument_list
( "("
unary_expression
! "!"
identifier "m_is_running_update_layout"
) ")"
; ";"
declaration
type_identifier "ScopeGuard"
init_declarator
identifier "guard"
= "="
lambda_expression
lambda_capture_specifier
[ "["
lambda_default_capture
& "&"
] "]"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "m_is_running_update_layout"
= "="
false "false"
; ";"
} "}"
; ";"
expression_statement
assignment_expression
identifier "m_is_running_update_layout"
= "="
true "true"
; ";"
expression_statement
call_expression
identifier "update_style"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
call_expression
identifier "layout_is_up_to_date"
argument_list
( "("
) ")"
) ")"
return_statement
return "return"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "svg_roots_to_relayout"
= "="
call_expression
identifier "move"
argument_list
( "("
identifier "m_svg_roots_needing_relayout"
) ")"
; ";"
comment "// NOTE: If this is a document hosting <template> contents, "...
if_statement
if "if"
condition_clause
( "("
identifier "m_created_for_appropriate_template_contents"
) ")"
return_statement
return "return"
; ";"
declaration (+33 nodes collapsed)
comment "// Partial SVG relayout"
if_statement (+107 nodes collapsed)
comment "// Clear text blocks cache so we rebuild them on the next fi"...
if_statement
if "if"
condition_clause
( "("
identifier "m_layout_root"
) ")"
expression_statement
call_expression
field_expression
identifier "m_layout_root"
-> "->"
field_identifier "invalidate_text_blocks_cache"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "invalidate_display_list"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "document_element"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "document_element"
argument_list
( "("
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "viewport_rect"
= "="
call_expression
field_expression
identifier "navigable"
-> "->"
field_identifier "viewport_rect"
argument_list
( "("
) ")"
; ";"
declaration (+25 nodes collapsed)
if_statement
if "if"
condition_clause
( "("
identifier "needs_layout_tree_rebuild"
) ")"
compound_statement
{ "{"
declaration
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "TreeBuilder"
identifier "tree_builder"
; ";"
expression_statement (+32 nodes collapsed)
comment "// NB: Called during layout update."
if_statement
if "if"
condition_clause
( "("
binary_expression
identifier "document_element"
&& "&&"
call_expression
field_expression
identifier "document_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement (+31 nodes collapsed)
expression_statement
call_expression
identifier "set_needs_full_layout_tree_update"
argument_list
( "("
false "false"
) ")"
; ";"
if_statement (+37 nodes collapsed)
} "}"
declaration
type_identifier "u32"
init_declarator
identifier "layout_index_counter"
= "="
number_literal "0"
; ";"
expression_statement (+273 nodes collapsed)
declaration
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "LayoutState"
identifier "layout_state"
; ";"
expression_statement
call_expression
field_expression
identifier "layout_state"
. "."
field_identifier "ensure_capacity"
argument_list
( "("
identifier "layout_index_counter"
) ")"
; ";"
compound_statement
{ "{"
declaration (+27 nodes collapsed)
declaration (+28 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "viewport_state"
= "="
call_expression
field_expression
identifier "layout_state"
. "."
field_identifier "get_mutable"
argument_list
( "("
identifier "viewport"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "viewport_state"
. "."
field_identifier "set_content_width"
argument_list
( "("
call_expression
field_expression
identifier "viewport_rect"
. "."
field_identifier "width"
argument_list
( "("
) ")"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "viewport_state"
. "."
field_identifier "set_content_height"
argument_list
( "("
call_expression
field_expression
identifier "viewport_rect"
. "."
field_identifier "height"
argument_list
( "("
) ")"
) ")"
; ";"
comment "// NB: Called during layout update."
if_statement
if "if"
condition_clause
( "("
binary_expression
identifier "document_element"
&& "&&"
call_expression
field_expression
identifier "document_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
reference_declarator
& "&"
identifier "icb_state"
= "="
call_expression
field_expression
identifier "layout_state"
. "."
field_identifier "get_mutable"
argument_list
( "("
call_expression
template_function
identifier "as"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "NodeWithStyleAndBoxModelMetrics"
> ">"
argument_list
( "("
pointer_expression
* "*"
call_expression
field_expression
identifier "document_element"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
) ")"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "icb_state"
. "."
field_identifier "set_content_width"
argument_list
( "("
call_expression
field_expression
identifier "viewport_rect"
. "."
field_identifier "width"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
expression_statement (+57 nodes collapsed)
} "}"
expression_statement
call_expression
field_expression
identifier "layout_state"
. "."
field_identifier "commit"
argument_list
( "("
pointer_expression
* "*"
identifier "m_layout_root"
) ")"
; ";"
comment "// Broadcast the current viewport rect to any new paintables"...
expression_statement
call_expression
identifier "inform_all_viewport_clients_about_the_current_viewport_rect"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "m_document"
-> "->"
field_identifier "set_needs_display"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "set_needs_to_resolve_paint_only_properties"
argument_list
( "("
) ")"
; ";"
comment "// NB: Called during layout update."
expression_statement
call_expression
field_expression
call_expression
identifier "unsafe_paintable"
argument_list
( "("
) ")"
-> "->"
field_identifier "assign_scroll_frames"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "set_needs_accumulated_visual_contexts_update"
argument_list
( "("
true "true"
) ")"
; ";"
expression_statement
call_expression
identifier "update_paint_and_hit_testing_properties_if_needed"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
identifier "range"
= "="
call_expression
field_expression
call_expression
identifier "get_selection"
argument_list
( "("
) ")"
-> "->"
field_identifier "range"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
call_expression
identifier "unsafe_paintable"
argument_list
( "("
) ")"
-> "->"
field_identifier "recompute_selection_states"
argument_list
( "("
pointer_expression
* "*"
identifier "range"
) ")"
; ";"
} "}"
comment "// Collect elements with content-visibility: auto. This is u"...
declaration (+22 nodes collapsed)
expression_statement
call_expression
field_expression
call_expression
identifier "unsafe_paintable"
argument_list
( "("
) ")"
-> "->"
template_method
field_identifier "for_each_in_subtree_of_type"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "Painting"
:: "::"
type_identifier "PaintableBox"
> ">"
argument_list (+99 nodes collapsed)
; ";"
expression_statement
call_expression
field_expression
call_expression
identifier "unsafe_paintable"
argument_list
( "("
) ")"
-> "->"
field_identifier "set_paintable_boxes_with_auto_content_visibility"
argument_list
( "("
call_expression
identifier "move"
argument_list
( "("
identifier "paintable_boxes_with_auto_content_visibility"
) ")"
) ")"
; ";"
expression_statement (+44 nodes collapsed)
if_statement (+44 nodes collapsed)
expression_statement
call_expression
identifier "VERIFY"
argument_list
( "("
call_expression
identifier "layout_is_up_to_date"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
function_definition
primitive_type "bool"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "layout_is_up_to_date"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
binary_expression
unary_expression
! "!"
call_expression
identifier "navigable"
argument_list
( "("
) ")"
|| "||"
binary_expression
call_expression
field_expression
call_expression
identifier "navigable"
argument_list
( "("
) ")"
-> "->"
field_identifier "active_document"
argument_list
( "("
) ")"
!= "!="
this "this"
) ")"
return_statement
return "return"
true "true"
; ";"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "m_layout_root"
) ")"
return_statement
return "return"
false "false"
; ";"
return_statement
return "return"
binary_expression
binary_expression
binary_expression
binary_expression
unary_expression
! "!"
call_expression
field_expression
identifier "m_layout_root"
-> "->"
field_identifier "needs_layout_update"
argument_list
( "("
) ")"
&& "&&"
unary_expression
! "!"
call_expression
identifier "needs_layout_tree_update"
argument_list
( "("
) ")"
&& "&&"
unary_expression
! "!"
call_expression
identifier "child_needs_layout_tree_update"
argument_list
( "("
) ")"
&& "&&"
unary_expression
! "!"
call_expression
identifier "needs_full_layout_tree_update"
argument_list
( "("
) ")"
&& "&&"
call_expression
field_expression
identifier "m_svg_roots_needing_relayout"
. "."
field_identifier "is_empty"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition
attribute_declaration
[[ "[["
attribute
identifier "nodiscard"
]] "]]"
storage_class_specifier
static "static"
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "RequiredInvalidationAfterStyleChange"
function_declarator (+31 nodes collapsed)
compound_statement
{ "{"
declaration (+23 nodes collapsed)
declaration
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "RequiredInvalidationAfterStyleChange"
identifier "invalidation"
; ";"
if_statement (+39 nodes collapsed)
comment "// NOTE: If the current node has `display:none`, we can disr"...
comment "// caused by its children, as they will not be rendere"...
comment "// We will still recompute style for the children, tho"...
declaration
primitive_type "bool"
init_declarator
identifier "is_display_none"
= "="
false "false"
; ";"
declaration
primitive_type "bool"
init_declarator
identifier "did_change_custom_properties"
= "="
false "false"
; ";"
declaration
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "RequiredInvalidationAfterStyleChange"
identifier "node_invalidation"
; ";"
if_statement (+275 nodes collapsed)
if_statement
if "if"
condition_clause
( "("
field_expression
identifier "node_invalidation"
. "."
field_identifier "relayout"
) ")"
expression_statement
call_expression
field_expression
identifier "node"
. "."
field_identifier "set_needs_layout_update"
argument_list
( "("
qualified_identifier
namespace_identifier "SetNeedsLayoutReason"
:: "::"
identifier "StyleChange"
) ")"
; ";"
if_statement (+72 nodes collapsed)
expression_statement
call_expression
field_expression
identifier "node"
. "."
field_identifier "set_needs_style_update"
argument_list
( "("
false "false"
) ")"
; ";"
expression_statement
assignment_expression
identifier "invalidation"
|= "|="
identifier "node_invalidation"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "did_change_custom_properties"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "recompute_elements_depending_on_custom_properties"
= "="
true "true"
; ";"
} "}"
declaration
primitive_type "bool"
init_declarator
identifier "children_need_inherited_style_update"
= "="
unary_expression
! "!"
call_expression
field_expression
identifier "invalidation"
. "."
field_identifier "is_none"
argument_list
( "("
) ")"
; ";"
comment "// NB: When display changes to/from flex/grid/contents, chil"...
comment "// This requires a full style recompute, not just inheri"...
declaration
primitive_type "bool"
init_declarator
identifier "children_need_full_style_recompute"
= "="
field_expression
identifier "node_invalidation"
. "."
field_identifier "rebuild_layout_tree"
; ";"
if_statement (+256 nodes collapsed)
expression_statement
call_expression
field_expression
identifier "node"
. "."
field_identifier "set_child_needs_style_update"
argument_list
( "("
false "false"
) ")"
; ";"
if_statement (+39 nodes collapsed)
return_statement
return "return"
identifier "invalidation"
; ";"
} "}"
function_definition (+428 nodes collapsed)
function_definition (+38 nodes collapsed)
function_definition (+218 nodes collapsed)
function_definition (+117 nodes collapsed)
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "update_paint_and_hit_testing_properties_if_needed"
parameter_list
( "("
) ")"
compound_statement
{ "{"
comment "// NB: Called during paint property resolution."
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
pointer_declarator
* "*"
identifier "paintable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "unsafe_paintable"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
identifier "paintable"
-> "->"
field_identifier "refresh_scroll_state"
argument_list
( "("
) ")"
; ";"
} "}"
if_statement
if "if"
condition_clause
( "("
identifier "m_needs_to_resolve_paint_only_properties"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "m_needs_to_resolve_paint_only_properties"
= "="
false "false"
; ";"
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
pointer_declarator
* "*"
identifier "paintable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "unsafe_paintable"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
identifier "paintable"
-> "->"
field_identifier "resolve_paint_only_properties"
argument_list
( "("
) ")"
; ";"
} "}"
} "}"
if_statement
if "if"
condition_clause
( "("
identifier "m_needs_accumulated_visual_contexts_update"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "m_needs_accumulated_visual_contexts_update"
= "="
false "false"
; ";"
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
pointer_declarator
* "*"
identifier "paintable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "unsafe_paintable"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
identifier "paintable"
-> "->"
field_identifier "assign_accumulated_visual_contexts"
argument_list
( "("
) ")"
; ";"
} "}"
} "}"
} "}"
function_definition (+22 nodes collapsed)
function_definition (+22 nodes collapsed)
function_definition (+22 nodes collapsed)
function_definition (+35 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/semantics.html#met"...
function_definition (+259 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/semantics.html#met"...
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "obtain_theme_color"
parameter_list
( "("
) ")"
compound_statement
{ "{"
declaration
type_identifier "Color"
init_declarator
identifier "theme_color"
= "="
qualified_identifier
namespace_identifier "Color"
:: "::"
identifier "Transparent"
; ";"
comment "// 1. Let candidate elements be the list of all meta element"...
expression_statement
call_expression
template_function
identifier "for_each_in_subtree_of_type"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "HTML"
:: "::"
type_identifier "HTMLMetaElement"
> ">"
argument_list
( "("
lambda_expression
lambda_capture_specifier
[ "["
lambda_default_capture
& "&"
] "]"
abstract_function_declarator
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "HTML"
:: "::"
type_identifier "HTMLMetaElement"
reference_declarator
& "&"
identifier "element"
) ")"
compound_statement
{ "{"
comment "// * the element is in a document tree;"
comment "// * the element has a name attribute, whose value is an"...
comment "// * the element has a content attribute."
comment "// 2. For each element in candidate elements:"
declaration (+22 nodes collapsed)
if_statement
if "if"
condition_clause (+51 nodes collapsed)
compound_statement
{ "{"
comment "// 1. If element has a media attribute and the value of elem"...
declaration (+23 nodes collapsed)
declaration (+22 nodes collapsed)
if_statement (+73 nodes collapsed)
comment "// 2. Let value be the result of stripping leading and trail"...
declaration (+26 nodes collapsed)
comment "// 3. Let color be the result of parsing value."
declaration (+23 nodes collapsed)
comment "// 4. If color is not failure, then return color."
if_statement
if "if"
condition_clause (+23 nodes collapsed)
compound_statement
{ "{"
declaration
qualified_identifier
namespace_identifier "CSS"
:: "::"
type_identifier "ColorResolutionContext"
init_declarator
identifier "color_resolution_context"
initializer_list
{ "{"
} "}"
; ";"
comment "// NB: Called during theme color computation, layout may be "...
if_statement
if "if"
condition_clause
( "("
binary_expression
call_expression
identifier "html_element"
argument_list
( "("
) ")"
&& "&&"
call_expression
field_expression
call_expression
identifier "html_element"
argument_list
( "("
) ")"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
assignment_expression
identifier "color_resolution_context"
= "="
call_expression
qualified_identifier
namespace_identifier "CSS"
:: "::"
qualified_identifier
namespace_identifier "ColorResolutionContext"
:: "::"
identifier "for_layout_node_with_style"
argument_list
( "("
pointer_expression
* "*"
call_expression
field_expression
call_expression
identifier "html_element"
argument_list
( "("
) ")"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
expression_statement (+21 nodes collapsed)
return_statement
return "return"
qualified_identifier
namespace_identifier "TraversalDecision"
:: "::"
identifier "Break"
; ";"
} "}"
} "}"
return_statement
return "return"
qualified_identifier
namespace_identifier "TraversalDecision"
:: "::"
identifier "Continue"
; ";"
} "}"
) ")"
; ";"
comment "// 3. Return nothing(the page has no theme color)."
expression_statement (+29 nodes collapsed)
} "}"
function_definition (+51 nodes collapsed)
function_definition (+45 nodes collapsed)
function_definition
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "Viewport"
type_qualifier
const "const"
pointer_declarator
* "*"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "unsafe_layout_node"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
return_statement
return "return"
call_expression
template_function
identifier "static_cast"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "Viewport"
type_qualifier
const "const"
abstract_pointer_declarator
* "*"
> ">"
argument_list
( "("
call_expression
qualified_identifier
namespace_identifier "Node"
:: "::"
identifier "unsafe_layout_node"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
function_definition
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "Viewport"
pointer_declarator
* "*"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "unsafe_layout_node"
parameter_list
( "("
) ")"
compound_statement
{ "{"
return_statement
return "return"
call_expression
template_function
identifier "static_cast"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "Viewport"
abstract_pointer_declarator
* "*"
> ">"
argument_list
( "("
call_expression
qualified_identifier
namespace_identifier "Node"
:: "::"
identifier "unsafe_layout_node"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
function_definition (+31 nodes collapsed)
function_definition (+160 nodes collapsed)
function_definition
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "Layout"
:: "::"
type_identifier "Node"
> ">"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "highlighted_layout_node"
parameter_list
( "("
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
identifier "m_highlighted_node"
) ")"
return_statement
return "return"
null
nullptr "nullptr"
; ";"
comment "// NB: Called during resolve_paint_properties() inside updat"...
if_statement
if "if"
condition_clause (+25 nodes collapsed)
return_statement
return "return"
call_expression
field_expression
identifier "m_highlighted_node"
-> "->"
field_identifier "unsafe_layout_node"
argument_list
( "("
) ")"
; ";"
declaration (+29 nodes collapsed)
return_statement
return "return"
call_expression
field_expression
identifier "element"
. "."
field_identifier "get_pseudo_element_node"
argument_list
( "("
call_expression
field_expression
identifier "m_highlighted_pseudo_element"
. "."
field_identifier "value"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
function_definition (+159 nodes collapsed)
function_definition (+1021 nodes collapsed)
function_definition (+1476 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+132 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/obsolete.html#dom-"...
function_definition (+81 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/obsolete.html#dom-"...
function_definition (+117 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+100 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+100 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+30 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+137 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+100 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+100 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+95 nodes collapsed)
comment "// https://drafts.csswg.org/css-font-loading/#font-source"
function_definition (+29 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/obsolete.html#dom-"...
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "clear"
parameter_list
( "("
) ")"
compound_statement
{ "{"
comment "// Do nothing"
} "}"
comment "// https://html.spec.whatwg.org/multipage/obsolete.html#dom-"...
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "capture_events"
parameter_list
( "("
) ")"
compound_statement
{ "{"
comment "// Do nothing"
} "}"
comment "// https://html.spec.whatwg.org/multipage/obsolete.html#dom-"...
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "release_events"
parameter_list
( "("
) ")"
compound_statement
{ "{"
comment "// Do nothing"
} "}"
function_definition (+25 nodes collapsed)
function_definition (+25 nodes collapsed)
function_definition (+25 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/webappapis.html#re"...
function_definition (+37 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createelement"
function_definition (+325 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createelementns"
comment "// https://dom.spec.whatwg.org/#internal-createelementns-ste"...
function_definition (+248 nodes collapsed)
function_definition (+46 nodes collapsed)
function_definition (+56 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createcdatasect"...
function_definition (+149 nodes collapsed)
function_definition (+56 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createprocessin"...
function_definition (+162 nodes collapsed)
function_definition (+36 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createevent"
function_definition (+1025 nodes collapsed)
function_definition (+27 nodes collapsed)
function_definition (+65 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+106 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+106 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+106 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-importnode"
function_definition (+124 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#concept-node-adopt"
function_definition (+505 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-adoptnode"
function_definition (+193 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+71 nodes collapsed)
function_definition (+28 nodes collapsed)
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "set_focused_area"
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
identifier "node"
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
binary_expression
identifier "m_focused_area"
== "=="
identifier "node"
) ")"
return_statement
return "return"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
type_identifier "Ptr"
init_declarator
identifier "old_focused_area"
= "="
identifier "m_focused_area"
; ";"
if_statement (+41 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "common_ancestor"
= "="
call_expression
identifier "find_common_ancestor"
argument_list
( "("
identifier "old_focused_area"
, ","
identifier "node"
) ")"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "old_focused_node_root"
= "="
null
nullptr "nullptr"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "new_focused_node_root"
= "="
null
nullptr "nullptr"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "old_focused_area"
) ")"
expression_statement
assignment_expression
identifier "old_focused_node_root"
= "="
call_expression
field_expression
identifier "old_focused_area"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "node"
) ")"
expression_statement
assignment_expression
identifier "new_focused_node_root"
= "="
call_expression
field_expression
identifier "node"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement (+233 nodes collapsed)
expression_statement
assignment_expression
identifier "m_focused_area"
= "="
identifier "node"
; ";"
declaration (+28 nodes collapsed)
if_statement
if "if"
condition_clause
( "("
identifier "new_focused_element"
) ")"
expression_statement
call_expression
field_expression
identifier "new_focused_element"
-> "->"
field_identifier "did_receive_focus"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "reset_cursor_blink_cycle"
argument_list
( "("
) ")"
; ";"
expression_statement
call_expression
identifier "set_needs_display"
argument_list
( "("
) ")"
; ";"
comment "// Scroll the viewport if necessary to make the newly focuse"...
if_statement (+121 nodes collapsed)
expression_statement
call_expression
identifier "update_active_element"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition (+39 nodes collapsed)
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "set_active_element"
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Element"
> ">"
identifier "element"
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
binary_expression
call_expression
field_expression
identifier "m_active_element"
. "."
field_identifier "ptr"
argument_list
( "("
) ")"
== "=="
identifier "element"
) ")"
return_statement
return "return"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
identifier "old_active_element"
= "="
call_expression
identifier "move"
argument_list
( "("
identifier "m_active_element"
) ")"
; ";"
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "common_ancestor"
= "="
call_expression
identifier "find_common_ancestor"
argument_list
( "("
identifier "old_active_element"
, ","
identifier "element"
) ")"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "old_active_node_root"
= "="
null
nullptr "nullptr"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "new_active_node_root"
= "="
null
nullptr "nullptr"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "old_active_element"
) ")"
expression_statement
assignment_expression
identifier "old_active_node_root"
= "="
call_expression
field_expression
identifier "old_active_element"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "element"
) ")"
expression_statement
assignment_expression
identifier "new_active_node_root"
= "="
call_expression
field_expression
identifier "element"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement (+101 nodes collapsed)
expression_statement
assignment_expression
identifier "m_active_element"
= "="
identifier "element"
; ";"
expression_statement
call_expression
identifier "set_needs_display"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "set_target_element"
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Element"
> ">"
identifier "element"
) ")"
compound_statement
{ "{"
if_statement
if "if"
condition_clause
( "("
binary_expression
call_expression
field_expression
identifier "m_target_element"
. "."
field_identifier "ptr"
argument_list
( "("
) ")"
== "=="
identifier "element"
) ")"
return_statement
return "return"
; ";"
declaration (+21 nodes collapsed)
declaration
placeholder_type_specifier
auto "auto"
init_declarator
pointer_declarator
* "*"
identifier "common_ancestor"
= "="
call_expression
identifier "find_common_ancestor"
argument_list
( "("
identifier "old_target_element"
, ","
identifier "element"
) ")"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "old_target_node_root"
= "="
null
nullptr "nullptr"
; ";"
declaration
qualified_identifier
namespace_identifier "GC"
:: "::"
template_type
type_identifier "Ptr"
template_argument_list
< "<"
type_descriptor
type_identifier "Node"
> ">"
init_declarator
identifier "new_target_node_root"
= "="
null
nullptr "nullptr"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "old_target_element"
) ")"
expression_statement
assignment_expression
identifier "old_target_node_root"
= "="
call_expression
field_expression
identifier "old_target_element"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
condition_clause
( "("
identifier "element"
) ")"
expression_statement
assignment_expression
identifier "new_target_node_root"
= "="
call_expression
field_expression
identifier "element"
-> "->"
field_identifier "root"
argument_list
( "("
) ")"
; ";"
if_statement (+101 nodes collapsed)
expression_statement
assignment_expression
identifier "m_target_element"
= "="
identifier "element"
; ";"
expression_statement
call_expression
identifier "set_needs_display"
argument_list
( "("
) ")"
; ";"
} "}"
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+201 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+189 nodes collapsed)
comment "// https://drafts.csswg.org/css-transitions-2/#event-dispatc"...
function_definition (+1383 nodes collapsed)
comment "// https://www.w3.org/TR/css-animations-2/#event-dispatch"
function_definition (+1246 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+258 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+32 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view-1/#scroll-to-the-begi"...
function_definition (+48 nodes collapsed)
function_definition (+88 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#update-th"...
function_definition (+351 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+111 nodes collapsed)
function_definition
type_identifier "Page"
reference_declarator
& "&"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "page"
parameter_list
( "("
) ")"
compound_statement
{ "{"
return_statement
return "return"
identifier "m_page"
; ";"
} "}"
function_definition (+23 nodes collapsed)
function_definition (+53 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+26 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+343 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+214 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+175 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#cookie-av"...
function_definition (+81 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+81 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+81 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+81 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+81 nodes collapsed)
function_definition (+83 nodes collapsed)
function_definition (+81 nodes collapsed)
function_definition (+112 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/semantics.html#has"...
function_definition (+26 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/semantics.html#has"...
function_definition (+110 nodes collapsed)
function_definition
type_identifier "String"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "referrer"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
return_statement
return "return"
identifier "m_referrer"
; ";"
} "}"
function_definition (+27 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+127 nodes collapsed)
function_definition (+47 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/history.html#dom-d"...
function_definition (+59 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#d"...
function_definition (+28 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#d"...
function_definition (+69 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#u"...
function_definition (+144 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view/#run-the-resize-steps"
function_definition (+275 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view-1/#document-run-the-s"...
function_definition (+232 nodes collapsed)
function_definition (+45 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view/#evaluate-media-queri"...
function_definition (+291 nodes collapsed)
function_definition (+241 nodes collapsed)
function_definition (+43 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#d"...
function_definition (+24 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#h"...
function_definition (+222 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#a"...
function_definition (+82 nodes collapsed)
function_definition (+39 nodes collapsed)
function_definition (+31 nodes collapsed)
comment "// https://www.w3.org/TR/xml/#NT-NameStartChar"
function_definition (+256 nodes collapsed)
comment "// https://www.w3.org/TR/xml/#NT-NameChar"
function_definition (+101 nodes collapsed)
comment "// https://www.w3.org/TR/xml/#NT-Name"
function_definition (+137 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createnodeitera"...
function_definition (+67 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createtreewalke"...
function_definition (+67 nodes collapsed)
function_definition (+62 nodes collapsed)
function_definition (+52 nodes collapsed)
function_definition (+60 nodes collapsed)
function_definition (+50 nodes collapsed)
function_definition (+48 nodes collapsed)
function_definition (+56 nodes collapsed)
function_definition (+75 nodes collapsed)
function_definition (+75 nodes collapsed)
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "invalidate_stacking_context_tree"
parameter_list
( "("
) ")"
compound_statement
{ "{"
comment "// NB: Called during stacking context invalidation."
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
pointer_declarator
* "*"
identifier "paintable_box"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "unsafe_paintable_box"
argument_list
( "("
) ")"
) ")"
expression_statement
call_expression
field_expression
identifier "paintable_box"
-> "->"
field_identifier "invalidate_stacking_context"
argument_list
( "("
) ")"
; ";"
} "}"
function_definition (+305 nodes collapsed)
function_definition (+29 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/custom-elements.ht"...
function_definition (+223 nodes collapsed)
function_definition (+51 nodes collapsed)
function_definition (+46 nodes collapsed)
function_definition (+60 nodes collapsed)
function_definition (+51 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/origin.html#dom-do"...
function_definition (+71 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsers.html#is-a"...
function_definition (+358 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsers.html#dom-"...
function_definition (+247 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+25 nodes collapsed)
function_definition (+22 nodes collapsed)
function_definition (+25 nodes collapsed)
function_definition (+84 nodes collapsed)
function_definition (+34 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+137 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+225 nodes collapsed)
function_definition (+61 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+118 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+143 nodes collapsed)
function_definition (+61 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+93 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+200 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+151 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+461 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+32 nodes collapsed)
struct_specifier (+463 nodes collapsed)
; ";"
expression_statement
call_expression
identifier "GC_DEFINE_ALLOCATOR"
argument_list
( "("
identifier "DocumentDestructionState"
) ")"
; ";"
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+381 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+99 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+177 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#active-pa"...
function_definition (+70 nodes collapsed)
function_definition (+46 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+299 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-lifecycle"...
function_definition (+444 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/iframe-embed-objec"...
function_definition (+181 nodes collapsed)
function_definition (+76 nodes collapsed)
function_definition (+29 nodes collapsed)
function_definition (+37 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/scripting.html#app"...
function_definition (+157 nodes collapsed)
function_definition (+199 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createattribute"
function_definition (+112 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#dom-document-createattribute"...
function_definition (+101 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+269 nodes collapsed)
function_definition (+24 nodes collapsed)
function_definition (+28 nodes collapsed)
function_definition (+54 nodes collapsed)
function_definition (+58 nodes collapsed)
function_definition (+53 nodes collapsed)
function_definition (+43 nodes collapsed)
function_definition (+39 nodes collapsed)
function_definition (+66 nodes collapsed)
function_definition (+56 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+44 nodes collapsed)
comment "// https://www.w3.org/TR/intersection-observer/#queue-an-int"...
function_definition (+396 nodes collapsed)
comment "// https://www.w3.org/TR/intersection-observer/#queue-an-int"...
function_definition (+178 nodes collapsed)
comment "// https://www.w3.org/TR/intersection-observer/#compute-the-"...
function_definition (+95 nodes collapsed)
comment "// https://www.w3.org/TR/intersection-observer/#run-the-upda"...
function_definition (+1028 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+573 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/urls-and-fetching."...
function_definition (+41 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/semantics.html#sha"...
function_definition (+1138 nodes collapsed)
function_definition (+51 nodes collapsed)
function_definition (+45 nodes collapsed)
function_definition
qualified_identifier
namespace_identifier "Painting"
:: "::"
type_identifier "ViewportPaintable"
type_qualifier
const "const"
pointer_declarator
* "*"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "unsafe_paintable"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
return_statement
return "return"
call_expression
template_function
identifier "static_cast"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "Painting"
:: "::"
type_identifier "ViewportPaintable"
type_qualifier
const "const"
abstract_pointer_declarator
* "*"
> ">"
argument_list
( "("
call_expression
qualified_identifier
namespace_identifier "Node"
:: "::"
identifier "unsafe_paintable"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
function_definition
qualified_identifier
namespace_identifier "Painting"
:: "::"
type_identifier "ViewportPaintable"
pointer_declarator
* "*"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "unsafe_paintable"
parameter_list
( "("
) ")"
compound_statement
{ "{"
return_statement
return "return"
call_expression
template_function
identifier "static_cast"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "Painting"
:: "::"
type_identifier "ViewportPaintable"
abstract_pointer_declarator
* "*"
> ">"
argument_list
( "("
call_expression
qualified_identifier
namespace_identifier "Node"
:: "::"
identifier "unsafe_paintable"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+136 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+723 nodes collapsed)
function_definition (+43 nodes collapsed)
comment "// https://www.w3.org/TR/web-animations-1/#dom-document-time"...
function_definition (+68 nodes collapsed)
function_definition (+39 nodes collapsed)
function_definition (+39 nodes collapsed)
function_definition (+40 nodes collapsed)
comment "// https://www.w3.org/TR/web-animations-1/#update-animations"...
function_definition (+690 nodes collapsed)
comment "// https://www.w3.org/TR/web-animations-1/#remove-replaced-a"...
function_definition (+948 nodes collapsed)
function_definition (+58 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+108 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+57 nodes collapsed)
function_definition (+170 nodes collapsed)
function_definition (+269 nodes collapsed)
function_definition (+146 nodes collapsed)
function_definition (+176 nodes collapsed)
function_definition (+149 nodes collapsed)
function_definition (+61 nodes collapsed)
function_definition (+125 nodes collapsed)
function_definition (+34 nodes collapsed)
function_definition (+59 nodes collapsed)
function_definition (+70 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/interaction.html#m"...
function_definition (+39 nodes collapsed)
function_definition (+200 nodes collapsed)
function_definition (+87 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view/#dom-document-element"...
function_definition (+315 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view/#dom-document-element"...
function_definition (+409 nodes collapsed)
comment "// https://drafts.csswg.org/cssom-view/#dom-document-scrolli"...
function_definition (+128 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#exposed"
function_definition (+64 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-tree-"...
function_definition (+415 nodes collapsed)
function_definition (+281 nodes collapsed)
function_definition (+118 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#dom-docum"...
function_definition (+255 nodes collapsed)
comment "// https://drafts.csswg.org/resize-observer-1/#calculate-dep"...
function_definition (+68 nodes collapsed)
comment "// https://drafts.csswg.org/resize-observer-1/#gather-active"...
function_definition (+184 nodes collapsed)
comment "// https://drafts.csswg.org/resize-observer-1/#broadcast-act"...
function_definition (+456 nodes collapsed)
comment "// https://drafts.csswg.org/resize-observer-1/#has-active-ob"...
function_definition (+60 nodes collapsed)
comment "// https://drafts.csswg.org/resize-observer-1/#has-skipped-o"...
function_definition (+60 nodes collapsed)
function_definition (+67 nodes collapsed)
function_definition (+179 nodes collapsed)
function_definition (+196 nodes collapsed)
function_definition (+64 nodes collapsed)
function_definition (+144 nodes collapsed)
function_definition (+602 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+44 nodes collapsed)
function_definition (+37 nodes collapsed)
comment "// https://drafts.csswg.org/css-position-4/#add-an-element-t"...
function_definition (+141 nodes collapsed)
comment "// https://drafts.csswg.org/css-position-4/#request-an-eleme"...
function_definition (+114 nodes collapsed)
comment "// https://drafts.csswg.org/css-position-4/#remove-an-elemen"...
function_definition (+83 nodes collapsed)
comment "// https://drafts.csswg.org/css-position-4/#process-top-laye"...
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "process_top_layer_removals"
parameter_list
( "("
) ")"
compound_statement
{ "{"
comment "// 1. For each element el in doc’s pending top layer removal"...
comment "// not rendered, remove el from doc’s top layer and pendi"...
declaration (+32 nodes collapsed)
comment "// NB: Called during top layer processing."
for_range_loop
for "for"
( "("
placeholder_type_specifier
auto "auto"
reference_declarator
& "&"
identifier "element"
: ":"
identifier "m_top_layer_pending_removals"
) ")"
compound_statement
{ "{"
comment "// FIXME: Implement overlay property"
if_statement
if "if"
condition_clause
( "("
unary_expression
! "!"
call_expression
field_expression
identifier "element"
-> "->"
field_identifier "unsafe_paintable"
argument_list
( "("
) ")"
) ")"
compound_statement
{ "{"
expression_statement
call_expression
field_expression
identifier "elements_to_remove"
. "."
field_identifier "append"
argument_list
( "("
identifier "element"
) ")"
; ";"
} "}"
} "}"
for_range_loop (+36 nodes collapsed)
if_statement (+26 nodes collapsed)
} "}"
comment "// https://html.spec.whatwg.org/multipage/popover.html#topmo"...
function_definition (+87 nodes collapsed)
function_definition
primitive_type "void"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "set_needs_to_refresh_scroll_state"
parameter_list
( "("
parameter_declaration
primitive_type "bool"
identifier "b"
) ")"
compound_statement
{ "{"
comment "// NB: Propagating scroll state invalidation."
if_statement
if "if"
condition_clause
( "("
declaration
placeholder_type_specifier
auto "auto"
pointer_declarator
* "*"
identifier "paintable"
= "="
call_expression
field_expression
this "this"
-> "->"
field_identifier "unsafe_paintable"
argument_list
( "("
) ")"
) ")"
expression_statement
call_expression
field_expression
identifier "paintable"
-> "->"
field_identifier "set_needs_to_refresh_scroll_state"
argument_list
( "("
identifier "b"
) ")"
; ";"
} "}"
function_definition (+599 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#document-allow-declarative-s"...
function_definition
primitive_type "bool"
function_declarator
qualified_identifier
namespace_identifier "Document"
:: "::"
identifier "allow_declarative_shadow_roots"
parameter_list
( "("
) ")"
type_qualifier
const "const"
compound_statement
{ "{"
return_statement
return "return"
identifier "m_allow_declarative_shadow_roots"
; ";"
} "}"
function_definition (+39 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#render-bl"...
function_definition (+108 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dom.html#allows-ad"...
function_definition (+39 nodes collapsed)
function_definition (+36 nodes collapsed)
function_definition (+36 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#run-the-fullscreen-st"...
function_definition (+282 nodes collapsed)
function_definition (+50 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#fullscreen-an-element"
function_definition (+270 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#fullscreen-element"
function_definition (+75 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#dom-document-fullscre"...
function_definition (+182 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#dom-document-fullscre"...
function_definition (+28 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#dom-document-fullscre"...
function_definition (+28 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#fully-exit-fullscreen"
function_definition (+198 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#exit-fullscreen"
function_definition (+791 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#unfullscreen-a-docume"...
function_definition (+129 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#simple-fullscreen-doc"...
function_definition (+81 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#collect-documents-to-"...
function_definition (+303 nodes collapsed)
comment "// https://fullscreen.spec.whatwg.org/#unfullscreen-an-eleme"...
function_definition (+90 nodes collapsed)
comment "// https://dom.spec.whatwg.org/#document-allow-declarative-s"...
function_definition (+22 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+117 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/dynamic-markup-ins"...
function_definition (+261 nodes collapsed)
function_definition (+179 nodes collapsed)
function_definition (+238 nodes collapsed)
function_definition (+48 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/document-sequences"...
function_definition (+65 nodes collapsed)
function_definition (+36 nodes collapsed)
function_definition (+41 nodes collapsed)
function_definition (+30 nodes collapsed)
function_definition (+188 nodes collapsed)
function_definition (+87 nodes collapsed)
function_definition (+28 nodes collapsed)
function_definition (+673 nodes collapsed)
function_definition (+57 nodes collapsed)
function_definition (+57 nodes collapsed)
function_definition (+57 nodes collapsed)
comment "// https://html.spec.whatwg.org/multipage/browsing-the-web.h"...
function_definition (+294 nodes collapsed)
comment "// https://w3c.github.io/webappsec-csp/#run-document-csp-ini"...
function_definition (+114 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+37 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+37 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+37 nodes collapsed)
function_definition (+33 nodes collapsed)
function_definition (+37 nodes collapsed)
comment "// https://drafts.csswg.org/css-view-transitions-1/#dom-docu"...
function_definition (+250 nodes collapsed)
comment "// https://drafts.csswg.org/css-view-transitions-1/#perform-"...
function_definition (+100 nodes collapsed)
comment "// https://drafts.csswg.org/css-view-transitions-1/#flush-th"...
function_definition (+50 nodes collapsed)
comment "// https://drafts.csswg.org/css-view-transitions-1/#view-tra"...
function_definition (+179 nodes collapsed)
function_definition (+47 nodes collapsed)
function_definition (+1143 nodes collapsed)
function_definition (+125 nodes collapsed)
function_definition (+434 nodes collapsed)
function_definition (+31 nodes collapsed)
function_definition (+90 nodes collapsed)
function_definition (+130 nodes collapsed)
function_definition (+44 nodes collapsed)
comment "// https://drafts.css-houdini.org/css-properties-values-api/"...
function_definition (+114 nodes collapsed)
function_definition (+110 nodes collapsed)
function_definition (+145 nodes collapsed)
function_definition (+155 nodes collapsed)
function_definition (+892 nodes collapsed)
function_definition (+48 nodes collapsed)
function_definition (+48 nodes collapsed)
function_definition (+48 nodes collapsed)
function_definition (+48 nodes collapsed)
function_definition (+51 nodes collapsed)
function_definition (+51 nodes collapsed)
function_definition (+24 nodes collapsed)
} "}"