Bug 1507244 Part 1 - Add block formatting context bits for column-span in nsBlockFrame::Init(). r=dbaron

That's the common place where the bits are added.

Differential Revision: https://phabricator.services.mozilla.com/D13596

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Ting-Yu Lin 2018-12-17 18:41:01 +00:00
parent b13992b643
commit 122e7483c6
2 changed files with 5 additions and 9 deletions

View File

@ -10490,14 +10490,6 @@ void nsCSSFrameConstructor::ConstructBlock(
// No need to create column hierarchy. Initialize block frame.
blockFrame->SetComputedStyleWithoutNotification(aComputedStyle);
InitAndRestoreFrame(aState, aContent, aParentFrame, blockFrame);
if (StaticPrefs::layout_css_column_span_enabled()) {
if (blockFrame->IsColumnSpan()) {
// Per spec, a column-span always establishes a new block formatting
// context.
blockFrame->AddStateBits(NS_BLOCK_FORMATTING_CONTEXT_STATE_BITS);
}
}
}
aState.AddChild(*aNewFrame, aFrameItems, aContent,

View File

@ -6717,12 +6717,16 @@ void nsBlockFrame::Init(nsIContent* aContent, nsContainerFrame* aParent,
// If the box is a block container, then it establishes a new block
// formatting context.
// (http://dev.w3.org/csswg/css-writing-modes/#block-flow)
//
// If the box has contain: paint or contain:layout (or contain:strict),
// then it should also establish a formatting context.
//
// Per spec, a column-span always establishes a new block formatting context.
if (StyleDisplay()->mDisplay == mozilla::StyleDisplay::FlowRoot ||
(GetParent() && StyleVisibility()->mWritingMode !=
GetParent()->StyleVisibility()->mWritingMode) ||
StyleDisplay()->IsContainPaint() || StyleDisplay()->IsContainLayout()) {
StyleDisplay()->IsContainPaint() || StyleDisplay()->IsContainLayout() ||
(StaticPrefs::layout_css_column_span_enabled() && IsColumnSpan())) {
AddStateBits(NS_BLOCK_FORMATTING_CONTEXT_STATE_BITS);
}