mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 17:55:07 +02:00
Instead of trying to manually determine which parts of a bitmap fall within the box of the `<img>` element, just draw the whole bitmap and let Skia clip the draw-area to the correct rectangle. This fixes a bug where the entire bitmap was squashed into the rectangle of the image box instead of being clipped. With this change, image rendering is now correct enough to import some of the WPT tests for object-fit and object-position. To get some good coverage I have imported all tests for the `<img>` tag. I also wanted to import a subset of the tests for the `<object>` tag, since those are passing as well now. Unfortunately, they are flaky for unknown reasons. This is the second attempt at this bugfix. The prior one wase055927eadand broke image rendering whenever the page was scrolled. It has subsequently been reverted in16b14273d1. Hopefully this time it is not horribly broken.
45 lines
1.6 KiB
HTML
45 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/
|
|
-->
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>CSS Test: various 'object-position' values on a fixed-size img element, with a PNG image and 'object-fit:contain'.</title>
|
|
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
|
|
<link rel="help" href="http://www.w3.org/TR/css3-images/#sizing">
|
|
<link rel="help" href="http://www.w3.org/TR/css3-images/#the-object-fit">
|
|
<link rel="help" href="http://www.w3.org/TR/css3-images/#the-object-position">
|
|
<link rel="match" href="../../../../expected/wpt-import/css/css-images/object-position-png-002-ref.html">
|
|
<style type="text/css">
|
|
img {
|
|
background: lightgray;
|
|
margin-right: 2px;
|
|
object-fit: contain;
|
|
float: left;
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
|
|
.op_x-7 { object-position: -7% 50% }
|
|
.op_x13 { object-position: 13% 50% }
|
|
.op_x23 { object-position: 23% 50% }
|
|
.op_x50 { object-position: 50% 50% }
|
|
.op_x75 { object-position: 75% 50% }
|
|
.op_x88 { object-position: 88% 50% }
|
|
.op_x111 { object-position: 111% 50% }
|
|
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<img src="support/colors-8x16.png" class="op_x-7">
|
|
<img src="support/colors-8x16.png" class="op_x13">
|
|
<img src="support/colors-8x16.png" class="op_x23">
|
|
<img src="support/colors-8x16.png" class="op_x50">
|
|
<img src="support/colors-8x16.png" class="op_x75">
|
|
<img src="support/colors-8x16.png" class="op_x88">
|
|
<img src="support/colors-8x16.png" class="op_x111">
|
|
</body>
|
|
</html>
|