| Index: Source/core/rendering/RenderLayer.cpp
|
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp
|
| index 93380db250e91806bf56f1d8e465a2cf942a4d71..979cee9ce2c735cfdd035f4d2de9be7252bf889e 100644
|
| --- a/Source/core/rendering/RenderLayer.cpp
|
| +++ b/Source/core/rendering/RenderLayer.cpp
|
| @@ -126,6 +126,7 @@ RenderLayer::RenderLayer(RenderLayerModelObject* renderer, LayerType type)
|
| , m_containsDirtyOverlayScrollbars(false)
|
| , m_canSkipRepaintRectsUpdateOnScroll(renderer->isTableCell())
|
| , m_hasFilterInfo(false)
|
| + , m_needsToRecomputeBounds(true)
|
| , m_renderer(renderer)
|
| , m_parent(0)
|
| , m_previous(0)
|
| @@ -1211,6 +1212,17 @@ RenderLayer* RenderLayer::enclosingFilterLayer(IncludeSelfOrNot includeSelf) con
|
| return 0;
|
| }
|
|
|
| +void RenderLayer::clearNeedsToRecomputeBounds()
|
| +{
|
| + m_needsToRecomputeBounds = false;
|
| +}
|
| +
|
| +void RenderLayer::setAbsoluteBoundingBox(const IntRect& rect)
|
| +{
|
| + m_absoluteBoundingBox = rect;
|
| + clearNeedsToRecomputeBounds();
|
| +}
|
| +
|
| void RenderLayer::setCompositingReasons(CompositingReasons reasons, CompositingReasons mask)
|
| {
|
| ASSERT(reasons == (reasons & mask));
|
| @@ -3418,11 +3430,6 @@ LayoutRect RenderLayer::boundingBox(const RenderLayer* ancestorLayer, CalculateL
|
| return result;
|
| }
|
|
|
| -IntRect RenderLayer::absoluteBoundingBox() const
|
| -{
|
| - return pixelSnappedIntRect(boundingBox(root()));
|
| -}
|
| -
|
| LayoutRect RenderLayer::calculateLayerBounds(const RenderLayer* ancestorLayer, const LayoutPoint* offsetFromRoot, CalculateLayerBoundsFlags flags) const
|
| {
|
| if (!isSelfPaintingLayer())
|
| @@ -3957,8 +3964,13 @@ void RenderLayer::styleChanged(StyleDifference diff, const RenderStyle* oldStyle
|
| // https://code.google.com/p/chromium/issues/detail?id=343756
|
| DisableCompositingQueryAsserts disabler;
|
|
|
| + // FIXME: We could avoid doing this ancestor walk by keeping a childNeedsToRecomputeBounds bit
|
| + // and using that along with needsToRecomputeBounds to set this bit in a later layer tree walk
|
| + // e.g. during assignLayersToBackings or computeCompositingRequirements.
|
| if (RenderLayer* compositingLayer = enclosingCompositingLayer())
|
| compositingLayer->compositedLayerMapping()->setNeedsGeometryUpdate();
|
| + // FIXME: We only need to set this if something changed that can change our absolute bounding rect.
|
| + m_needsToRecomputeBounds = true;
|
|
|
| const RenderStyle* newStyle = renderer()->style();
|
|
|
|
|