diff --git a/layout/generic/nsFrame.cpp b/layout/generic/nsFrame.cpp index 0144552448e68..3b36a4363b311 100644 --- a/layout/generic/nsFrame.cpp +++ b/layout/generic/nsFrame.cpp @@ -6672,6 +6672,15 @@ nsIFrame::FinishAndStoreOverflow(nsOverflowAreas& aOverflowAreas, // XXX In theory this should consider margin collapsing nsRect marginBounds(bounds); nsMargin margin = GetUsedMargin(); + + // Bug 724352 - vertical scrollable overflow only matters for + // scroll frames which are block margin roots and has already + // accumulated child vertical margins during reflow. We need + // to revisit this when using UpdateOverflow for non-transform + // style changes (bug 719177). + margin.top = 0; + margin.bottom = 0; + ApplySkipSides(margin); marginBounds.SaturatingInflate(margin); nsRect& so = aOverflowAreas.ScrollableOverflow(); diff --git a/layout/reftests/margin-collapsing/reftest.list b/layout/reftests/margin-collapsing/reftest.list index 2874930f957fb..8814f894853ba 100644 --- a/layout/reftests/margin-collapsing/reftest.list +++ b/layout/reftests/margin-collapsing/reftest.list @@ -324,3 +324,5 @@ fails == block-clear-7g-left.html block-clear-7efgh-left-ref2.html # Bug 493380 == block-zero-min-height-3d.html block-zero-min-height-3-ref.html == block-percent-1.html block-percent-1-ref.html == dynamic-add-text-1.html dynamic-add-text-1-ref.html # Bug 467321 +== scrollable-vertical-margin.html scrollable-vertical-margin-ref.html +== scrollable-horizontal-margin.html scrollable-horizontal-margin-ref.html diff --git a/layout/reftests/margin-collapsing/scrollable-horizontal-margin-ref.html b/layout/reftests/margin-collapsing/scrollable-horizontal-margin-ref.html new file mode 100644 index 0000000000000..63109d7d632ad --- /dev/null +++ b/layout/reftests/margin-collapsing/scrollable-horizontal-margin-ref.html @@ -0,0 +1,25 @@ + + + + Testcase for bug 724352 + + + + + + + + + + + diff --git a/layout/reftests/margin-collapsing/scrollable-horizontal-margin.html b/layout/reftests/margin-collapsing/scrollable-horizontal-margin.html new file mode 100644 index 0000000000000..284565ff41a49 --- /dev/null +++ b/layout/reftests/margin-collapsing/scrollable-horizontal-margin.html @@ -0,0 +1,24 @@ + + + + Testcase for bug 724352 + + + + + + + + + + + diff --git a/layout/reftests/margin-collapsing/scrollable-vertical-margin-ref.html b/layout/reftests/margin-collapsing/scrollable-vertical-margin-ref.html new file mode 100644 index 0000000000000..280f975335ade --- /dev/null +++ b/layout/reftests/margin-collapsing/scrollable-vertical-margin-ref.html @@ -0,0 +1,66 @@ + + + + Testcase for bug 724352 + + + + + + + +x + + + + + + +x + + + + + + +x + + + + + + +x + + + + + + +x + + + + + + +x + + + + + + +x + + + + diff --git a/layout/reftests/margin-collapsing/scrollable-vertical-margin.html b/layout/reftests/margin-collapsing/scrollable-vertical-margin.html new file mode 100644 index 0000000000000..d752417a3b7b3 --- /dev/null +++ b/layout/reftests/margin-collapsing/scrollable-vertical-margin.html @@ -0,0 +1,65 @@ + + + + Testcase for bug 724352 + + + + + + + +x + + + + + + +x + + + + + + +x + + + + + + +x + + + + + + +x + + + + + + +x + + + + + + +x + + + +