mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-24 09:27:31 +09:00
83 lines
3.5 KiB
HTML
83 lines
3.5 KiB
HTML
|
|
<!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>
|