Skip to content

Commit 8274331

Browse files
author
Marian-Vasile Laza
committed
Backed out changeset 449fe2d946ea (bug 1783934) for causing mochitest failures on test_animation-type-longhand.html. CLOSED TREE
1 parent 2fdf876 commit 8274331

File tree

12 files changed

+55
-120
lines changed

12 files changed

+55
-120
lines changed

layout/base/nsCSSFrameConstructor.cpp

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2482,8 +2482,8 @@ nsIFrame* nsCSSFrameConstructor::ConstructDocElementFrame(
24822482
} else if (display->mDisplay == StyleDisplay::Flex ||
24832483
display->mDisplay == StyleDisplay::WebkitBox ||
24842484
display->mDisplay == StyleDisplay::Grid ||
2485-
(display->mDisplay == StyleDisplay::MozBox &&
2486-
computedStyle->StyleVisibility()->EmulateMozBoxWithFlex())) {
2485+
(StaticPrefs::layout_css_emulate_moz_box_with_flex() &&
2486+
display->mDisplay == StyleDisplay::MozBox)) {
24872487
auto func = display->mDisplay == StyleDisplay::Grid
24882488
? NS_NewGridContainerFrame
24892489
: NS_NewFlexContainerFrame;
@@ -4236,22 +4236,16 @@ already_AddRefed<ComputedStyle> nsCSSFrameConstructor::BeginBuildingScrollFrame(
42364236

42374237
nsFrameList anonymousList;
42384238

4239+
RefPtr<ComputedStyle> contentStyle = aContentStyle;
4240+
42394241
if (!gfxScrollFrame) {
4240-
const bool useXULScrollFrame = [&] {
4241-
if (aContentStyle->StyleVisibility()->EmulateMozBoxWithFlex()) {
4242-
return false;
4243-
}
4244-
const auto& disp = *aContentStyle->StyleDisplay();
4245-
return disp.DisplayOutside() == StyleDisplayOutside::XUL ||
4246-
disp.DisplayInside() == StyleDisplayInside::MozBox;
4247-
}();
42484242
// Build a XULScrollFrame when the child is a box, otherwise an
42494243
// HTMLScrollFrame
4250-
if (useXULScrollFrame) {
4251-
gfxScrollFrame = NS_NewXULScrollFrame(mPresShell, aContentStyle, aIsRoot);
4244+
const nsStyleDisplay* displayStyle = aContentStyle->StyleDisplay();
4245+
if (displayStyle->IsXULDisplayStyle()) {
4246+
gfxScrollFrame = NS_NewXULScrollFrame(mPresShell, contentStyle, aIsRoot);
42524247
} else {
4253-
gfxScrollFrame =
4254-
NS_NewHTMLScrollFrame(mPresShell, aContentStyle, aIsRoot);
4248+
gfxScrollFrame = NS_NewHTMLScrollFrame(mPresShell, contentStyle, aIsRoot);
42554249
}
42564250

42574251
InitAndRestoreFrame(aState, aContent, aParentFrame, gfxScrollFrame);
@@ -4289,7 +4283,7 @@ already_AddRefed<ComputedStyle> nsCSSFrameConstructor::BeginBuildingScrollFrame(
42894283
ServoStyleSet* styleSet = mPresShell->StyleSet();
42904284
RefPtr<ComputedStyle> scrolledChildStyle =
42914285
styleSet->ResolveInheritingAnonymousBoxStyle(aScrolledPseudo,
4292-
aContentStyle);
4286+
contentStyle);
42934287

42944288
gfxScrollFrame->SetInitialChildList(kPrincipalList, anonymousList);
42954289

@@ -4357,7 +4351,6 @@ void nsCSSFrameConstructor::BuildScrollFrame(nsFrameConstructorState& aState,
43574351

43584352
const nsCSSFrameConstructor::FrameConstructionData*
43594353
nsCSSFrameConstructor::FindDisplayData(const nsStyleDisplay& aDisplay,
4360-
const StyleMozBoxLayout aMozBoxLayout,
43614354
const Element& aElement) {
43624355
static_assert(eParentTypeCount < (1 << (32 - FCDATA_PARENT_TYPE_OFFSET)),
43634356
"Check eParentTypeCount should not overflow");
@@ -4366,8 +4359,7 @@ nsCSSFrameConstructor::FindDisplayData(const nsStyleDisplay& aDisplay,
43664359
// block-level.
43674360
NS_ASSERTION(
43684361
!(aDisplay.IsFloatingStyle() || aDisplay.IsAbsolutelyPositionedStyle()) ||
4369-
aDisplay.IsBlockOutsideStyle() ||
4370-
aDisplay.DisplayOutside() == StyleDisplayOutside::XUL,
4362+
aDisplay.IsBlockOutsideStyle() || aDisplay.IsXULDisplayStyle(),
43714363
"Style system did not apply CSS2.1 section 9.7 fixups");
43724364

43734365
// If this is "body", try propagating its scroll style to the viewport
@@ -4509,7 +4501,7 @@ nsCSSFrameConstructor::FindDisplayData(const nsStyleDisplay& aDisplay,
45094501
// fall through (except for scrollcorners which have to be XUL becuase
45104502
// their parent reflows them with BoxReflow() which means they have to get
45114503
// actual-XUL frames).
4512-
if (aMozBoxLayout == StyleMozBoxLayout::Legacy ||
4504+
if (!StaticPrefs::layout_css_emulate_moz_box_with_flex() ||
45134505
aElement.IsXULElement(nsGkAtoms::scrollcorner)) {
45144506
static constexpr FrameConstructionData data =
45154507
SCROLLABLE_ABSPOS_CONTAINER_XUL_FCDATA(NS_NewBoxFrame);
@@ -5349,7 +5341,6 @@ nsCSSFrameConstructor::FindElementData(const Element& aElement,
53495341
return &sImgData;
53505342
}
53515343

5352-
const auto boxLayout = aStyle.StyleVisibility()->mMozBoxLayout;
53535344
const bool shouldBlockify = aFlags.contains(ItemFlag::IsForRenderedLegend) ||
53545345
aFlags.contains(ItemFlag::IsForOutsideMarker);
53555346
if (shouldBlockify && !aStyle.StyleDisplay()->IsBlockOutsideStyle()) {
@@ -5359,11 +5350,11 @@ nsCSSFrameConstructor::FindElementData(const Element& aElement,
53595350
uint16_t rawDisplayValue =
53605351
Servo_ComputedValues_BlockifiedDisplay(&aStyle, isRootElement);
53615352
display.mDisplay = StyleDisplay(rawDisplayValue);
5362-
return FindDisplayData(display, boxLayout, aElement);
5353+
return FindDisplayData(display, aElement);
53635354
}
53645355

53655356
const auto& display = *aStyle.StyleDisplay();
5366-
return FindDisplayData(display, boxLayout, aElement);
5357+
return FindDisplayData(display, aElement);
53675358
}
53685359

53695360
const nsCSSFrameConstructor::FrameConstructionData*

layout/base/nsCSSFrameConstructor.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1571,7 +1571,6 @@ class nsCSSFrameConstructor final : public nsFrameManager {
15711571
// Not static because it does PropagateScrollToViewport. If this
15721572
// changes, make this static.
15731573
const FrameConstructionData* FindDisplayData(const nsStyleDisplay&,
1574-
mozilla::StyleMozBoxLayout,
15751574
const Element&);
15761575

15771576
/**

layout/reftests/box/flex-emulation-1-notref.xhtml

Lines changed: 0 additions & 23 deletions
This file was deleted.

layout/reftests/box/flex-emulation-1.xhtml

Lines changed: 0 additions & 19 deletions
This file was deleted.

layout/reftests/box/reftest.list

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
== chrome://reftest/content/box/box-as-grid-or-flex-item-1.html chrome://reftest/content/box/box-as-grid-or-flex-item-1-ref.html
2-
!= chrome://reftest/content/box/flex-emulation-1.xhtml chrome://reftest/content/box/flex-emulation-1-notref.xhtml
32

43
== flexbox-abspos-container-1a.html flexbox-abspos-container-1-ref.html
54
== flexbox-abspos-container-1b.html flexbox-abspos-container-1-ref.html

layout/style/ServoBindings.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,6 @@ rusty-enums = [
147147
"mozilla::StyleTopLayer",
148148
"mozilla::StyleIsolation",
149149
"mozilla::StyleTextOrientation",
150-
"mozilla::StyleMozBoxLayout",
151150
"mozilla::StyleTableLayout",
152151
"mozilla::StyleEmptyCells",
153152
"nsStyleImageType",

layout/style/nsStyleConsts.h

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -559,19 +559,13 @@ enum class StyleTextSizeAdjust : uint8_t {
559559
Auto,
560560
};
561561

562-
// See nsStyleVisibility
562+
// See nsStyleText
563563
enum class StyleTextOrientation : uint8_t {
564564
Mixed,
565565
Upright,
566566
Sideways,
567567
};
568568

569-
// Whether to emulate -moz-box with flex. See nsStyleVisibility
570-
enum class StyleMozBoxLayout : uint8_t {
571-
Legacy,
572-
Flex,
573-
};
574-
575569
// See nsStyleText
576570
#define NS_STYLE_TEXT_COMBINE_UPRIGHT_NONE 0
577571
#define NS_STYLE_TEXT_COMBINE_UPRIGHT_ALL 1

layout/style/nsStyleStruct.cpp

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2703,7 +2703,6 @@ nsStyleVisibility::nsStyleVisibility(const Document& aDocument)
27032703
mImageRendering(StyleImageRendering::Auto),
27042704
mWritingMode(StyleWritingModeProperty::HorizontalTb),
27052705
mTextOrientation(StyleTextOrientation::Mixed),
2706-
mMozBoxLayout(StyleMozBoxLayout::Legacy),
27072706
mPrintColorAdjust(StylePrintColorAdjust::Economy) {
27082707
MOZ_COUNT_CTOR(nsStyleVisibility);
27092708
}
@@ -2715,7 +2714,6 @@ nsStyleVisibility::nsStyleVisibility(const nsStyleVisibility& aSource)
27152714
mImageRendering(aSource.mImageRendering),
27162715
mWritingMode(aSource.mWritingMode),
27172716
mTextOrientation(aSource.mTextOrientation),
2718-
mMozBoxLayout(aSource.mMozBoxLayout),
27192717
mPrintColorAdjust(aSource.mPrintColorAdjust) {
27202718
MOZ_COUNT_CTOR(nsStyleVisibility);
27212719
}
@@ -2725,39 +2723,39 @@ nsChangeHint nsStyleVisibility::CalcDifference(
27252723
nsChangeHint hint = nsChangeHint(0);
27262724

27272725
if (mDirection != aNewData.mDirection ||
2728-
mWritingMode != aNewData.mWritingMode ||
2729-
mMozBoxLayout != aNewData.mMozBoxLayout) {
2726+
mWritingMode != aNewData.mWritingMode) {
27302727
// It's important that a change in mWritingMode results in frame
27312728
// reconstruction, because it may affect intrinsic size (see
27322729
// nsSubDocumentFrame::GetIntrinsicISize/BSize).
27332730
// Also, the used writing-mode value is now a field on nsIFrame and some
27342731
// classes (e.g. table rows/cells) copy their value from an ancestor.
2735-
return nsChangeHint_ReconstructFrame;
2736-
}
2737-
if (mImageOrientation != aNewData.mImageOrientation) {
2738-
hint |= nsChangeHint_AllReflowHints | nsChangeHint_RepaintFrame;
2739-
}
2740-
if (mVisible != aNewData.mVisible) {
2741-
if (mVisible == StyleVisibility::Visible ||
2742-
aNewData.mVisible == StyleVisibility::Visible) {
2743-
hint |= nsChangeHint_VisibilityChange;
2732+
hint |= nsChangeHint_ReconstructFrame;
2733+
} else {
2734+
if ((mImageOrientation != aNewData.mImageOrientation)) {
2735+
hint |= nsChangeHint_AllReflowHints | nsChangeHint_RepaintFrame;
27442736
}
2745-
if (StyleVisibility::Collapse == mVisible ||
2746-
StyleVisibility::Collapse == aNewData.mVisible) {
2737+
if (mVisible != aNewData.mVisible) {
2738+
if (mVisible == StyleVisibility::Visible ||
2739+
aNewData.mVisible == StyleVisibility::Visible) {
2740+
hint |= nsChangeHint_VisibilityChange;
2741+
}
2742+
if (StyleVisibility::Collapse == mVisible ||
2743+
StyleVisibility::Collapse == aNewData.mVisible) {
2744+
hint |= NS_STYLE_HINT_REFLOW;
2745+
} else {
2746+
hint |= NS_STYLE_HINT_VISUAL;
2747+
}
2748+
}
2749+
if (mTextOrientation != aNewData.mTextOrientation) {
27472750
hint |= NS_STYLE_HINT_REFLOW;
2748-
} else {
2749-
hint |= NS_STYLE_HINT_VISUAL;
27502751
}
2751-
}
2752-
if (mTextOrientation != aNewData.mTextOrientation) {
2753-
hint |= NS_STYLE_HINT_REFLOW;
2754-
}
2755-
if (mImageRendering != aNewData.mImageRendering) {
2756-
hint |= nsChangeHint_RepaintFrame;
2757-
}
2758-
if (mPrintColorAdjust != aNewData.mPrintColorAdjust) {
2759-
// color-adjust only affects media where dynamic changes can't happen.
2760-
hint |= nsChangeHint_NeutralChange;
2752+
if (mImageRendering != aNewData.mImageRendering) {
2753+
hint |= nsChangeHint_RepaintFrame;
2754+
}
2755+
if (mPrintColorAdjust != aNewData.mPrintColorAdjust) {
2756+
// color-adjust only affects media where dynamic changes can't happen.
2757+
hint |= nsChangeHint_NeutralChange;
2758+
}
27612759
}
27622760
return hint;
27632761
}

layout/style/nsStyleStruct.h

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1106,7 +1106,6 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleVisibility {
11061106
mozilla::StyleImageRendering mImageRendering;
11071107
mozilla::StyleWritingModeProperty mWritingMode;
11081108
mozilla::StyleTextOrientation mTextOrientation;
1109-
mozilla::StyleMozBoxLayout mMozBoxLayout;
11101109
mozilla::StylePrintColorAdjust mPrintColorAdjust;
11111110

11121111
bool IsVisible() const {
@@ -1117,10 +1116,6 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleVisibility {
11171116
return mVisible == mozilla::StyleVisibility::Visible ||
11181117
mVisible == mozilla::StyleVisibility::Collapse;
11191118
}
1120-
1121-
bool EmulateMozBoxWithFlex() const {
1122-
return mMozBoxLayout == mozilla::StyleMozBoxLayout::Flex;
1123-
}
11241119
};
11251120

11261121
namespace mozilla {
@@ -1445,6 +1440,16 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleDisplay {
14451440
return IsInnerTableStyle() && mozilla::StyleDisplay::TableCell != mDisplay;
14461441
}
14471442

1443+
bool IsXULDisplayStyle() const {
1444+
// -moz-{inline-}box is XUL, unless we're emulating it with flexbox.
1445+
if (!mozilla::StaticPrefs::layout_css_emulate_moz_box_with_flex() &&
1446+
DisplayInside() == mozilla::StyleDisplayInside::MozBox) {
1447+
return true;
1448+
}
1449+
1450+
return DisplayOutside() == mozilla::StyleDisplayOutside::XUL;
1451+
}
1452+
14481453
bool IsFloatingStyle() const { return mozilla::StyleFloat::None != mFloat; }
14491454

14501455
bool IsPositionedStyle() const {

modules/libpref/init/StaticPrefList.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7784,6 +7784,12 @@
77847784
value: true
77857785
mirror: always
77867786

7787+
# Are we emulating -moz-{inline}-box layout using CSS flexbox?
7788+
- name: layout.css.emulate-moz-box-with-flex
7789+
type: bool
7790+
value: false
7791+
mirror: always
7792+
77877793
# Is support for fit-content() enabled?
77887794
- name: layout.css.fit-content-function.enabled
77897795
type: RelaxedAtomicBool

servo/components/style/properties/longhands/inherited_box.mako.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,6 @@ ${helpers.single_keyword(
4646
servo_restyle_damage="rebuild_and_reflow",
4747
)}
4848

49-
${helpers.single_keyword(
50-
"-moz-box-layout",
51-
"legacy flex",
52-
engines="gecko",
53-
gecko_enum_prefix="StyleMozBoxLayout",
54-
animation_value_type="none",
55-
enabled_in="chrome",
56-
spec="None (internal)",
57-
)}
58-
5949
${helpers.single_keyword(
6050
"text-orientation",
6151
"mixed upright sideways",

toolkit/content/xul.css

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,6 @@ iframe {
151151
}
152152

153153
@supports -moz-bool-pref("layout.css.emulate-moz-box-with-flex") {
154-
:root {
155-
-moz-box-layout: flex;
156-
}
157-
158154
browser,
159155
editor,
160156
iframe {

0 commit comments

Comments
 (0)