mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-05 16:22:53 +00:00
Bug 1613009 - Make SimpleLayerAttributes explicitly serialized. r=botond
Depends on D66819 Differential Revision: https://phabricator.services.mozilla.com/D66820 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
71c660e36c
commit
4795d60bd9
@ -265,6 +265,12 @@ struct ParamTraits<mozilla::gfx::ColorSpace>
|
||||
mozilla::gfx::ColorSpace::SRGB,
|
||||
mozilla::gfx::ColorSpace::Max> {};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<mozilla::gfx::CompositionOp>
|
||||
: public ContiguousEnumSerializerInclusive<
|
||||
mozilla::gfx::CompositionOp, mozilla::gfx::CompositionOp::OP_OVER,
|
||||
mozilla::gfx::CompositionOp::OP_COUNT> {};
|
||||
|
||||
/*
|
||||
template <>
|
||||
struct ParamTraits<mozilla::PixelFormat>
|
||||
|
@ -132,8 +132,7 @@ struct ScrollbarData {
|
||||
};
|
||||
|
||||
/**
|
||||
* Infrequently changing layer attributes that require no special
|
||||
* serialization work.
|
||||
* Infrequently changing layer attributes.
|
||||
*/
|
||||
class SimpleLayerAttributes final {
|
||||
friend struct IPC::ParamTraits<mozilla::layers::SimpleLayerAttributes>;
|
||||
@ -388,6 +387,8 @@ class SimpleLayerAttributes final {
|
||||
SideBits mSides;
|
||||
};
|
||||
Maybe<FixedPositionData> mFixedPositionData;
|
||||
friend struct IPC::ParamTraits<
|
||||
mozilla::layers::SimpleLayerAttributes::FixedPositionData>;
|
||||
|
||||
struct StickyPositionData {
|
||||
ScrollableLayerGuid::ViewID mScrollId;
|
||||
@ -395,11 +396,11 @@ class SimpleLayerAttributes final {
|
||||
LayerRectAbsolute mInner;
|
||||
};
|
||||
Maybe<StickyPositionData> mStickyPositionData;
|
||||
friend struct IPC::ParamTraits<
|
||||
mozilla::layers::SimpleLayerAttributes::StickyPositionData>;
|
||||
|
||||
/**
|
||||
* This class may only contain plain-old-data members that can be safely
|
||||
* copied over IPC. Make sure to add new members to operator ==.
|
||||
*/
|
||||
// Make sure to add new members to operator== and the ParamTraits template
|
||||
// instantiation.
|
||||
};
|
||||
|
||||
} // namespace layers
|
||||
|
@ -836,8 +836,54 @@ struct ParamTraits<mozilla::layers::ScrollbarData> {
|
||||
};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<mozilla::layers::SimpleLayerAttributes>
|
||||
: public PlainOldDataSerializer<mozilla::layers::SimpleLayerAttributes> {};
|
||||
struct ParamTraits<mozilla::layers::SimpleLayerAttributes::FixedPositionData>
|
||||
: public PlainOldDataSerializer<
|
||||
mozilla::layers::SimpleLayerAttributes::FixedPositionData> {};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<mozilla::layers::SimpleLayerAttributes::StickyPositionData>
|
||||
: public PlainOldDataSerializer<
|
||||
mozilla::layers::SimpleLayerAttributes::StickyPositionData> {};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<mozilla::layers::SimpleLayerAttributes> {
|
||||
typedef mozilla::layers::SimpleLayerAttributes paramType;
|
||||
|
||||
static void Write(Message* aMsg, const paramType& aParam) {
|
||||
WriteParam(aMsg, aParam.mTransform);
|
||||
WriteParam(aMsg, aParam.mTransformIsPerspective);
|
||||
WriteParam(aMsg, aParam.mScrolledClip);
|
||||
WriteParam(aMsg, aParam.mPostXScale);
|
||||
WriteParam(aMsg, aParam.mPostYScale);
|
||||
WriteParam(aMsg, aParam.mContentFlags);
|
||||
WriteParam(aMsg, aParam.mOpacity);
|
||||
WriteParam(aMsg, aParam.mIsFixedPosition);
|
||||
WriteParam(aMsg, aParam.mIsAsyncZoomContainerForViewId);
|
||||
WriteParam(aMsg, aParam.mScrollbarData);
|
||||
WriteParam(aMsg, aParam.mMixBlendMode);
|
||||
WriteParam(aMsg, aParam.mForceIsolatedGroup);
|
||||
WriteParam(aMsg, aParam.mFixedPositionData);
|
||||
WriteParam(aMsg, aParam.mStickyPositionData);
|
||||
}
|
||||
|
||||
static bool Read(const Message* aMsg, PickleIterator* aIter,
|
||||
paramType* aResult) {
|
||||
return ReadParam(aMsg, aIter, &aResult->mTransform) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mTransformIsPerspective) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mScrolledClip) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mPostXScale) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mPostYScale) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mContentFlags) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mOpacity) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mIsFixedPosition) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mIsAsyncZoomContainerForViewId) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mScrollbarData) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mMixBlendMode) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mForceIsolatedGroup) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mFixedPositionData) &&
|
||||
ReadParam(aMsg, aIter, &aResult->mStickyPositionData);
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<mozilla::layers::ScrollUpdateInfo>
|
||||
|
Loading…
x
Reference in New Issue
Block a user