mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-13 04:21:54 +00:00
LibWeb: Add SVGImageElement load and error events
This resolves all WPT timeouts in html/canvas/element/manual/imagebitmap We can now run an additional 6 tests and 126 subtests :) This also adds regression tests for this behavior.
This commit is contained in:
parent
c097f53875
commit
0c04bd6676
Notes:
github-actions[bot]
2024-10-16 22:00:25 +00:00
Author: https://github.com/beuss-git
Commit: 0c04bd6676
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1830
Reviewed-by: https://github.com/AtkinsSJ ✅
3 changed files with 49 additions and 0 deletions
|
@ -0,0 +1,41 @@
|
|||
<!DOCTYPE html>
|
||||
<script src="../include.js"></script>
|
||||
<script type="text/javascript">
|
||||
const SOURCES = [
|
||||
"data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==", // Valid
|
||||
"file:///i-do-not-exist", // invalid
|
||||
"https://something.invalid", // invalid
|
||||
];
|
||||
|
||||
const runTest = (source) => {
|
||||
const svgNamespace = "http://www.w3.org/2000/svg";
|
||||
const image = document.createElementNS(svgNamespace, "image");
|
||||
const svg = document.createElementNS(svgNamespace, "svg");
|
||||
svg.appendChild(image);
|
||||
document.body.appendChild(svg);
|
||||
|
||||
return new Promise((resolve) => {
|
||||
image.addEventListener("load", () => {
|
||||
resolve(`SUCCESS: "${source}"`);
|
||||
document.body.removeChild(svg);
|
||||
});
|
||||
|
||||
image.addEventListener("error", () => {
|
||||
resolve(`FAIL: "${source}"`);
|
||||
document.body.removeChild(svg);
|
||||
});
|
||||
|
||||
image.setAttributeNS("http://www.w3.org/1999/xlink", "href", source);
|
||||
});
|
||||
};
|
||||
|
||||
asyncTest(done => {
|
||||
const promises = SOURCES.map(source => runTest(source));
|
||||
|
||||
Promise.allSettled(promises)
|
||||
.then(results => {
|
||||
results.forEach(result => println(result.value));
|
||||
})
|
||||
.finally(done);
|
||||
});
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue