зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1512838 - Skip over empty transaction buckets in isLayerized. r=botond
Sometimes we can get empty transactions after a scrollframe is layerized. In such cases the isLayerized check would incorrectly detect the scrollframe as not being layerized because it would only look at the data for the empty transaction. Differential Revision: https://phabricator.services.mozilla.com/D23495 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
4a9719b73e
Коммит
01ce19d355
|
@ -57,6 +57,9 @@ function convertTestData(testData) {
|
|||
return result;
|
||||
}
|
||||
|
||||
// Returns the last bucket that has at least one scrollframe. This
|
||||
// is useful for skipping over buckets that are from empty transactions,
|
||||
// because those don't contain any useful data.
|
||||
function getLastNonemptyBucket(buckets) {
|
||||
for (var i = buckets.length - 1; i >= 0; --i) {
|
||||
if (buckets[i].scrollFrames.length > 0) {
|
||||
|
@ -126,8 +129,9 @@ function findRcdNode(apzcTree) {
|
|||
// element, and not in the content descriptions of other elements.
|
||||
function isLayerized(elementId) {
|
||||
var contentTestData = SpecialPowers.getDOMWindowUtils(window).getContentAPZTestData();
|
||||
ok(contentTestData.paints.length > 0, "expected at least one paint");
|
||||
var seqno = contentTestData.paints[contentTestData.paints.length - 1].sequenceNumber;
|
||||
var nonEmptyBucket = getLastNonemptyBucket(contentTestData.paints);
|
||||
ok(nonEmptyBucket != null, "expected at least one nonempty paint");
|
||||
var seqno = nonEmptyBucket.sequenceNumber;
|
||||
contentTestData = convertTestData(contentTestData);
|
||||
var paint = contentTestData.paints[seqno];
|
||||
for (var scrollId in paint) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче