Loading layout/generic/ReflowOutput.cpp +3 −14 Original line number Diff line number Diff line Loading @@ -40,23 +40,12 @@ void OverflowAreas::ApplyOverflowClippingOnRect(nsRect& aOverflowRect, } void OverflowAreas::UnionWith(const OverflowAreas& aOther) { // UnionRect returns aOther if this.IsEmpty(), but "is empty" in this // context means "width OR height is zero." If aOther has both width and // height as zero, but *this has one axis as zero, we'd lose that information. if (!aOther.InkOverflow().IsEqualEdges(nsRect())) { InkOverflow().UnionRect(InkOverflow(), aOther.InkOverflow()); } if (!aOther.ScrollableOverflow().IsEqualEdges(nsRect())) { ScrollableOverflow().UnionRect(ScrollableOverflow(), aOther.ScrollableOverflow()); } } void OverflowAreas::UnionAllWith(const nsRect& aRect) { if (aRect.IsEqualEdges(nsRect())) { // Same as `UnionWith()` - avoid losing information. return; } InkOverflow().UnionRect(InkOverflow(), aRect); ScrollableOverflow().UnionRect(ScrollableOverflow(), aRect); } Loading testing/web-platform/tests/css/css-overflow/scrollable-overflow-zero-one-axis.htmldeleted 100644 → 0 +0 −59 Original line number Diff line number Diff line <!DOCTYPE html> <meta charset="utf-8"> <title>CSS Overflow: Scroll Length Calculated Correctly When One Axis Has Zero Length</title> <link rel="author" title="David Shin" href="mailto:dshin@mozilla.com"> <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> <link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable"> <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1800907"> <style> .scroll { overflow: scroll; } .zero-h { width: 100px; height: 0px; } .zero-w { width: 0; height: 100px; } .flex-row { display: flex; } .flex-col { display: flex; flex-direction: column; } .grid { display: grid; } </style> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/resources/check-layout-th.js"></script> <body onload="checkLayout('.scroll')"> <div class="scroll zero-h" data-expected-scroll-height="100"> <div class="zero-w"></div> </div> <div class="scroll zero-w" data-expected-scroll-width="100"> <div class="zero-h"></div> </div> <div class="scroll zero-h flex-row" data-expected-scroll-height="100"> <div class="zero-w"></div> </div> <div class="scroll zero-w flex-col" data-expected-scroll-width="100"> <div class="zero-h"></div> </div> <div class="scroll zero-h grid" data-expected-scroll-height="100"> <div class="zero-w"></div> </div> <div class="scroll zero-w grid" data-expected-scroll-width="100"> <div class="zero-h"></div> </div> Loading
layout/generic/ReflowOutput.cpp +3 −14 Original line number Diff line number Diff line Loading @@ -40,23 +40,12 @@ void OverflowAreas::ApplyOverflowClippingOnRect(nsRect& aOverflowRect, } void OverflowAreas::UnionWith(const OverflowAreas& aOther) { // UnionRect returns aOther if this.IsEmpty(), but "is empty" in this // context means "width OR height is zero." If aOther has both width and // height as zero, but *this has one axis as zero, we'd lose that information. if (!aOther.InkOverflow().IsEqualEdges(nsRect())) { InkOverflow().UnionRect(InkOverflow(), aOther.InkOverflow()); } if (!aOther.ScrollableOverflow().IsEqualEdges(nsRect())) { ScrollableOverflow().UnionRect(ScrollableOverflow(), aOther.ScrollableOverflow()); } } void OverflowAreas::UnionAllWith(const nsRect& aRect) { if (aRect.IsEqualEdges(nsRect())) { // Same as `UnionWith()` - avoid losing information. return; } InkOverflow().UnionRect(InkOverflow(), aRect); ScrollableOverflow().UnionRect(ScrollableOverflow(), aRect); } Loading
testing/web-platform/tests/css/css-overflow/scrollable-overflow-zero-one-axis.htmldeleted 100644 → 0 +0 −59 Original line number Diff line number Diff line <!DOCTYPE html> <meta charset="utf-8"> <title>CSS Overflow: Scroll Length Calculated Correctly When One Axis Has Zero Length</title> <link rel="author" title="David Shin" href="mailto:dshin@mozilla.com"> <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> <link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable"> <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1800907"> <style> .scroll { overflow: scroll; } .zero-h { width: 100px; height: 0px; } .zero-w { width: 0; height: 100px; } .flex-row { display: flex; } .flex-col { display: flex; flex-direction: column; } .grid { display: grid; } </style> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/resources/check-layout-th.js"></script> <body onload="checkLayout('.scroll')"> <div class="scroll zero-h" data-expected-scroll-height="100"> <div class="zero-w"></div> </div> <div class="scroll zero-w" data-expected-scroll-width="100"> <div class="zero-h"></div> </div> <div class="scroll zero-h flex-row" data-expected-scroll-height="100"> <div class="zero-w"></div> </div> <div class="scroll zero-w flex-col" data-expected-scroll-width="100"> <div class="zero-h"></div> </div> <div class="scroll zero-h grid" data-expected-scroll-height="100"> <div class="zero-w"></div> </div> <div class="scroll zero-w grid" data-expected-scroll-width="100"> <div class="zero-h"></div> </div>