Commit 1e2afe6c authored by Cosmin Sabou's avatar Cosmin Sabou
Browse files

Backed out changeset 911f05c487a6 (bug 1800907) for causing assertions on...

Backed out changeset 911f05c487a6 (bug 1800907) for causing assertions on 266445-1.html. CLOSED TREE
parent 09c229f0
Loading
Loading
Loading
Loading
+3 −14
Original line number Diff line number Diff line
@@ -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);
}
+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>