mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-27 18:17:22 +02:00
Instead of rendering a reference HTML page that wraps an <img> tag pointing to a PNG, Screenshot tests now load the expected PNG directly from disk and compare it against the rendered screenshot. This eliminates the indirection of loading and rendering a second page just to display a static image. This also means --rebaseline now works for Screenshot tests, generating the expected PNG automatically instead of requiring manual screenshot capture and placement. Changes: - Add TestMode::Screenshot with its own collector and runner - Move PNGs from Screenshot/images/ to Screenshot/expected/ with normalized names matching input filenames - Remove all 92 reference HTML wrapper files and the images/ directory - Remove <link rel="match"> from all 94 Screenshot input HTML files - Update add_libweb_test.py Screenshot boilerplate accordingly - Add Screenshot mode to results viewer image comparison tabs
42 lines
1.6 KiB
HTML
42 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" class="reftest-wait">
|
|
<head>
|
|
<style>
|
|
#background {
|
|
width: 50px;
|
|
height: 50px;
|
|
border: 2px solid blue;
|
|
background-repeat: no-repeat;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="background"></div>
|
|
|
|
<!-- HACK: Force the document to wait for the image to load -->
|
|
<img src="../data/smiley.png" style="opacity: 0"/>
|
|
|
|
<script>
|
|
fetch("../data/smiley.png")
|
|
.then(response => response.blob())
|
|
.then(blob => {
|
|
const url = URL.createObjectURL(blob);
|
|
background.style.backgroundImage = `url('${url}')`;
|
|
|
|
// FIXME: This is pretty hacky. We don't have a way to wait for the background image URL to load to
|
|
// signal that the test is done. So we load a second blob URL using Image, which we can wait
|
|
// upon. Since these are sequential, the second image load indicates that the first is done.
|
|
requestAnimationFrame(() => {
|
|
const image = new Image();
|
|
image.addEventListener("load", () => {
|
|
requestAnimationFrame(() => {
|
|
document.documentElement.classList.remove("reftest-wait");
|
|
});
|
|
});
|
|
image.src = URL.createObjectURL(blob);
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|