Bug 1459997 - Add much more rigorous assertions for retained-dl assumptions. r=miko

This adds an assertion checking for duplicate items whenever we create an item, and when we merge an item into the final list.

I had to disable tracking for the anonymous inner list for nsDisplayPerspective and nsDisplayTransform (and manually forward RemoveFrame to them), as well as skipping the assertion for multi-page (since we can end up duplicating wrap lists, but isn't a problem, since we don't retain these).

MozReview-Commit-ID: 4n6rx9bQNan
This commit is contained in:
Matt Woodrow
2018-05-01 11:56:40 -04:00
parent b61556aee2
commit b346e4815d
5 changed files with 103 additions and 19 deletions

View File

@@ -720,6 +720,8 @@ void
nsSimplePageSequenceFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
const nsDisplayListSet& aLists)
{
aBuilder->SetInPageSequence(true);
aBuilder->SetDisablePartialUpdates(true);
DisplayBorderBackgroundOutline(aBuilder, aLists);
nsDisplayList content;
@@ -753,6 +755,7 @@ nsSimplePageSequenceFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
::ComputePageSequenceTransform));
aLists.Content()->AppendToTop(&content);
aBuilder->SetInPageSequence(false);
}
//------------------------------------------------------------------------------