<!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf8"> <title>Test for the Reflow Activity</title> <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script type="text/javascript;version=1.8" src="common.js"></script> <!-- Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ --> </head> <body> <p>Test for reflow events</p> <script class="testbody" type="text/javascript;version=1.8"> SimpleTest.waitForExplicitFinish(); let client; function generateReflow() { top.document.documentElement.style.display = "none"; top.document.documentElement.getBoundingClientRect(); top.document.documentElement.style.display = "block"; } function startTest() { removeEventListener("load", startTest); attachConsoleToTab(["ReflowActivity"], onAttach); } function onAttach(aState, aResponse) { client = aState.dbgClient; onReflowActivity = onReflowActivity.bind(null, aState); client.addListener("reflowActivity", onReflowActivity); generateReflow(); } // We are expecting 3 reflow events. let expectedEvents = [ { interruptible: false, sourceURL: "chrome://mochitests/content/chrome/devtools/shared/webconsole/test/test_reflow.html", functionName: "generateReflow" }, { interruptible: true, sourceURL: null, functionName: null }, { interruptible: true, sourceURL: null, functionName: null }, ]; let receivedEvents = []; function onReflowActivity(aState, aType, aPacket) { info("packet: " + aPacket.message); receivedEvents.push(aPacket); if (receivedEvents.length == expectedEvents.length) { checkEvents(); finish(aState); } } function checkEvents() { for (let i = 0; i < expectedEvents.length; i++) { let a = expectedEvents[i]; let b = receivedEvents[i]; for (let key in a) { is(a[key], b[key], "field " + key + " is valid"); } } } function finish(aState) { client.removeListener("reflowActivity", onReflowActivity); closeDebugger(aState, function() { SimpleTest.finish(); }); } addEventListener("load", startTest); </script> </body> </html>