Bug 1610731 - Remove GetIsStickyPosition and clean up some TODOs. r=botond

The GetIsStickyPosition function isn't really needed since we can distinguish
whether or not a layer is sticky via NULL_SCROLL_ID as the container id. Also
ensure we have proper AtBottomLayer checks where needed for fixed and sticky
data.

Differential Revision: https://phabricator.services.mozilla.com/D69554

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Kartikaya Gupta 2020-04-04 06:16:57 +00:00
Родитель 610597891f
Коммит 4c319c0ce7
3 изменённых файлов: 45 добавлений и 38 удалений

Просмотреть файл

@ -409,38 +409,50 @@ class MOZ_STACK_CLASS LayerMetricsWrapper final {
ScrollableLayerGuid::ViewID GetFixedPositionScrollContainerId() const {
MOZ_ASSERT(IsValid());
// TODO: Restrict this only for AtBottomLayer.
return mLayer->GetFixedPositionScrollContainerId();
if (AtBottomLayer()) {
return mLayer->GetFixedPositionScrollContainerId();
}
return ScrollableLayerGuid::NULL_SCROLL_ID;
}
SideBits GetFixedPositionSides() const {
MOZ_ASSERT(IsValid());
return mLayer->GetFixedPositionSides();
}
bool GetIsStickyPosition() const {
MOZ_ASSERT(IsValid());
return mLayer->GetIsStickyPosition();
if (AtBottomLayer()) {
return mLayer->GetFixedPositionSides();
}
return SideBits::eNone;
}
ScrollableLayerGuid::ViewID GetStickyScrollContainerId() const {
MOZ_ASSERT(IsValid());
// TODO: Restrict this only for AtBottomLayer.
return mLayer->GetStickyScrollContainerId();
if (AtBottomLayer() && mLayer->GetIsStickyPosition()) {
return mLayer->GetStickyScrollContainerId();
}
return ScrollableLayerGuid::NULL_SCROLL_ID;
}
const LayerRectAbsolute& GetStickyScrollRangeOuter() const {
MOZ_ASSERT(IsValid());
return mLayer->GetStickyScrollRangeOuter();
if (AtBottomLayer() && mLayer->GetIsStickyPosition()) {
return mLayer->GetStickyScrollRangeOuter();
}
static const LayerRectAbsolute empty;
return empty;
}
const LayerRectAbsolute& GetStickyScrollRangeInner() const {
MOZ_ASSERT(IsValid());
return mLayer->GetStickyScrollRangeInner();
if (AtBottomLayer() && mLayer->GetIsStickyPosition()) {
return mLayer->GetStickyScrollRangeInner();
}
static const LayerRectAbsolute empty;
return empty;
}
Maybe<uint64_t> GetZoomAnimationId() const {

Просмотреть файл

@ -1174,14 +1174,9 @@ HitTestingTreeNode* APZCTreeManager::PrepareNodeForLayer(
node->SetFixedPosData(aLayer.GetFixedPositionScrollContainerId(),
aLayer.GetFixedPositionSides(),
aLayer.GetFixedPositionAnimationId());
if (aLayer.GetIsStickyPosition()) {
node->SetStickyPosData(aLayer.GetStickyScrollContainerId(),
aLayer.GetStickyScrollRangeOuter(),
aLayer.GetStickyScrollRangeInner());
} else {
node->SetStickyPosData(ScrollableLayerGuid::NULL_SCROLL_ID,
LayerRectAbsolute(), LayerRectAbsolute());
}
node->SetStickyPosData(aLayer.GetStickyScrollContainerId(),
aLayer.GetStickyScrollRangeOuter(),
aLayer.GetStickyScrollRangeInner());
return node;
}
@ -1408,14 +1403,9 @@ HitTestingTreeNode* APZCTreeManager::PrepareNodeForLayer(
node->SetFixedPosData(aLayer.GetFixedPositionScrollContainerId(),
aLayer.GetFixedPositionSides(),
aLayer.GetFixedPositionAnimationId());
if (aLayer.GetIsStickyPosition()) {
node->SetStickyPosData(aLayer.GetStickyScrollContainerId(),
aLayer.GetStickyScrollRangeOuter(),
aLayer.GetStickyScrollRangeInner());
} else {
node->SetStickyPosData(ScrollableLayerGuid::NULL_SCROLL_ID,
LayerRectAbsolute(), LayerRectAbsolute());
}
node->SetStickyPosData(aLayer.GetStickyScrollContainerId(),
aLayer.GetStickyScrollRangeOuter(),
aLayer.GetStickyScrollRangeInner());
return node;
}

Просмотреть файл

@ -304,24 +304,29 @@ class MOZ_STACK_CLASS WebRenderScrollDataWrapper final {
Maybe<uint64_t> GetFixedPositionAnimationId() const {
MOZ_ASSERT(IsValid());
return mLayer->GetFixedPositionAnimationId();
if (AtBottomLayer()) {
return mLayer->GetFixedPositionAnimationId();
}
return Nothing();
}
ScrollableLayerGuid::ViewID GetFixedPositionScrollContainerId() const {
MOZ_ASSERT(IsValid());
return mLayer->GetFixedPositionScrollContainerId();
if (AtBottomLayer()) {
return mLayer->GetFixedPositionScrollContainerId();
}
return ScrollableLayerGuid::NULL_SCROLL_ID;
}
SideBits GetFixedPositionSides() const {
MOZ_ASSERT(IsValid());
return mLayer->GetFixedPositionSides();
}
bool GetIsStickyPosition() const {
MOZ_ASSERT(IsValid());
// TODO: Bug 1610731 Implement this for WebRender.
return false;
if (AtBottomLayer()) {
return mLayer->GetFixedPositionSides();
}
return SideBits::eNone;
}
ScrollableLayerGuid::ViewID GetStickyScrollContainerId() const {