From c9e80c7e5c1558445c3bf1cc967c7128c8052340 Mon Sep 17 00:00:00 2001 From: Daniel Holbert Date: Thu, 11 Oct 2012 18:41:05 -0700 Subject: [PATCH] Bug 799647 part 1: Use style-context parent instead of frame parent when resolving "align-self:auto" on a flex item. r=dbaron --- layout/generic/nsFlexContainerFrame.cpp | 3 +- ...xbox-align-self-baseline-horiz-1-ref.xhtml | 4 -- .../flexbox-align-self-baseline-horiz-1.xhtml | 4 -- ...xbox-align-self-baseline-horiz-4-ref.xhtml | 38 +++++++++++++++++++ .../flexbox-align-self-baseline-horiz-4.xhtml | 37 ++++++++++++++++++ layout/reftests/flexbox/reftest.list | 5 +++ 6 files changed, 82 insertions(+), 9 deletions(-) create mode 100644 layout/reftests/flexbox/flexbox-align-self-baseline-horiz-4-ref.xhtml create mode 100644 layout/reftests/flexbox/flexbox-align-self-baseline-horiz-4.xhtml diff --git a/layout/generic/nsFlexContainerFrame.cpp b/layout/generic/nsFlexContainerFrame.cpp index d04a26a0bba..e5770cc83e7 100644 --- a/layout/generic/nsFlexContainerFrame.cpp +++ b/layout/generic/nsFlexContainerFrame.cpp @@ -698,7 +698,8 @@ FlexItem::FlexItem(nsIFrame* aChildFrame, // Resolve "align-self: auto" to parent's "align-items" value. if (mAlignSelf == NS_STYLE_ALIGN_SELF_AUTO) { - mAlignSelf = mFrame->GetParent()->GetStylePosition()->mAlignItems; + mAlignSelf = + mFrame->GetStyleContext()->GetParent()->GetStylePosition()->mAlignItems; } // If the flex item's inline axis is the same as the cross axis, then diff --git a/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-1-ref.xhtml b/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-1-ref.xhtml index 5e86a376a33..d7502e1c2e7 100644 --- a/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-1-ref.xhtml +++ b/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-1-ref.xhtml @@ -43,7 +43,6 @@ .orange { background: orange; } .pink { background: pink; } .aqua { background: aqua; } - .violet { background: violet; } .tan { background: tan; } @@ -56,9 +55,6 @@ >
sub
big
text
3lines
- -
tr1
tr2
ital
ic
diff --git a/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-1.xhtml b/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-1.xhtml index 96c2b55a98c..7630e1b8d40 100644 --- a/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-1.xhtml +++ b/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-1.xhtml @@ -43,7 +43,6 @@ .orange { background: orange; } .pink { background: pink; } .aqua { background: aqua; } - .violet { background: violet; } .tan { background: tan; } @@ -54,9 +53,6 @@
super
sub
big
text
3lines
- - -
tr1
tr2
ital
ic
diff --git a/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-4-ref.xhtml b/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-4-ref.xhtml new file mode 100644 index 00000000000..867fa4cfc82 --- /dev/null +++ b/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-4-ref.xhtml @@ -0,0 +1,38 @@ + + + + + + + + +
+
text
+ + +
tr1
tr2
+
+ + diff --git a/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-4.xhtml b/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-4.xhtml new file mode 100644 index 00000000000..b2cb0b5d3d3 --- /dev/null +++ b/layout/reftests/flexbox/flexbox-align-self-baseline-horiz-4.xhtml @@ -0,0 +1,37 @@ + + + + + + + + +
+
text
+ + + +
tr1
tr2
+
+ + diff --git a/layout/reftests/flexbox/reftest.list b/layout/reftests/flexbox/reftest.list index 2232b0d080a..5f5f66448ca 100644 --- a/layout/reftests/flexbox/reftest.list +++ b/layout/reftests/flexbox/reftest.list @@ -10,6 +10,11 @@ fails test-pref(layout.css.flexbox.enabled,true) == flexbox-align-self-baseline- # This one fails on windows R (but not Ru, strangely). On Windows R, the # single-line