<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=1151663 --> <head> <meta charset="utf-8"> <title>Test for Bug 1151663, helper page</title> <script type="application/javascript" src="apz_test_utils.js"></script> <script type="application/javascript"> // ------------------------------------------------------------------- // Infrastructure to get the test assertions to run at the right time. // ------------------------------------------------------------------- var SimpleTest = window.opener.SimpleTest; window.onload = function() { window.addEventListener("MozAfterPaint", afterPaint, false); }; var utils = SpecialPowers.getDOMWindowUtils(window); function afterPaint(e) { // If there is another paint pending, wait for it. if (utils.isMozAfterPaintPending) { return; } // Once there are no more paints pending, remove the // MozAfterPaint listener and run the test logic. window.removeEventListener("MozAfterPaint", afterPaint, false); testBug1151663(); } // -------------------------------------------------------------------- // The actual logic for testing bug 1151663. // // In this test we have a simple page which is scrollable, with a // scrollable <div> which is also scrollable. We test that the // <div> does not get an initial APZC, since primary scrollable // frame is the page's root scroll frame. // -------------------------------------------------------------------- function testBug1151663() { // Get the content- and compositor-side test data from nsIDOMWindowUtils. var contentTestData = utils.getContentAPZTestData(); var compositorTestData = utils.getCompositorAPZTestData(); // Get the sequence number of the last paint on the compositor side. // We do this before converting the APZ test data because the conversion // loses the order of the paints. SimpleTest.ok(compositorTestData.paints.length > 0, "expected at least one paint in compositor test data"); var lastCompositorPaint = compositorTestData.paints[compositorTestData.paints.length - 1]; var lastCompositorPaintSeqNo = lastCompositorPaint.sequenceNumber; // Convert the test data into a representation that's easier to navigate. contentTestData = convertTestData(contentTestData); compositorTestData = convertTestData(compositorTestData); var paint = compositorTestData.paints[lastCompositorPaintSeqNo]; // Reconstruct the APZC tree structure in the last paint. var apzcTree = buildApzcTree(paint); // The apzc tree for this page should consist of a single root APZC, // which either is the RCD with no child APZCs (e10s/B2G case) or has a // single child APZC which is for the RCD (fennec case). var rcd = findRcdNode(apzcTree); SimpleTest.ok(rcd != null, "found the RCD node"); SimpleTest.is(rcd.children.length, 0, "expected no children on the RCD"); window.opener.finishTest(); } </script> </head> <body style="height: 500px; overflow: scroll"> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1151663">Mozilla Bug 1151663</a> <div style="height: 50px; width: 50px; overflow: scroll"> <!-- Put enough content into the subframe to make it have a nonzero scroll range --> <div style="height: 100px; width: 50px"></div> </div> <!-- Put enough content into the page to make it have a nonzero scroll range --> <div style="height: 1000px"></div> </body> </html>