From bee4df7bfb9ace63e92d0172a8323b67cd7efa8b Mon Sep 17 00:00:00 2001 From: Luke Wilde Date: Sun, 6 Nov 2022 23:50:59 +0000 Subject: [PATCH] LibWeb: Skip hit testing a line box fragment if it has no container The container appears to be null for certain elements such as the "update your browser" box when clicking on the document during certain parts of loading. Skipping it works fine, but should obviously be fixed, so it prints a debug output when this happens. --- Userland/Libraries/LibWeb/Painting/PaintableBox.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp b/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp index 12e19ea2fd..3107927bb6 100644 --- a/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp +++ b/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp @@ -673,6 +673,10 @@ Optional PaintableWithLines::hit_test(Gfx::FloatPoint const& posi for (auto& fragment : line_box.fragments()) { if (is(fragment.layout_node()) && static_cast(fragment.layout_node()).paint_box()->stacking_context()) continue; + if (!fragment.layout_node().containing_block()) { + dbgln("FIXME: PaintableWithLines::hit_test(): Missing containing block on {}", fragment.layout_node().debug_description()); + continue; + } auto fragment_absolute_rect = fragment.absolute_rect(); if (fragment_absolute_rect.contains(position)) { if (is(fragment.layout_node()) && fragment.layout_node().paintable())