###!!! ASSERTION: Can't get a delta for an untransformed frame!: 'aFrame->GetStyleDisplay()->HasTransform()', file layout/base/nsDisplayList.cpp, line 2370 ###!!! ASSERTION: If we don't have a transform, then we must be at least attempting to preserve the transforms of our children: 'aFrame->GetStyleDisplay()->mTransformStyle == NS_STYLE_TRANSFORM_STYLE_PRESERVE_3D', file layout/base/nsDisplayList.cpp, line 2518
nsSVGForeignObjectFrame::IsTransformed is overridden to always return true, which is what we we're checking in nsFrame::FinishAndStoreOverflow. nsDisplayTransform::GetResultingTransformMatrix requires GetStyleDisplay()->HasTransform() to be true, which it isn't I'm not sure what the proper behaviour here is, why are foreign objects returning true for transformed when they don't have a transform?
If it's not actually transformed maybe we can make it return false?
http://mxr.mozilla.org/mozilla-central/source/layout/svg/base/src/nsSVGForeignObjectFrame.h#84 This looks like an intentional change? The default implementation would be returning false here, I'm not sure why it has an override.
Perhaps it was just simpler than checking if it actually had a non-identity transform?
Modified assertion still happens on trunk: ###!!! ASSERTION: If we don't have a transform, then we must have another reason to have an nsDisplayTransform created: 'aFrame->GetStyleDisplay()->mTransformStyle == NS_STYLE_TRANSFORM_STYLE_PRESERVE_3D || aFrame->GetStyleDisplay()->mBackfaceVisibility == NS_STYLE_BACKFACE_VISIBILITY_HIDDEN', file layout/base/nsDisplayList.cpp, line 2557
No longer asserts on trunk.
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.