forked from mirrors/gecko-dev
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
21 lines
561 B
HTML
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>
|