mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 16:25:38 +00:00
Bug 1493319 [wpt PR 13145] - Fix scrollIntoView(...) for SVG elements, a=testonly
Automatic update from web-platform-testsFix scrollIntoView(...) for SVG elements AbsoluteBoundingBoxRectForScrollIntoView and associated helpers did not compute the correct bounding box for SVG shapes (or anything but the SVG root.) Compute the bounding rect using the stroke bounding box. Bug: 803440 Change-Id: If25ca98b686f17a0db699e569460cb4c276f06a0 Reviewed-on: https://chromium-review.googlesource.com/1238458 Reviewed-by: David Bokan <bokan@chromium.org> Commit-Queue: Fredrik Söderquist <fs@opera.com> Cr-Commit-Position: refs/heads/master@{#593306} -- wpt-commits: b3ca0cee4b0772e615334e4155556ec254dab7b1 wpt-pr: 13145
This commit is contained in:
parent
18f3004d9a
commit
39a1b6faab
@ -0,0 +1,32 @@
|
||||
<!DOCTYPE HTML>
|
||||
<title>scrollIntoView on an SVG shape element</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-element-scrollintoview">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<svg width="8000" height="8000">
|
||||
<rect width="100" height="100" fill="blue" y="1950" id="geometry"/>
|
||||
<rect width="100" height="100" fill="blue" transform="translate(0, 2950)"
|
||||
id="translated"/>
|
||||
<rect width="100" height="100" fill="blue" transform="rotate(45, 50, 3950)"
|
||||
id="rotated"/>
|
||||
</svg>
|
||||
<script>
|
||||
add_completion_callback(() => {
|
||||
document.querySelector("svg").remove();
|
||||
window.scrollTo(0, 0);
|
||||
});
|
||||
|
||||
for (let id of [ "geometry", "translated", "rotated" ]) {
|
||||
test(t => {
|
||||
let target = document.getElementById(id);
|
||||
window.scrollTo(0, 0);
|
||||
let bounds = target.getBoundingClientRect();
|
||||
let expected = { x: bounds.left, y: bounds.top };
|
||||
assert_not_equals(window.scrollX, expected.x, "x before scroll");
|
||||
assert_not_equals(window.scrollY, expected.y, "y before scroll");
|
||||
target.scrollIntoView({ block: "start", inline: "start" });
|
||||
assert_approx_equals(window.scrollX, expected.x, 1, "x after scroll");
|
||||
assert_approx_equals(window.scrollY, expected.y, 1, "y after scroll");
|
||||
}, document.title + ", " + id);
|
||||
}
|
||||
</script>
|
Loading…
Reference in New Issue
Block a user