Add trace logs when assigning inline/block sizes

This commit is contained in:
Wu Yu Wei 2022-04-17 16:18:32 +08:00
parent a80b962f56
commit b978f83e52
7 changed files with 68 additions and 8 deletions

View file

@ -1994,6 +1994,7 @@ impl BlockFlow {
"block" "block"
} }
); );
trace!("BlockFlow before assigning: {:?}", &self);
self.base.floats = Floats::new(self.base.writing_mode); self.base.floats = Floats::new(self.base.writing_mode);
@ -2003,7 +2004,9 @@ impl BlockFlow {
// Now compute the real value. // Now compute the real value.
self.propagate_and_compute_used_inline_size(shared_context); self.propagate_and_compute_used_inline_size(shared_context);
self.guess_inline_size_for_block_formatting_context_if_necessary() self.guess_inline_size_for_block_formatting_context_if_necessary();
trace!("BlockFlow after assigning: {:?}", &self);
} }
/// If this is the root flow, initialize values that would normally be set by the parent. /// If this is the root flow, initialize values that would normally be set by the parent.
@ -2304,25 +2307,32 @@ impl Flow for BlockFlow {
self.base.flags.contains(FlowFlags::MARGINS_CANNOT_COLLAPSE) self.base.flags.contains(FlowFlags::MARGINS_CANNOT_COLLAPSE)
{ {
// Root element margins should never be collapsed according to CSS § 8.3.1. // Root element margins should never be collapsed according to CSS § 8.3.1.
debug!("{}", self.is_root());
debug!( debug!(
"assign_block_size: assigning block_size for root flow {:?}", "assign_block_size: assigning block_size for root flow {:#x?}",
self.base().debug_id() self.base().debug_id()
); );
self.assign_block_size_block_base( trace!("BlockFlow before assigning: {:?}", &self);
let flow = self.assign_block_size_block_base(
layout_context, layout_context,
fragmentation_context, fragmentation_context,
MarginsMayCollapseFlag::MarginsMayNotCollapse, MarginsMayCollapseFlag::MarginsMayNotCollapse,
) );
trace!("BlockFlow after assigning: {:?}", &self);
flow
} else { } else {
debug!( debug!(
"assign_block_size: assigning block_size for block {:?}", "assign_block_size: assigning block_size for block {:#x?}",
self.base().debug_id() self.base().debug_id()
); );
self.assign_block_size_block_base( trace!("BlockFlow before assigning: {:?}", &self);
let flow = self.assign_block_size_block_base(
layout_context, layout_context,
fragmentation_context, fragmentation_context,
MarginsMayCollapseFlag::MarginsMayCollapse, MarginsMayCollapseFlag::MarginsMayCollapse,
) );
trace!("BlockFlow after assigning: {:?}", &self);
flow
} }
} }

View file

@ -84,6 +84,8 @@ impl Flow for MulticolFlow {
"assign_inline_sizes({}): assigning inline_size for flow", "assign_inline_sizes({}): assigning inline_size for flow",
"multicol" "multicol"
); );
trace!("MulticolFlow before assigning: {:?}", &self);
let shared_context = layout_context.shared_context(); let shared_context = layout_context.shared_context();
self.block_flow.compute_inline_sizes(shared_context); self.block_flow.compute_inline_sizes(shared_context);
@ -146,10 +148,13 @@ impl Flow for MulticolFlow {
column_width, column_width,
|_, _, _, _, _, _| {}, |_, _, _, _, _, _| {},
); );
trace!("MulticolFlow after assigning: {:?}", &self);
} }
fn assign_block_size(&mut self, ctx: &LayoutContext) { fn assign_block_size(&mut self, ctx: &LayoutContext) {
debug!("assign_block_size: assigning block_size for multicol"); debug!("assign_block_size: assigning block_size for multicol");
trace!("MulticolFlow before assigning: {:?}", &self);
let fragmentation_context = Some(FragmentationContext { let fragmentation_context = Some(FragmentationContext {
this_fragment_is_empty: true, this_fragment_is_empty: true,
@ -193,6 +198,8 @@ impl Flow for MulticolFlow {
None => break, None => break,
}; };
} }
trace!("MulticolFlow after assigning: {:?}", &self);
} }
fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) { fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) {
@ -289,12 +296,19 @@ impl Flow for MulticolColumnFlow {
"assign_inline_sizes({}): assigning inline_size for flow", "assign_inline_sizes({}): assigning inline_size for flow",
"multicol column" "multicol column"
); );
trace!("MulticolFlow before assigning: {:?}", &self);
self.block_flow.assign_inline_sizes(layout_context); self.block_flow.assign_inline_sizes(layout_context);
trace!("MulticolFlow after assigning: {:?}", &self);
} }
fn assign_block_size(&mut self, ctx: &LayoutContext) { fn assign_block_size(&mut self, ctx: &LayoutContext) {
debug!("assign_block_size: assigning block_size for multicol column"); debug!("assign_block_size: assigning block_size for multicol column");
trace!("MulticolFlow before assigning: {:?}", &self);
self.block_flow.assign_block_size(ctx); self.block_flow.assign_block_size(ctx);
trace!("MulticolFlow after assigning: {:?}", &self);
} }
fn fragment( fn fragment(

View file

@ -419,6 +419,7 @@ impl Flow for TableFlow {
"assign_inline_sizes({}): assigning inline_size for flow", "assign_inline_sizes({}): assigning inline_size for flow",
"table" "table"
); );
trace!("TableFlow before assigning: {:?}", &self);
let shared_context = layout_context.shared_context(); let shared_context = layout_context.shared_context();
// The position was set to the containing block by the flow's parent. // The position was set to the containing block by the flow's parent.
@ -544,13 +545,19 @@ impl Flow for TableFlow {
} }
}, },
); );
trace!("TableFlow after assigning: {:?}", &self);
} }
fn assign_block_size(&mut self, lc: &LayoutContext) { fn assign_block_size(&mut self, lc: &LayoutContext) {
debug!("assign_block_size: assigning block_size for table"); debug!("assign_block_size: assigning block_size for table");
trace!("TableFlow before assigning: {:?}", &self);
let vertical_spacing = self.spacing().vertical(); let vertical_spacing = self.spacing().vertical();
self.block_flow self.block_flow
.assign_block_size_for_table_like_flow(vertical_spacing, lc) .assign_block_size_for_table_like_flow(vertical_spacing, lc);
trace!("TableFlow after assigning: {:?}", &self);
} }
fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) { fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) {

View file

@ -57,12 +57,20 @@ impl Flow for TableCaptionFlow {
"assign_inline_sizes({}): assigning inline_size for flow", "assign_inline_sizes({}): assigning inline_size for flow",
"table_caption" "table_caption"
); );
trace!("TableCaptionFlow before assigning: {:?}", &self);
self.block_flow.assign_inline_sizes(layout_context); self.block_flow.assign_inline_sizes(layout_context);
trace!("TableCaptionFlow after assigning: {:?}", &self);
} }
fn assign_block_size(&mut self, layout_context: &LayoutContext) { fn assign_block_size(&mut self, layout_context: &LayoutContext) {
debug!("assign_block_size: assigning block_size for table_caption"); debug!("assign_block_size: assigning block_size for table_caption");
trace!("TableCaptionFlow before assigning: {:?}", &self);
self.block_flow.assign_block_size(layout_context); self.block_flow.assign_block_size(layout_context);
trace!("TableCaptionFlow after assigning: {:?}", &self);
} }
fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) { fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) {

View file

@ -252,6 +252,7 @@ impl Flow for TableCellFlow {
"assign_inline_sizes({}): assigning inline_size for flow", "assign_inline_sizes({}): assigning inline_size for flow",
"table_cell" "table_cell"
); );
trace!("TableCellFlow before assigning: {:?}", &self);
let shared_context = layout_context.shared_context(); let shared_context = layout_context.shared_context();
// The position was set to the column inline-size by the parent flow, table row flow. // The position was set to the column inline-size by the parent flow, table row flow.
@ -280,11 +281,17 @@ impl Flow for TableCellFlow {
content_inline_size, content_inline_size,
|_, _, _, _, _, _| {}, |_, _, _, _, _, _| {},
); );
trace!("TableCellFlow after assigning: {:?}", &self);
} }
fn assign_block_size(&mut self, layout_context: &LayoutContext) { fn assign_block_size(&mut self, layout_context: &LayoutContext) {
debug!("assign_block_size: assigning block_size for table_cell"); debug!("assign_block_size: assigning block_size for table_cell");
trace!("TableCellFlow before assigning: {:?}", &self);
self.assign_block_size_table_cell_base(layout_context); self.assign_block_size_table_cell_base(layout_context);
trace!("TableCellFlow after assigning: {:?}", &self);
} }
fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) { fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) {

View file

@ -138,6 +138,7 @@ impl Flow for TableRowGroupFlow {
"assign_inline_sizes({}): assigning inline_size for flow", "assign_inline_sizes({}): assigning inline_size for flow",
"table_rowgroup" "table_rowgroup"
); );
trace!("TableRowGroupFlow before assigning: {:?}", &self);
let shared_context = layout_context.shared_context(); let shared_context = layout_context.shared_context();
// The position was set to the containing block by the flow's parent. // The position was set to the containing block by the flow's parent.
@ -184,12 +185,18 @@ impl Flow for TableRowGroupFlow {
} }
}, },
); );
trace!("TableRowGroupFlow after assigning: {:?}", &self);
} }
fn assign_block_size(&mut self, lc: &LayoutContext) { fn assign_block_size(&mut self, lc: &LayoutContext) {
debug!("assign_block_size: assigning block_size for table_rowgroup"); debug!("assign_block_size: assigning block_size for table_rowgroup");
trace!("TableRowGroupFlow before assigning: {:?}", &self);
self.block_flow self.block_flow
.assign_block_size_for_table_like_flow(self.spacing.vertical(), lc); .assign_block_size_for_table_like_flow(self.spacing.vertical(), lc);
trace!("TableRowGroupFlow after assigning: {:?}", &self);
} }
fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) { fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) {

View file

@ -371,6 +371,7 @@ impl Flow for TableWrapperFlow {
"table_wrapper" "table_wrapper"
} }
); );
trace!("TableWrapperFlow before assigning: {:?}", &self);
let shared_context = layout_context.shared_context(); let shared_context = layout_context.shared_context();
self.block_flow self.block_flow
@ -454,16 +455,22 @@ impl Flow for TableWrapperFlow {
) )
}, },
} }
trace!("TableWrapperFlow after assigning: {:?}", &self);
} }
fn assign_block_size(&mut self, layout_context: &LayoutContext) { fn assign_block_size(&mut self, layout_context: &LayoutContext) {
debug!("assign_block_size: assigning block_size for table_wrapper"); debug!("assign_block_size: assigning block_size for table_wrapper");
trace!("TableWrapperFlow before assigning: {:?}", &self);
let remaining = self.block_flow.assign_block_size_block_base( let remaining = self.block_flow.assign_block_size_block_base(
layout_context, layout_context,
None, None,
MarginsMayCollapseFlag::MarginsMayNotCollapse, MarginsMayCollapseFlag::MarginsMayNotCollapse,
); );
debug_assert!(remaining.is_none()); debug_assert!(remaining.is_none());
trace!("TableWrapperFlow after assigning: {:?}", &self);
} }
fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) { fn compute_stacking_relative_position(&mut self, layout_context: &LayoutContext) {