| Index: Source/core/rendering/RenderLayer.cpp
|
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp
|
| index 9e24170a350a2479773e8459571027253a111896..211e6f0c0ccb05ee9271759c2abd7463e4945f5f 100644
|
| --- a/Source/core/rendering/RenderLayer.cpp
|
| +++ b/Source/core/rendering/RenderLayer.cpp
|
| @@ -609,6 +609,18 @@ TransformationMatrix RenderLayer::renderableTransform(PaintBehavior paintBehavio
|
| return *m_transform;
|
| }
|
|
|
| +RenderLayer* RenderLayer::enclosingOverflowClipLayer(IncludeSelfOrNot includeSelf) const
|
| +{
|
| + const RenderLayer* layer = (includeSelf == IncludeSelf) ? this : parent();
|
| + while (layer) {
|
| + if (layer->renderer()->hasOverflowClip())
|
| + return const_cast<RenderLayer*>(layer);
|
| +
|
| + layer = layer->parent();
|
| + }
|
| + return 0;
|
| +}
|
| +
|
| static bool checkContainingBlockChainForPagination(RenderLayerModelObject* renderer, RenderBox* ancestorColumnsRenderer)
|
| {
|
| RenderView* view = renderer->view();
|
| @@ -1105,9 +1117,9 @@ static inline const RenderLayer* compositingContainer(const RenderLayer* layer)
|
| // the includeSelf option. It is very likely that we don't even want either of these functions; A layer
|
| // should be told explicitly which GraphicsLayer is the repaintContainer for a RenderLayer, and
|
| // any other use cases should probably have an API between the non-compositing and compositing sides of code.
|
| -RenderLayer* RenderLayer::enclosingCompositingLayer(bool includeSelf) const
|
| +RenderLayer* RenderLayer::enclosingCompositingLayer(IncludeSelfOrNot includeSelf) const
|
| {
|
| - if (includeSelf && compositingState() != NotComposited && compositingState() != PaintsIntoGroupedBacking)
|
| + if ((includeSelf == IncludeSelf) && compositingState() != NotComposited && compositingState() != PaintsIntoGroupedBacking)
|
| return const_cast<RenderLayer*>(this);
|
|
|
| for (const RenderLayer* curr = compositingContainer(this); curr; curr = compositingContainer(curr)) {
|
| @@ -1118,9 +1130,9 @@ RenderLayer* RenderLayer::enclosingCompositingLayer(bool includeSelf) const
|
| return 0;
|
| }
|
|
|
| -RenderLayer* RenderLayer::enclosingCompositingLayerForRepaint(bool includeSelf) const
|
| +RenderLayer* RenderLayer::enclosingCompositingLayerForRepaint(IncludeSelfOrNot includeSelf) const
|
| {
|
| - if (includeSelf && (compositingState() == PaintsIntoOwnBacking || compositingState() == PaintsIntoGroupedBacking))
|
| + if ((includeSelf == IncludeSelf) && (compositingState() == PaintsIntoOwnBacking || compositingState() == PaintsIntoGroupedBacking))
|
| return const_cast<RenderLayer*>(this);
|
|
|
| for (const RenderLayer* curr = compositingContainer(this); curr; curr = compositingContainer(curr)) {
|
| @@ -1162,9 +1174,9 @@ RenderLayer* RenderLayer::ancestorScrollingLayer() const
|
| return 0;
|
| }
|
|
|
| -RenderLayer* RenderLayer::enclosingFilterLayer(bool includeSelf) const
|
| +RenderLayer* RenderLayer::enclosingFilterLayer(IncludeSelfOrNot includeSelf) const
|
| {
|
| - const RenderLayer* curr = includeSelf ? this : parent();
|
| + const RenderLayer* curr = (includeSelf == IncludeSelf) ? this : parent();
|
| for (; curr; curr = curr->parent()) {
|
| if (curr->requiresFullLayerImageForFilters())
|
| return const_cast<RenderLayer*>(curr);
|
| @@ -1711,7 +1723,7 @@ RenderLayer* RenderLayer::clipParent() const
|
| RenderLayer* clipParent = 0;
|
| if ((compositingReasons() & CompositingReasonOutOfFlowClipping) && !needsAncestorClip) {
|
| if (RenderObject* containingBlock = renderer()->containingBlock())
|
| - clipParent = containingBlock->enclosingLayer()->enclosingCompositingLayer(true);
|
| + clipParent = containingBlock->enclosingLayer()->enclosingCompositingLayer();
|
| }
|
|
|
| return clipParent;
|
| @@ -3503,7 +3515,7 @@ LayoutRect RenderLayer::calculateLayerBounds(const RenderLayer* ancestorLayer, c
|
| // prior to updating its bounds. The requires-own-backing-store-for-ancestor-reasons
|
| // could be stale. Refresh them now.
|
| if (node->layer()->hasCompositedLayerMapping()) {
|
| - RenderLayer* enclosingCompositingLayer = node->layer()->enclosingCompositingLayer(false);
|
| + RenderLayer* enclosingCompositingLayer = node->layer()->enclosingCompositingLayer(ExcludeSelf);
|
| node->layer()->compositedLayerMapping()->updateRequiresOwnBackingStoreForAncestorReasons(enclosingCompositingLayer);
|
| }
|
|
|
|
|