blob: 6d63e939fe882688c93e47efd4b0cedbc7528c57 (
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
|
<!DOCTYPE html>
<html>
<body onload="go()">
<svg id="outerSvg" width="50%" height="50%"
style="border: 1px solid black">
</svg>
<script type="application/javascript">
/* I'm not sure what exactly was required to trigger bug 1288228's crash,
* but it involved tweaking a length's specified units and cycle-collecting
* and reloading (in some combination). So, we'll tweak the units and
* cycle-collect a few times, and message the outer page to reload us
* after we've made the first tweak.
*/
const maxTweaks = 5;
let remainingTweaks = maxTweaks;
var savedBaseVal = document.getElementById("outerSvg").width.baseVal;
function go() {
window.parent.SpecialPowers.DOMWindowUtils.cycleCollect();
tweak();
}
function tweak() {
console.log("tweaked");
savedBaseVal.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX);
savedBaseVal.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PERCENTAGE);
if (remainingTweaks == maxTweaks) {
window.parent.postMessage("ping", "*"); // only do this on first tweak
}
if (--remainingTweaks) {
setTimeout(tweak, 0);
}
}
</script>
</body>
</html>
|