summaryrefslogtreecommitdiffstats
path: root/layout/style/test/test_img_src_causing_reflow.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/style/test/test_img_src_causing_reflow.html')
-rw-r--r--layout/style/test/test_img_src_causing_reflow.html36
1 files changed, 36 insertions, 0 deletions
diff --git a/layout/style/test/test_img_src_causing_reflow.html b/layout/style/test/test_img_src_causing_reflow.html
new file mode 100644
index 0000000000..e63b39f9fe
--- /dev/null
+++ b/layout/style/test/test_img_src_causing_reflow.html
@@ -0,0 +1,36 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Test for bug 1787072</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<style>
+img {
+ width: 100px;
+ height: 100px;
+ background-color: blue;
+}
+</style>
+<img> <!-- Initially broken -->
+<script>
+add_task(async function() {
+ const utils = SpecialPowers.DOMWindowUtils;
+ const img = document.querySelector("img");
+ img.getBoundingClientRect();
+
+ let origFramesConstructed = utils.framesConstructed;
+ let origFramesReflowed = utils.framesReflowed;
+
+ let error = new Promise(r => img.addEventListener("error", r, { once: true }));
+
+ // Doesn't need to be an actual image.
+ img.src = "/some-valid-url";
+
+ img.getBoundingClientRect();
+ is(origFramesReflowed, utils.framesReflowed, "Shouldn't have reflowed when going broken -> loading");
+ is(origFramesConstructed, utils.framesConstructed, "Shouldn't have reflowed when going broken -> loading");
+
+ await error;
+
+ is(origFramesReflowed, utils.framesReflowed, "Shouldn't have reflowed when going loading -> broken");
+ is(origFramesConstructed, utils.framesConstructed, "Shouldn't have reflowed when going loading -> broken");
+});
+</script>