Bug 1355193 - Stop looking for a parent stacking context in the scroll metadata. r?mchang
MozReview-Commit-ID: A2VjaUohUxh
--- a/gfx/layers/wr/WebRenderLayerManager.cpp
+++ b/gfx/layers/wr/WebRenderLayerManager.cpp
@@ -56,45 +56,40 @@ WebRenderLayer::RelativeToTransformedVis
{
IntRect bounds = GetLayer()->GetVisibleRegion().GetBounds().ToUnknownRect();
Rect transformed = GetLayer()->GetTransform().TransformBounds(IntRectToRect(bounds));
aRect.MoveBy(-transformed.x, -transformed.y);
return aRect;
}
Rect
-WebRenderLayer::ParentStackingContextBounds(size_t aScrollMetadataIndex)
+WebRenderLayer::ParentStackingContextBounds()
{
// Walk up to find the parent stacking context. This will be created either
// by the nearest scrollable metrics, or by the parent layer which must be a
// ContainerLayer.
Layer* layer = GetLayer();
- for (size_t i = aScrollMetadataIndex + 1; i < layer->GetScrollMetadataCount(); i++) {
- if (layer->GetFrameMetrics(i).IsScrollable()) {
- return layer->GetFrameMetrics(i).GetCompositionBounds().ToUnknownRect();
- }
- }
if (layer->GetParent()) {
return IntRectToRect(layer->GetParent()->GetVisibleRegion().GetBounds().ToUnknownRect());
}
return Rect();
}
Rect
WebRenderLayer::RelativeToParent(Rect aRect)
{
- Rect parentBounds = ParentStackingContextBounds(-1);
+ Rect parentBounds = ParentStackingContextBounds();
aRect.MoveBy(-parentBounds.x, -parentBounds.y);
return aRect;
}
Point
WebRenderLayer::GetOffsetToParent()
{
- Rect parentBounds = ParentStackingContextBounds(-1);
+ Rect parentBounds = ParentStackingContextBounds();
return parentBounds.TopLeft();
}
Rect
WebRenderLayer::VisibleBoundsRelativeToParent()
{
return RelativeToParent(IntRectToRect(GetLayer()->GetVisibleRegion().GetBounds().ToUnknownRect()));
}
--- a/gfx/layers/wr/WebRenderLayerManager.h
+++ b/gfx/layers/wr/WebRenderLayerManager.h
@@ -43,17 +43,17 @@ public:
return static_cast<WebRenderLayer*>(aLayer->ImplData());
}
WebRenderLayerManager* WrManager();
WebRenderBridgeChild* WrBridge();
gfx::Rect RelativeToVisible(gfx::Rect aRect);
gfx::Rect RelativeToTransformedVisible(gfx::Rect aRect);
- gfx::Rect ParentStackingContextBounds(size_t aScrollMetadataIndex);
+ gfx::Rect ParentStackingContextBounds();
gfx::Rect RelativeToParent(gfx::Rect aRect);
gfx::Rect VisibleBoundsRelativeToParent();
gfx::Point GetOffsetToParent();
gfx::Rect TransformedVisibleBoundsRelativeToParent();
protected:
gfx::Rect GetWrBoundsRect();
gfx::Rect GetWrRelBounds();
gfx::Rect GetWrClipRect(gfx::Rect& aRect);