summaryrefslogtreecommitdiffstats
path: root/LayoutTests/fast/dom/Node/mutation-blur.html
blob: 173409e3b8f24b70a2955c845da302ee2ace01db (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<html>
<head>
<script>
    if (window.layoutTestController) {
        layoutTestController.dumpAsText();
        layoutTestController.waitUntilDone();
    }

    var container1;
    var container2;
    var elem;

    function handler2()
    {
        container2.appendChild(elem);
    }

    function onload()
    {
        container1 = document.getElementById("newcontainer1");
        container2 = document.getElementById("newcontainer2");

        if (!window.eventSender)
            return;

        var rect = document.getElementById("trigger").getBoundingClientRect();
        eventSender.mouseMoveTo(rect.left + rect.width / 2, rect.top + rect.height / 2);
        eventSender.mouseDown();
        eventSender.mouseUp();
    }

    function onpress()
    {
        elem = document.getElementById("subcontainer1");
        document.getElementById("sub1").focus();

        try {
            container1.appendChild(elem);
            container1.removeChild(elem);
            elem = null;
        }
        catch (e) { }

        // Force GC.
        if (this.GCController)
            GCController.collect();
        else {
            for (var i = 0; i < 10000; ++i) {
                ({ });
            }
        }

        document.body.removeChild(container2);

        if (window.layoutTestController)
            layoutTestController.notifyDone();

    }

</script>
</head>
<body onload="onload()">
<p>Tests for proper handling of DOM changes during a blur event. If the test doesn't crash, it passed.
<div id="subcontainer1">
    <textarea id="sub1" onblur="handler2()"></textarea>
</div>

<input id="trigger" type="button" name="Press" value="press" onclick="onpress()">
<div id="newcontainer1"></div>
<div id="newcontainer2"></div>

</body>
</html>