зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
610597891f
Коммит
4c319c0ce7
|
@ -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 {
|
||||
|
|
Загрузка…
Ссылка в новой задаче