content/base/test/mutationobserver_dialog.html

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 <html>
     2   <head>
     3     <title></title>
     4     <script>
     6     var div = document.createElement("div");
     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     }
    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     }
    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     }
    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>

mercurial