mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 18:26:15 +00:00
f6d109ce74
This static method is assumed to have the same signature as the type's constructor, and so we must have an implementation of ComputePerFrameKey for each constructor a display item provides that is called by MakeDisplayItem. Notably this excludes the MakeClone constructor for a lot of items. There is a default varargs implementation on nsDisplayItem which everyone inherits by default, so types which previously didn't overload this method still don't need to. Providing an implementation of ComputePerFrameKey on some display item type shadows the varargs implementation, so one doesn't need to worry about overloading one constructor but forgetting about another -- if you do, the compiler will only see the overload and complain that the signature doesn't match. One slightly annoying result of this is that display items which previously inherited an overloaded implementation from a superclass now must provide their own manual implementations. Although as far as I could tell, all of those cases had a trivial implementation of key=0 (the super class supported custom keys but the subclasses didn't make use of it). In those cases I just hardcoded key=0, but it's possible that it would be better to call into the superclass' implementation to be more robust to changes. Differential Revision: https://phabricator.services.mozilla.com/D37803 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
crashtests | ||
ActiveLayerTracker.cpp | ||
ActiveLayerTracker.h | ||
BorderCache.h | ||
BorderConsts.h | ||
DashedCornerFinder.cpp | ||
DashedCornerFinder.h | ||
DisplayItemClip.cpp | ||
DisplayItemClip.h | ||
DisplayItemClipChain.cpp | ||
DisplayItemClipChain.h | ||
DisplayListChecker.cpp | ||
DisplayListChecker.h | ||
DisplayListClipState.cpp | ||
DisplayListClipState.h | ||
DottedCornerFinder.cpp | ||
DottedCornerFinder.h | ||
FrameLayerBuilder.cpp | ||
FrameLayerBuilder.h | ||
LayerState.h | ||
MaskLayerImageCache.cpp | ||
MaskLayerImageCache.h | ||
MatrixStack.h | ||
moz.build | ||
nsCSSRendering.cpp | ||
nsCSSRendering.h | ||
nsCSSRenderingBorders.cpp | ||
nsCSSRenderingBorders.h | ||
nsCSSRenderingGradients.cpp | ||
nsCSSRenderingGradients.h | ||
nsDisplayItemTypes.h | ||
nsDisplayItemTypesList.h | ||
nsDisplayList.cpp | ||
nsDisplayList.h | ||
nsDisplayListArenaTypes.h | ||
nsDisplayListInvalidation.cpp | ||
nsDisplayListInvalidation.h | ||
nsImageRenderer.cpp | ||
nsImageRenderer.h | ||
PaintTracker.cpp | ||
PaintTracker.h | ||
RetainedDisplayListBuilder.cpp | ||
RetainedDisplayListBuilder.h | ||
RetainedDisplayListHelpers.h | ||
TransformClipNode.h |