forked from mirrors/gecko-dev
Automatic update from web-platform-tests
blink: makes LayoutBox honor overflow-clip-margin
This does the following:
If overflow-clip-margin changes, then need to repaint
OverflowClipRect() and VisualOverflowRect() adjust for
overflow-clip-margin (overflow-clip-margin is only set if overflow:clip
is set along both axis).
BUG=1087667
TEST=wpt/css/css-overflow/overflow-clip-margin-invalidation
wpt/css/css-overflow/overflow-clip-margin-001.html
Change-Id: I9875c724c153600bf8eafe633bc138d99de3099a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2468794
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#819170}
--
wpt-commits: 5168e59a178f91389a9193cdbfcfaac9f5094f21
wpt-pr: 26117
64 lines
1.6 KiB
HTML
64 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html class="reftest-wait">
|
|
<head>
|
|
<title>CSS Overflow: overflow-clip-margin: invalidation on change</title>
|
|
<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#propdef-overflow-clip-margin">
|
|
<meta name="assert" content="overflow-clip-margin: toggling should invalidate.">
|
|
<link rel="author" title="Scott Violet" href="mailto:sky@chromium.org">
|
|
<link rel="match" href="overflow-clip-margin-invalidation-ref.html">
|
|
<style>
|
|
.container {
|
|
display: flex;
|
|
}
|
|
.parent {
|
|
flex: none;
|
|
width: 100px;
|
|
height: 100px;
|
|
flex: none;
|
|
overflow: clip;
|
|
}
|
|
.child {
|
|
width: 200px;
|
|
height: 200px;
|
|
position: relative;
|
|
top: -50px;
|
|
left: -50px;
|
|
background-color: green;
|
|
}
|
|
.spacer {
|
|
flex: none;
|
|
height: 100px;
|
|
width: 100px;
|
|
}
|
|
.margin {
|
|
overflow-clip-margin: 10px;
|
|
}
|
|
</style>
|
|
<script src="/common/reftest-wait.js"></script>
|
|
<script src="/common/rendering-utils.js"></script>
|
|
</head>
|
|
<body>
|
|
<div class="spacer"></div>
|
|
<div class="container">
|
|
<div class="spacer"></div>
|
|
<div id="div_with_margin" class="parent margin">
|
|
<div class="child"></div>
|
|
</div>
|
|
<div class="spacer"></div>
|
|
<div class="container">
|
|
<div class="spacer"></div>
|
|
<div id="div_without_margin" class="parent">
|
|
<div class="child"></div>
|
|
</div>
|
|
</body>
|
|
<script>
|
|
async function runTest() {
|
|
document.getElementById('div_with_margin').classList.remove("margin");
|
|
document.getElementById('div_without_margin').classList.add("margin");
|
|
takeScreenshot();
|
|
}
|
|
onload = () => {
|
|
waitForAtLeastOneFrame().then(() => { runTest() });
|
|
}
|
|
</script>
|
|
</html>
|