Quellcode durchsuchen

LibWeb: Log a FIXME when encountering an unexpected block-level box

I've seen a crash when trying to verify_cast some block-level box to a
BlockContainer when it's actually something else.

This patch adds a debug log message so we can learn more about it next
time it happens somewhere.
Andreas Kling vor 1 Jahr
Ursprung
Commit
34954f49b6
1 geänderte Dateien mit 5 neuen und 0 gelöschten Zeilen
  1. 5 0
      Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp

+ 5 - 0
Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp

@@ -623,6 +623,11 @@ void BlockFormattingContext::layout_block_level_box(Box const& box, BlockContain
 
     auto independent_formatting_context = create_independent_formatting_context_if_needed(m_state, box);
 
+    if (!independent_formatting_context && !is<BlockContainer>(box)) {
+        dbgln("FIXME: Block-level box is not BlockContainer but does not create formatting context: {}", box.debug_description());
+        return;
+    }
+
     m_margin_state.update_block_waiting_for_final_y_position();
     CSSPixels margin_top = m_margin_state.current_collapsed_margin();