Backed out changeset d4d3c40a747d (bug 1715291) for causing Linting failures. CLOSED TREE

This commit is contained in:
Marian-Vasile Laza 2021-08-21 00:07:00 +03:00
Родитель d192833f8d
Коммит ddbd16c8f6
5 изменённых файлов: 17 добавлений и 109 удалений

Просмотреть файл

@ -787,22 +787,24 @@ void nsHTMLScrollFrame::ReflowScrolledFrame(ScrollReflowInput* aState,
auto* disp = StyleDisplay();
if (MOZ_UNLIKELY(disp->mOverflowClipBoxInline ==
StyleOverflowClipBox::ContentBox)) {
// The scrolled frame is scrollable in the inline axis with
// `overflow-clip-box:content-box`. To prevent its content from being
// clipped at the scroll container's padding edges, we inflate its
// children's scrollable overflow area with its inline padding, and union
// its scrollable overflow area with its children's inflated scrollable
// overflow area.
OverflowAreas childOverflow;
mHelper.mScrolledFrame->UnionChildOverflow(childOverflow);
nsRect childScrollableOverflow = childOverflow.ScrollableOverflow();
const LogicalMargin inlinePadding =
padding.ApplySkipSides(LogicalSides(wm, eLogicalSideBitsBBoth));
childScrollableOverflow.Inflate(inlinePadding.GetPhysicalMargin(wm));
// If the scrolled frame can be scrolled in the inline axis, inflate its
// scrollable overflow areas with its inline-end padding to prevent its
// content from being clipped at scroll container's inline-end padding
// edge.
//
// Note: Inflating scrolled frame's overflow areas is generally wrong if the
// scrolled frame's children themselves has any scrollable overflow areas.
// However, we can only be here in production for <textarea> and <input>.
// Both elements can only have text children, which shouldn't have
// scrollable overflow areas themselves, so its fine.
nsRect& so = aMetrics->ScrollableOverflow();
so = so.UnionEdges(childScrollableOverflow);
const nscoord soInlineSize = wm.IsVertical() ? so.Height() : so.Width();
if (soInlineSize > availISize) {
const LogicalMargin inlinePaddingEnd =
padding.ApplySkipSides(LogicalSides(wm, eLogicalSideBitsBBoth) |
LogicalSides(wm, eLogicalSideBitsIStart));
so.Inflate(inlinePaddingEnd.GetPhysicalMargin(wm));
}
}
aState->mContentsOverflowAreas = aMetrics->mOverflowAreas;

Просмотреть файл

@ -1,18 +0,0 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Overflow Reference: Test the text in an input is not clipped and reachable</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
input {
box-sizing: border-box;
width: 160px;
padding-inline: 40px 60px;
background: yellow;
font: 20px/1 Ahem;
border: 0;
}
</style>
<input value="XpX">

Просмотреть файл

@ -1,28 +0,0 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Overflow Test: Test the text in an input is not clipped and reachable</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://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=1715291">
<link rel="match" href="scrollable-overflow-input-001-ref.html">
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
input {
box-sizing: border-box;
width: 160px;
padding-inline: 20px 60px;
background: yellow;
font: 20px/1 Ahem;
border: 0;
}
</style>
<!-- The total width of the text (120px) must be less than the <input>'s
width (160px) to reproduce this bug. -->
<input id="input" value="X XpX">
<script>
document.getElementById('input').scrollLeft = 1000;
</script>

Просмотреть файл

@ -1,19 +0,0 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Overflow Reference: Test the text in an input is not clipped and reachable</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
input {
box-sizing: border-box;
width: 160px;
padding-inline: 40px 60px;
background: yellow;
font: 20px/1 Ahem;
border: 0;
direction: rtl;
}
</style>
<input value="XpX">

Просмотреть файл

@ -1,29 +0,0 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Overflow Test: Test the text in an input is not clipped and reachable</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://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=1715291">
<link rel="match" href="scrollable-overflow-input-002-ref.html">
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
input {
box-sizing: border-box;
width: 160px;
padding-inline: 20px 60px;
background: yellow;
font: 20px/1 Ahem;
border: 0;
direction: rtl;
}
</style>
<!-- The total width of the text (120px) must be less than the <input>'s
width (160px) to reproduce this bug. -->
<input id="input2" value="XpX X">
<script>
document.getElementById('input2').scrollLeft = -1000;
</script>