mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 09:15:35 +00:00
Bug 1613380 - Use FlexboxAxisTracker's main axis to initialize strut FlexItem's mMainAxis. r=dholbert
Annotate optiontext.html for Android as slightly fuzzy, to account for reftest rebucketing fuzzy-failure fallout. It has 0 in the lower bound of the fuzzy annotation because not every Android has this fuzzy-failure. Meanwhile, bug453105.html no longer fails due to reftest rebucketing, so I remove its fuzzy annotation. Differential Revision: https://phabricator.services.mozilla.com/D61877 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
2b24c55e89
commit
c26c7aeb90
@ -1,5 +1,5 @@
|
||||
fuzzy-if(Android,0-4,0-1) == bug453105.html bug453105-ref.html # bug 1600534
|
||||
== optiontext.html optiontext-ref.html
|
||||
== bug453105.html bug453105-ref.html
|
||||
fuzzy-if(Android,0-4,0-1) == optiontext.html optiontext-ref.html
|
||||
== bug456008.xhtml bug456008-ref.html
|
||||
fuzzy-if(skiaContent,0-2,0-3) == bug439965.html bug439965-ref.html
|
||||
== bug427779.xml bug427779-ref.xml
|
||||
|
@ -415,7 +415,8 @@ class nsFlexContainerFrame::FlexItem : public LinkedListElement<FlexItem> {
|
||||
// we'll use on this FlexItem instead of the child frame's real writing mode.
|
||||
// This is fine - it doesn't matter what writing mode we use for a
|
||||
// strut, since it won't render any content and we already know its size.)
|
||||
FlexItem(nsIFrame* aChildFrame, nscoord aCrossSize, WritingMode aContainerWM);
|
||||
FlexItem(nsIFrame* aChildFrame, nscoord aCrossSize, WritingMode aContainerWM,
|
||||
const FlexboxAxisTracker& aAxisTracker);
|
||||
|
||||
// Accessors
|
||||
nsIFrame* Frame() const { return mFrame; }
|
||||
@ -827,7 +828,7 @@ class nsFlexContainerFrame::FlexItem : public LinkedListElement<FlexItem> {
|
||||
const WritingMode mCBWM;
|
||||
|
||||
// The flex container's main axis in flex container's writing mode.
|
||||
const LogicalAxis mMainAxis = eLogicalAxisInline;
|
||||
const LogicalAxis mMainAxis;
|
||||
|
||||
// Stored in flex container's writing mode.
|
||||
const LogicalMargin mBorderPadding;
|
||||
@ -2011,10 +2012,12 @@ FlexItem::FlexItem(ReflowInput& aFlexItemReflowInput, float aFlexGrow,
|
||||
// with visibility:collapse. The strut has 0 main-size, and it only exists to
|
||||
// impose a minimum cross size on whichever FlexLine it ends up in.
|
||||
FlexItem::FlexItem(nsIFrame* aChildFrame, nscoord aCrossSize,
|
||||
WritingMode aContainerWM)
|
||||
WritingMode aContainerWM,
|
||||
const FlexboxAxisTracker& aAxisTracker)
|
||||
: mFrame(aChildFrame),
|
||||
mWM(aContainerWM),
|
||||
mCBWM(aContainerWM),
|
||||
mMainAxis(aAxisTracker.MainAxis()),
|
||||
mBorderPadding(mCBWM),
|
||||
mMargin(mCBWM),
|
||||
mCrossSize(aCrossSize),
|
||||
@ -3796,13 +3799,14 @@ void nsFlexContainerFrame::GenerateFlexLines(
|
||||
childFrame->StyleVisibility()->mVisible)) {
|
||||
// Legacy visibility:collapse behavior: make a 0-sized strut. (No need to
|
||||
// bother with aStruts and remembering cross size.)
|
||||
item = MakeUnique<FlexItem>(childFrame, 0, aReflowInput.GetWritingMode());
|
||||
item = MakeUnique<FlexItem>(childFrame, 0, aReflowInput.GetWritingMode(),
|
||||
aAxisTracker);
|
||||
} else if (nextStrutIdx < aStruts.Length() &&
|
||||
aStruts[nextStrutIdx].mItemIdx == itemIdxInContainer) {
|
||||
// Use the simplified "strut" FlexItem constructor:
|
||||
item = MakeUnique<FlexItem>(childFrame,
|
||||
aStruts[nextStrutIdx].mStrutCrossSize,
|
||||
aReflowInput.GetWritingMode());
|
||||
aReflowInput.GetWritingMode(), aAxisTracker);
|
||||
nextStrutIdx++;
|
||||
} else {
|
||||
item = GenerateFlexItemForChild(aPresContext, childFrame, aReflowInput,
|
||||
|
8
layout/reftests/bugs/1613380-ref.html
Normal file
8
layout/reftests/bugs/1613380-ref.html
Normal file
@ -0,0 +1,8 @@
|
||||
<!DOCTYPE html>
|
||||
<style>
|
||||
.item { background: pink; margin-top: auto}
|
||||
</style>
|
||||
<div style="display:flex; flex-direction: column;
|
||||
height: 100px; border: 1px solid black">
|
||||
<div class="item">This text should be bottom-aligned</div>
|
||||
</div>
|
13
layout/reftests/bugs/1613380.html
Normal file
13
layout/reftests/bugs/1613380.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<style>
|
||||
.item { background: pink; margin-top: auto}
|
||||
.strut {
|
||||
visibility: collapse;
|
||||
margin-left: auto; /* This should have no effect (but it does!) */
|
||||
}
|
||||
</style>
|
||||
<div style="display:flex; flex-direction: column;
|
||||
height: 100px; border: 1px solid black">
|
||||
<div class="item">This text should be bottom-aligned</div>
|
||||
<div class="strut"></div>
|
||||
</div>
|
@ -2089,3 +2089,4 @@ fuzzy-if(gtkWidget,0-255,0-42) == 1599841-1.html 1599841-1-ref.html
|
||||
pref(layout.css.xul-box-display-values.content.enabled,true) == 1606130.html 1606130-ref.html
|
||||
== 1608124-1.html 1608124-1-ref.html
|
||||
skip-if(!OSX) != 1608124-2.html 1608124-2-notref.html
|
||||
== 1613380.html 1613380-ref.html
|
||||
|
Loading…
Reference in New Issue
Block a user