1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 23:17:46 +00:00

LibWeb: Begin implementing the HTMLInputElement 'image' type state

This implements enough to represent <input type=image> with its loaded
source image (or fallback to its alt text, if applicable). This does not
implement acquring coordinates from user-activated click events on the
image.
This commit is contained in:
Timothy Flynn 2024-02-18 21:12:14 -05:00 committed by Andreas Kling
parent 45a47cb32b
commit debb5690ce
7 changed files with 214 additions and 2 deletions

View file

@ -0,0 +1,31 @@
<script src="./include.js"></script>
<script type="text/javascript">
const SOURCES = ["../../Layout/input/120.png", "file:///i-do-no-exist-i-swear.png"];
const runTest = source => {
let input = document.createElement("input");
input.type = "image";
input.alt = "submit";
return new Promise((resolve, reject) => {
input.addEventListener("load", () => {
resolve(`${input.src} loaded`);
});
input.addEventListener("error", () => {
resolve(`${input.src} failed`);
});
input.setAttribute("src", source);
});
};
asyncTest(done => {
let promises = SOURCES.map(source => runTest(source));
Promise.allSettled(promises)
.then(results => results.map(result => result.value))
.then(results => results.sort())
.then(results => results.forEach(println))
.finally(done);
});
</script>