mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 13:48:23 +02:00
Automatic update from web-platform-tests
[Layout] bugfix: Update scrollable area after overflow recalc
Bug is:
<container overflow:scroll>
<target transform:scale(1)>
Initially, container's scrollbars are disabled.
When target changes its scale and grows outside of container,
scrollbars were not updated.
Fix #1 is to call UpdateScrollbarEnabledState. This resulted in
scrollbars being painted, but not clickable.
Fix #2, calling UpdateScrollableAreaSet makes scrollbars
clickable too.
Fix #2 was an educated guess.
Bug: 926167
Change-Id: I02454047c87aaecede9c56db1c02bbd1b21b15c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1704218
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#681091}
--
wpt-commits: a00fc0867640cf60333bc8831fad1170881e67d7
wpt-pr: 17868
34 lines
946 B
HTML
34 lines
946 B
HTML
<!DOCTYPE html>
|
|
<title>CSS Overflow: css-overflow-3</title>
|
|
<link rel="author" href="mailto:atotic@google.com">
|
|
<link rel="help" href="https://crbug.com/926167">
|
|
<link rel="match" href="scrollbars-chrome-bug-001-ref.html">
|
|
<meta name="assert" content="scrollbars keep up to date with a changing transform">
|
|
<style>
|
|
|
|
#container {
|
|
width: 200px;
|
|
height: 150px;
|
|
border: 1px solid black;
|
|
overflow: scroll;
|
|
}
|
|
#target {
|
|
width: 100px;
|
|
height: 50px;
|
|
background: green;
|
|
transform: scale(1);
|
|
}
|
|
</style>
|
|
<!-- -->
|
|
<div id="container">
|
|
<div id="target"></div>
|
|
</div>
|
|
<script>
|
|
// 1st transform triggers layer creation, and full layout.
|
|
// 2nd transform just updates overflow, which does not update scrollbars.
|
|
// This triggers the bug.
|
|
document.body.offsetTop;
|
|
document.querySelector("#target").style.transform = "scale(1.5)";
|
|
document.body.offsetTop;
|
|
document.querySelector("#target").style.transform = "scale(4.0)";
|
|
</script>
|