WebKit Bugzilla
Attachment 359020 Details for
Bug 193392
: [LFC][BFC] Add basic box-sizing support.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193392-20190113212200.patch (text/plain), 26.09 KB, created by
zalan
on 2019-01-13 21:22:14 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
zalan
Created:
2019-01-13 21:22:14 PST
Size:
26.09 KB
patch
obsolete
>Subversion Revision: 239912 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 6610998eaf2b9fa0c9eed0396055348f538b73d5..5630cdabea1647c36176e85e565350049a95dc9d 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,23 @@ >+2019-01-13 Zalan Bujtas <zalan@apple.com> >+ >+ [LFC][BFC] Add basic box-sizing support. >+ https://bugs.webkit.org/show_bug.cgi?id=193392 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ No min/max support yet. >+ >+ Test: fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html >+ >+ * layout/FormattingContextGeometry.cpp: >+ (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry): >+ (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry): >+ * layout/blockformatting/BlockFormattingContextGeometry.cpp: >+ (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin): >+ (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin): >+ * page/FrameViewLayoutContext.cpp: >+ (WebCore::layoutUsingFormattingContext): >+ > 2019-01-13 Simon Fraser <simon.fraser@apple.com> > > Minor optimization to RenderText::setRenderedText() >diff --git a/Source/WebCore/layout/FormattingContextGeometry.cpp b/Source/WebCore/layout/FormattingContextGeometry.cpp >index bcb592431881af00897b36fa40591a772ea416f0..6643c1470fa1aef0ae9957869095a75c2ea353ce 100644 >--- a/Source/WebCore/layout/FormattingContextGeometry.cpp >+++ b/Source/WebCore/layout/FormattingContextGeometry.cpp >@@ -285,25 +285,29 @@ VerticalGeometry FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeomet > auto paddingBottom = displayBox.paddingBottom().valueOr(0); > auto borderTop = displayBox.borderTop(); > auto borderBottom = displayBox.borderBottom(); >+ auto contentHeight = [&] { >+ ASSERT(height); >+ return style.boxSizing() == BoxSizing::ContentBox ? *height : *height - (borderTop + paddingTop + paddingBottom + borderBottom); >+ }; > > if (!top && !height && !bottom) > top = staticVerticalPositionForOutOfFlowPositioned(layoutState, layoutBox); > > if (top && height && bottom) { > if (!computedVerticalMargin.before && !computedVerticalMargin.after) { >- auto marginBeforeAndAfter = containingBlockHeight - (*top + borderTop + paddingTop + *height + paddingBottom + borderBottom + *bottom); >+ auto marginBeforeAndAfter = containingBlockHeight - (*top + borderTop + paddingTop + contentHeight() + paddingBottom + borderBottom + *bottom); > usedVerticalMargin = { marginBeforeAndAfter / 2, marginBeforeAndAfter / 2 }; > } else if (!computedVerticalMargin.before) { > usedVerticalMargin.after = *computedVerticalMargin.after; >- usedVerticalMargin.before = containingBlockHeight - (*top + borderTop + paddingTop + *height + paddingBottom + borderBottom + usedVerticalMargin.after + *bottom); >+ usedVerticalMargin.before = containingBlockHeight - (*top + borderTop + paddingTop + contentHeight() + paddingBottom + borderBottom + usedVerticalMargin.after + *bottom); > } else { > usedVerticalMargin.before = *computedVerticalMargin.before; >- usedVerticalMargin.after = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + *height + paddingBottom + borderBottom + *bottom); >+ usedVerticalMargin.after = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + contentHeight() + paddingBottom + borderBottom + *bottom); > } > // Over-constrained? >- auto boxHeight = *top + usedVerticalMargin.before + borderTop + paddingTop + *height + paddingBottom + borderBottom + usedVerticalMargin.after + *bottom; >+ auto boxHeight = *top + usedVerticalMargin.before + borderTop + paddingTop + contentHeight() + paddingBottom + borderBottom + usedVerticalMargin.after + *bottom; > if (boxHeight > containingBlockHeight) >- bottom = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + *height + paddingBottom + borderBottom + usedVerticalMargin.after); >+ bottom = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + contentHeight() + paddingBottom + borderBottom + usedVerticalMargin.after); > } > > if (!top && !height && bottom) { >@@ -317,32 +321,32 @@ VerticalGeometry FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeomet > // #2 > top = staticVerticalPositionForOutOfFlowPositioned(layoutState, layoutBox); > usedVerticalMargin = { computedVerticalMargin.before.valueOr(0), computedVerticalMargin.after.valueOr(0) }; >- bottom = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + *height + paddingBottom + borderBottom + usedVerticalMargin.after); >+ bottom = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + contentHeight() + paddingBottom + borderBottom + usedVerticalMargin.after); > } > > if (!height && !bottom && top) { > // #3 > height = contentHeightForFormattingContextRoot(layoutState, layoutBox); > usedVerticalMargin = { computedVerticalMargin.before.valueOr(0), computedVerticalMargin.after.valueOr(0) }; >- bottom = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + *height + paddingBottom + borderBottom + usedVerticalMargin.after); >+ bottom = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + *height + paddingBottom + borderBottom + usedVerticalMargin.after); > } > > if (!top && height && bottom) { > // #4 > usedVerticalMargin = { computedVerticalMargin.before.valueOr(0), computedVerticalMargin.after.valueOr(0) }; >- top = containingBlockHeight - (usedVerticalMargin.before + borderTop + paddingTop + *height + paddingBottom + borderBottom + usedVerticalMargin.after + *bottom); >+ top = containingBlockHeight - (usedVerticalMargin.before + borderTop + paddingTop + contentHeight() + paddingBottom + borderBottom + usedVerticalMargin.after + *bottom); > } > > if (!height && top && bottom) { > // #5 > usedVerticalMargin = { computedVerticalMargin.before.valueOr(0), computedVerticalMargin.after.valueOr(0) }; >- height = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + paddingBottom + borderBottom + usedVerticalMargin.after + *bottom); >+ height = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + paddingBottom + borderBottom + usedVerticalMargin.after + *bottom); > } > > if (!bottom && top && height) { > // #6 > usedVerticalMargin = { computedVerticalMargin.before.valueOr(0), computedVerticalMargin.after.valueOr(0) }; >- bottom = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + *height + paddingBottom + borderBottom + usedVerticalMargin.after); >+ bottom = containingBlockHeight - (*top + usedVerticalMargin.before + borderTop + paddingTop + contentHeight() + paddingBottom + borderBottom + usedVerticalMargin.after); > } > > ASSERT(top); >@@ -350,7 +354,7 @@ VerticalGeometry FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeomet > ASSERT(height); > > LOG_WITH_STREAM(FormattingContextLayout, stream << "[Position][Height][Margin] -> out-of-flow non-replaced -> top(" << *top << "px) bottom(" << *bottom << "px) height(" << *height << "px) margin(" << usedVerticalMargin.before << "px, " << usedVerticalMargin.after << "px) layoutBox(" << &layoutBox << ")"); >- return { *top, *bottom, { *height, usedVerticalMargin } }; >+ return { *top, *bottom, { contentHeight(), usedVerticalMargin } }; > } > > HorizontalGeometry FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry(LayoutState& layoutState, const Box& layoutBox, Optional<LayoutUnit> usedWidth) >@@ -398,6 +402,10 @@ HorizontalGeometry FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGe > auto paddingRight = displayBox.paddingRight().valueOr(0); > auto borderLeft = displayBox.borderLeft(); > auto borderRight = displayBox.borderRight(); >+ auto contentWidth = [&] { >+ ASSERT(width); >+ return style.boxSizing() == BoxSizing::ContentBox ? *width : *width - (borderLeft + paddingLeft + paddingRight + borderRight); >+ }; > > if (!left && !width && !right) { > // If all three of 'left', 'width', and 'right' are 'auto': First set any 'auto' values for 'margin-left' and 'margin-right' to 0. >@@ -417,37 +425,37 @@ HorizontalGeometry FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGe > // If the values are over-constrained, ignore the value for 'left' (in case the 'direction' property of the containing block is 'rtl') or 'right' > // (in case 'direction' is 'ltr') and solve for that value. > if (!computedHorizontalMargin.start && !computedHorizontalMargin.end) { >- auto marginStartAndEnd = containingBlockWidth - (*left + borderLeft + paddingLeft + *width + paddingRight + borderRight + *right); >+ auto marginStartAndEnd = containingBlockWidth - (*left + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + *right); > if (marginStartAndEnd >= 0) > usedHorizontalMargin = { marginStartAndEnd / 2, marginStartAndEnd / 2 }; > else { > if (isLeftToRightDirection) { > usedHorizontalMargin.start = 0_lu; >- usedHorizontalMargin.end = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight + *right); >+ usedHorizontalMargin.end = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + *right); > } else { > usedHorizontalMargin.end = 0_lu; >- usedHorizontalMargin.start = containingBlockWidth - (*left + borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end + *right); >+ usedHorizontalMargin.start = containingBlockWidth - (*left + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end + *right); > } > } > } else if (!computedHorizontalMargin.start) { > usedHorizontalMargin.end = *computedHorizontalMargin.end; >- usedHorizontalMargin.start = containingBlockWidth - (*left + borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end + *right); >+ usedHorizontalMargin.start = containingBlockWidth - (*left + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end + *right); > // Overconstrained? Ignore right (left). > if (usedHorizontalMargin.start < 0) { > if (isLeftToRightDirection) >- usedHorizontalMargin.start = containingBlockWidth - (*left + borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end); >+ usedHorizontalMargin.start = containingBlockWidth - (*left + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end); > else >- usedHorizontalMargin.start = containingBlockWidth - (borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end + *right); >+ usedHorizontalMargin.start = containingBlockWidth - (borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end + *right); > } > } else if (!computedHorizontalMargin.end) { > usedHorizontalMargin.start = *computedHorizontalMargin.start; >- usedHorizontalMargin.end = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight + *right); >+ usedHorizontalMargin.end = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + *right); > // Overconstrained? Ignore right (left). > if (usedHorizontalMargin.end < 0) { > if (isLeftToRightDirection) >- usedHorizontalMargin.end = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight); >+ usedHorizontalMargin.end = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight); > else >- usedHorizontalMargin.end = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight + *right); >+ usedHorizontalMargin.end = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + *right); > } > } > } else { >@@ -464,10 +472,10 @@ HorizontalGeometry FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGe > auto staticHorizontalPosition = staticHorizontalPositionForOutOfFlowPositioned(layoutState, layoutBox); > if (isLeftToRightDirection) { > left = staticHorizontalPosition; >- right = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end); >+ right = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end); > } else { > right = staticHorizontalPosition; >- left = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end + *right); >+ left = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end + *right); > } > } else if (!width && !right && left) { > // #3 >@@ -475,13 +483,13 @@ HorizontalGeometry FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGe > right = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end); > } else if (!left && width && right) { > // #4 >- left = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end + *right); >+ left = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end + *right); > } else if (!width && left && right) { > // #5 >- width = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + paddingRight + borderRight + usedHorizontalMargin.end + *right); >+ width = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + paddingRight + borderRight + usedHorizontalMargin.end + *right); > } else if (!right && left && width) { > // #6 >- right = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end); >+ right = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end); > } > > ASSERT(left); >@@ -489,7 +497,7 @@ HorizontalGeometry FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGe > ASSERT(width); > > LOG_WITH_STREAM(FormattingContextLayout, stream << "[Position][Width][Margin] -> out-of-flow non-replaced -> left(" << *left << "px) right(" << *right << "px) width(" << *width << "px) margin(" << usedHorizontalMargin.start << "px, " << usedHorizontalMargin.end << "px) layoutBox(" << &layoutBox << ")"); >- return { *left, *right, { *width, usedHorizontalMargin, computedHorizontalMargin } }; >+ return { *left, *right, { contentWidth(), usedHorizontalMargin, computedHorizontalMargin } }; > } > > VerticalGeometry FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry(const LayoutState& layoutState, const Box& layoutBox, Optional<LayoutUnit> usedHeight) >diff --git a/Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp b/Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp >index 4170eac90faf4def59957b40410f916bd4861982..f9cc7d39a7b69014e83989e1c8850353a3dbd96a 100644 >--- a/Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp >+++ b/Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp >@@ -61,10 +61,13 @@ HeightAndMargin BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMarg > auto computedVerticalMargin = Geometry::computedVerticalMargin(layoutState, layoutBox); > auto nonCollapsedMargin = UsedVerticalMargin::NonCollapsedValues { computedVerticalMargin.before.valueOr(0), computedVerticalMargin.after.valueOr(0) }; > auto borderAndPaddingTop = displayBox.borderTop() + displayBox.paddingTop().valueOr(0); >- > auto height = usedHeight ? usedHeight.value() : computedHeightValue(layoutState, layoutBox, HeightType::Normal); >- if (height) >- return { height.value(), nonCollapsedMargin }; >+ >+ if (height) { >+ auto borderAndPaddingBottom = displayBox.borderBottom() + displayBox.paddingBottom().valueOr(0); >+ auto contentHeight = layoutBox.style().boxSizing() == BoxSizing::ContentBox ? *height : *height - (borderAndPaddingTop + borderAndPaddingBottom); >+ return { contentHeight, nonCollapsedMargin }; >+ } > > if (!is<Container>(layoutBox) || !downcast<Container>(layoutBox).hasInFlowChild()) > return { 0, nonCollapsedMargin }; >@@ -142,10 +145,14 @@ WidthAndMargin BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin > auto borderRight = displayBox.borderRight(); > auto paddingLeft = displayBox.paddingLeft().valueOr(0); > auto paddingRight = displayBox.paddingRight().valueOr(0); >+ auto contentWidth = [&] { >+ ASSERT(width); >+ return style.boxSizing() == BoxSizing::ContentBox ? *width : *width - (borderLeft + paddingLeft + paddingRight + borderRight); >+ }; > > // #1 > if (width) { >- auto horizontalSpaceForMargin = containingBlockWidth - (computedHorizontalMargin.start.valueOr(0) + borderLeft + paddingLeft + *width + paddingRight + borderRight + computedHorizontalMargin.end.valueOr(0)); >+ auto horizontalSpaceForMargin = containingBlockWidth - (computedHorizontalMargin.start.valueOr(0) + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + computedHorizontalMargin.end.valueOr(0)); > if (horizontalSpaceForMargin < 0) > usedHorizontalMargin = { computedHorizontalMargin.start.valueOr(0), computedHorizontalMargin.end.valueOr(0) }; > } >@@ -154,23 +161,23 @@ WidthAndMargin BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin > if (width && computedHorizontalMargin.start && computedHorizontalMargin.end) { > if (containingBlock->style().isLeftToRightDirection()) { > usedHorizontalMargin.start = *computedHorizontalMargin.start; >- usedHorizontalMargin.end = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight); >+ usedHorizontalMargin.end = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight); > } else { > usedHorizontalMargin.end = *computedHorizontalMargin.end; >- usedHorizontalMargin.start = containingBlockWidth - (borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end); >+ usedHorizontalMargin.start = containingBlockWidth - (borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end); > } > } > > // #3 > if (!computedHorizontalMargin.start && width && computedHorizontalMargin.end) { > usedHorizontalMargin.end = *computedHorizontalMargin.end; >- usedHorizontalMargin.start = containingBlockWidth - (borderLeft + paddingLeft + *width + paddingRight + borderRight + usedHorizontalMargin.end); >+ usedHorizontalMargin.start = containingBlockWidth - (borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end); > } else if (computedHorizontalMargin.start && !width && computedHorizontalMargin.end) { > usedHorizontalMargin = { *computedHorizontalMargin.start, *computedHorizontalMargin.end }; > width = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + paddingRight + borderRight + usedHorizontalMargin.end); > } else if (computedHorizontalMargin.start && width && !computedHorizontalMargin.end) { > usedHorizontalMargin.start = *computedHorizontalMargin.start; >- usedHorizontalMargin.end = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + *width + paddingRight + borderRight); >+ usedHorizontalMargin.end = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight); > } > > // #4 >@@ -181,13 +188,13 @@ WidthAndMargin BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin > > // #5 > if (!computedHorizontalMargin.start && !computedHorizontalMargin.end) { >- auto horizontalSpaceForMargin = containingBlockWidth - (borderLeft + paddingLeft + *width + paddingRight + borderRight); >+ auto horizontalSpaceForMargin = containingBlockWidth - (borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight); > usedHorizontalMargin = { horizontalSpaceForMargin / 2, horizontalSpaceForMargin / 2 }; > } > > ASSERT(width); > >- return WidthAndMargin { *width, usedHorizontalMargin, computedHorizontalMargin }; >+ return WidthAndMargin { contentWidth(), usedHorizontalMargin, computedHorizontalMargin }; > }; > > auto widthAndMargin = compute(); >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 9cfc120140261f07a8f419a8368a14acc9a954ea..2b999ea83822073bb33fa3e7b64677db51653a58 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,12 @@ >+2019-01-13 Zalan Bujtas <zalan@apple.com> >+ >+ [LFC][BFC] Add basic box-sizing support. >+ https://bugs.webkit.org/show_bug.cgi?id=193392 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * LayoutReloaded/misc/LFC-passing-tests.txt: >+ > 2019-01-13 Aakash Jain <aakash_jain@apple.com> > > [ews-build] Update macOS queue configurations >diff --git a/Tools/LayoutReloaded/misc/LFC-passing-tests.txt b/Tools/LayoutReloaded/misc/LFC-passing-tests.txt >index df95aac801315f35c51b7c1cd1585e38dfa2f358..2826337d4dfbe7b9ce186b505f4fe01f66663c30 100644 >--- a/Tools/LayoutReloaded/misc/LFC-passing-tests.txt >+++ b/Tools/LayoutReloaded/misc/LFC-passing-tests.txt >@@ -76,6 +76,7 @@ fast/block/block-only/relative-position-when-containing-block-is-not-in-the-form > fast/block/block-only/relative-right.html > fast/block/block-only/relative-siblings.html > fast/block/block-only/relative-simple.html >+fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html > fast/block/basic/002.html > fast/block/basic/003.html > fast/block/basic/006.html >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 0f9c05ad2e691fc536fbbaf132fe397cbd664d02..89f8250d13ad1fefa4e51399258caf7d97ea2e5b 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,13 @@ >+2019-01-13 Zalan Bujtas <zalan@apple.com> >+ >+ [LFC][BFC] Add basic box-sizing support. >+ https://bugs.webkit.org/show_bug.cgi?id=193392 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * fast/block/block-only/box-sizing-inflow-out-of-flow-simple-expected.txt: Added. >+ * fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html: Added. >+ > 2019-01-13 Antti Koivisto <antti@apple.com> > > Release assert with <img usemap> in shadow tree >diff --git a/LayoutTests/fast/block/block-only/box-sizing-inflow-out-of-flow-simple-expected.txt b/LayoutTests/fast/block/block-only/box-sizing-inflow-out-of-flow-simple-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..750336db68588f5f5c9c0eebf60462edb0c29833 >--- /dev/null >+++ b/LayoutTests/fast/block/block-only/box-sizing-inflow-out-of-flow-simple-expected.txt >@@ -0,0 +1,11 @@ >+layer at (0,0) size 800x600 >+ RenderView at (0,0) size 800x600 >+layer at (0,0) size 800x600 >+ RenderBlock {HTML} at (0,0) size 800x600 >+ RenderBody {BODY} at (8,10) size 784x580 >+ RenderBlock {DIV} at (10,0) size 20x20 [border: (2px solid #000000)] >+ RenderBlock {DIV} at (10,30) size 20x20 [border: (2px solid #000000)] >+layer at (18,80) size 20x20 >+ RenderBlock (positioned) {DIV} at (18,80) size 20x20 [border: (2px solid #000000)] >+layer at (48,80) size 20x20 >+ RenderBlock (positioned) {DIV} at (48,80) size 20x20 [border: (2px solid #000000)] >diff --git a/LayoutTests/fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html b/LayoutTests/fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a05c5cbf2e81d4ba97fae16cdf8f6affb9785ab7 >--- /dev/null >+++ b/LayoutTests/fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html >@@ -0,0 +1,12 @@ >+<style> >+div { >+ border: 2px solid black; >+ padding: 4px; >+ -webkit-box-sizing: border-box; >+ margin: 10px; >+} >+</style> >+<div style="-webkit-box-sizing: content-box; width:8px; height:8px"></div> >+<div style="width:20px; height:20px"></div> >+<div style="position:absolute; -webkit-box-sizing: content-box; width:8px; height:8px"></div> >+<div style="position:absolute; left:38px; width:20px; height:20px"></div>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193392
: 359020