summaryrefslogtreecommitdiffstats
path: root/layout/reftests/bugs/1553571-1.html
blob: ee9e4782ab90801aec471fbb1cb5be9b85b2f934 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<!-- reftest-wait because it takes at least two changes of the transform style before it becomes active -->
<html class='reftest-wait'>
<head>
<script>
let num = 0;
let numMs = 50;
var changesLeft = 10;
function go() {
	window.setTimeout(changeit, 0);
}

function changeit() {
	var a = document.getElementById("a");
	a.style.transform = 'scale(' + (256.1 + Math.random()*0.01) + ')';

	num++;

	if (changesLeft > 0) {
		--changesLeft;
		window.setTimeout(changeit, numMs);
	}
	if (changesLeft == 0) {
		// 75-100ms is the timeout for expirty from the active layer tracker.
		// Increase the time between transform tweaks to 74ms to give the reftest the best
		// chance of running the mozafterpaint handler and checking that there are no more
		// paints pending so it can finish.
		numMs = 74;
		if (num >= 100 && navigator.appVersion.includes("Android")) {
			// That's not enough time on Android, so give it a bit more time. This still
			// reproduces the original bug with the original patch backed out, even though
			// one would think anything over 100ms would not reproduce, I'm not sure why.
			// It's better to run the this with this timeout then have the test disabled.
			numMs = 200;
		}
		window.setTimeout(changeit, numMs);
		document.documentElement.classList.remove("reftest-wait");
	}
}
</script>
</head>
<body onload="go();">
<div id="a" style="width: 1px; height: 1px; position: absolute; left: 200px; top: 200px;">
	<img style="width: 1px; height: 1px;" src="repeatable-diagonal-gradient.png">
</div>
</body>
</html>