fune/testing/web-platform/tests/css/css-overflow/scrollbar-gutter-dynamic-001.html
Ting-Yu Lin f6eb41c0f0 Bug 1715112 Part 1 - Implement the rendering of scrollbar-gutter. r=emilio
Here are the ideas of the implementation.

1) When creating ScrollReflowInput, we compute and store the size of the
scrollbar-gutter in `mScrollbarGutterSizes.

2) Provide a ScrollReflowInput::ScrollbarGutter() API that returns the space
occupied by scrollbar gutters or scrollbars, and use it in ReflowScrolledFrame()
and TryLayout().

-----

For test changes:

- The existing scrollbar-gutter changes all assume classic scrollbars that can
create scrollbar gutters, so they won't pass on Android which uses overlay
scrollbars.

- Add scrollbar-gutter-002.html to test when the scrollbar and gutter
are both shown. The reference of this uses padding to simulate
scrollbar-gutter, so it's OK if the platform uses overlay scrollbars.
The next patch will add more variants.

- scrollbar-gutter-dynamic-001.html was never run. Fixed it by adding
`<link rel="match">`.

Differential Revision: https://phabricator.services.mozilla.com/D132664
2021-12-16 01:01:45 +00:00

21 lines
561 B
HTML

<!doctype html>
<meta charset="utf-8">
<title>CSS Overflow: scrollbar-gutter changing dynamically</title>
<link rel="help" href="https://drafts.csswg.org/css-overflow-4/#scrollbar-gutter-property">
<link rel="stylesheet" href="/fonts/ahem.css">
<link rel="match" href="scrollbar-gutter-dynamic-001-ref.html">
<style>
#scroller {
font: 100px/1 Ahem;
color: green;
overflow-y: auto;
width: 300px;
height: 300px;
}
</style>
<div id="scroller">X X</div>
<script>
scroller.offsetTop;
scroller.style.scrollbarGutter = "stable";
</script>