From e004a926259e96956bc10c106746812e5eeddaeb Mon Sep 17 00:00:00 2001 From: Matt Woodrow Date: Thu, 17 Dec 2015 16:22:49 +1300 Subject: [PATCH] Bug 1230780 - Propagate preserve-3d handling through nsDisplayPerspective. r=thinker --HG-- extra : rebase_source : 7100cdf247c2e9d5fd17096722a718f074bfe504 --- layout/base/nsDisplayList.cpp | 17 ++++++++++++++++- layout/base/nsDisplayList.h | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/layout/base/nsDisplayList.cpp b/layout/base/nsDisplayList.cpp index 7504866712bc..0f73787f13e6 100644 --- a/layout/base/nsDisplayList.cpp +++ b/layout/base/nsDisplayList.cpp @@ -6107,6 +6107,18 @@ void nsDisplayTransform::WriteDebugInfo(std::stringstream& aStream) { AppendToString(aStream, GetTransform()); + if (IsTransformSeparator()) { + aStream << " transform-separator"; + } + if (IsLeafOf3DContext()) { + aStream << " 3d-context-leaf"; + } + if (mFrame->Extend3DContext()) { + aStream << " extends-3d-context"; + } + if (mFrame->Combines3DTransformWithAncestors()) { + aStream << " combines-3d-with-ancestors"; + } } nsDisplayPerspective::nsDisplayPerspective(nsDisplayListBuilder* aBuilder, @@ -6117,7 +6129,10 @@ nsDisplayPerspective::nsDisplayPerspective(nsDisplayListBuilder* aBuilder, , mList(aBuilder, aPerspectiveFrame, aList) , mTransformFrame(aTransformFrame) , mIndex(aBuilder->AllocatePerspectiveItemIndex()) -{} +{ + MOZ_ASSERT(mList.GetChildren()->Count() == 1); + MOZ_ASSERT(mList.GetChildren()->GetTop()->GetType() == TYPE_TRANSFORM); +} already_AddRefed nsDisplayPerspective::BuildLayer(nsDisplayListBuilder *aBuilder, diff --git a/layout/base/nsDisplayList.h b/layout/base/nsDisplayList.h index 69982a38491a..1e79452f218b 100644 --- a/layout/base/nsDisplayList.h +++ b/layout/base/nsDisplayList.h @@ -4214,7 +4214,7 @@ public: virtual bool ShouldBuildLayerEvenIfInvisible(nsDisplayListBuilder* aBuilder) override { - return mList.ShouldBuildLayerEvenIfInvisible(aBuilder); + return mList.GetChildren()->GetTop()->ShouldBuildLayerEvenIfInvisible(aBuilder); } virtual already_AddRefed BuildLayer(nsDisplayListBuilder* aBuilder,