|
1 <html> |
|
2 <head> |
|
3 <title></title> |
|
4 <script> |
|
5 |
|
6 var div = document.createElement("div"); |
|
7 |
|
8 var M; |
|
9 if ("MozMutationObserver" in window) { |
|
10 M = window.MozMutationObserver; |
|
11 } else if ("WebKitMutationObserver" in window) { |
|
12 M = window.WebKitMutationObserver; |
|
13 } else { |
|
14 M = window.MutationObserver; |
|
15 } |
|
16 |
|
17 var didCall1 = false; |
|
18 var didCall2 = false; |
|
19 function testMutationObserverInDialog() { |
|
20 div.innerHTML = "<span>1</span><span>2</span>"; |
|
21 m = new M(function(records, observer) { |
|
22 opener.is(records[0].type, "childList", "Should have got childList"); |
|
23 opener.is(records[0].removedNodes.length, 2, "Should have got removedNodes"); |
|
24 opener.is(records[0].addedNodes.length, 1, "Should have got addedNodes"); |
|
25 observer.disconnect(); |
|
26 m = null; |
|
27 didCall1 = true; |
|
28 }); |
|
29 m.observe(div, { childList: true }); |
|
30 div.innerHTML = "<span><span>foo</span></span>"; |
|
31 } |
|
32 |
|
33 function testMutationObserverInDialog2() { |
|
34 div.innerHTML = "<span>1</span><span>2</span>"; |
|
35 m = new M(function(records, observer) { |
|
36 opener.is(records[0].type, "childList", "Should have got childList"); |
|
37 opener.is(records[0].removedNodes.length, 2, "Should have got removedNodes"); |
|
38 opener.is(records[0].addedNodes.length, 1, "Should have got addedNodes"); |
|
39 observer.disconnect(); |
|
40 m = null; |
|
41 didCall2 = true; |
|
42 }); |
|
43 m.observe(div, { childList: true }); |
|
44 div.innerHTML = "<span><span>foo</span></span>"; |
|
45 } |
|
46 |
|
47 window.addEventListener("load", testMutationObserverInDialog); |
|
48 window.addEventListener("load", testMutationObserverInDialog2); |
|
49 window.addEventListener("load", |
|
50 function() { |
|
51 opener.ok(didCall1, "Should have called 1st mutation callback"); |
|
52 opener.ok(didCall2, "Should have called 2nd mutation callback"); |
|
53 window.close(); |
|
54 }); |
|
55 </script> |
|
56 <style> |
|
57 </style> |
|
58 </head> |
|
59 <body> |
|
60 <input type="button" onclick="window.close()" value="close"> |
|
61 </body> |
|
62 </html> |