Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(305)

Side by Side Diff: Source/core/rendering/RenderLayer.cpp

Issue 183263003: RenderLayer::clipParent() should avoid calling clippedByAncestor unless needed (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
5 * 5 *
6 * Other contributors: 6 * Other contributors:
7 * Robert O'Callahan <roc+@cs.cmu.edu> 7 * Robert O'Callahan <roc+@cs.cmu.edu>
8 * David Baron <dbaron@fas.harvard.edu> 8 * David Baron <dbaron@fas.harvard.edu>
9 * Christian Biesinger <cbiesinger@web.de> 9 * Christian Biesinger <cbiesinger@web.de>
10 * Randall Jesup <rjesup@wgate.com> 10 * Randall Jesup <rjesup@wgate.com>
(...skipping 1662 matching lines...) Expand 10 before | Expand all | Expand 10 after
1673 for (RenderLayer* ancestor = parent(); ancestor && ancestor != scrollParent; ancestor = ancestor->parent()) { 1673 for (RenderLayer* ancestor = parent(); ancestor && ancestor != scrollParent; ancestor = ancestor->parent()) {
1674 if (ancestor->stackingNode()->isStackingContainer()) 1674 if (ancestor->stackingNode()->isStackingContainer())
1675 return 0; 1675 return 0;
1676 } 1676 }
1677 1677
1678 return scrollParent; 1678 return scrollParent;
1679 } 1679 }
1680 1680
1681 RenderLayer* RenderLayer::clipParent() const 1681 RenderLayer* RenderLayer::clipParent() const
1682 { 1682 {
1683 const bool needsAncestorClip = compositor()->clippedByAncestor(this); 1683 if (compositingReasons() & CompositingReasonOutOfFlowClipping && !compositor ()->clippedByAncestor(this)) {
1684
1685 RenderLayer* clipParent = 0;
1686 if ((compositingReasons() & CompositingReasonOutOfFlowClipping) && !needsAnc estorClip) {
1687 if (RenderObject* containingBlock = renderer()->containingBlock()) 1684 if (RenderObject* containingBlock = renderer()->containingBlock())
1688 clipParent = containingBlock->enclosingLayer()->enclosingCompositing Layer(); 1685 return containingBlock->enclosingLayer()->enclosingCompositingLayer( );
1689 } 1686 }
1690 1687 return 0;
1691 return clipParent;
1692 } 1688 }
1693 1689
1694 void RenderLayer::didUpdateNeedsCompositedScrolling() 1690 void RenderLayer::didUpdateNeedsCompositedScrolling()
1695 { 1691 {
1696 m_stackingNode->updateIsNormalFlowOnly(); 1692 m_stackingNode->updateIsNormalFlowOnly();
1697 updateSelfPaintingLayer(); 1693 updateSelfPaintingLayer();
1698 1694
1699 if (m_stackingNode->isStackingContainer()) 1695 if (m_stackingNode->isStackingContainer())
1700 m_stackingNode->dirtyZOrderLists(); 1696 m_stackingNode->dirtyZOrderLists();
1701 else 1697 else
(...skipping 2331 matching lines...) Expand 10 before | Expand all | Expand 10 after
4033 } 4029 }
4034 } 4030 }
4035 4031
4036 void showLayerTree(const WebCore::RenderObject* renderer) 4032 void showLayerTree(const WebCore::RenderObject* renderer)
4037 { 4033 {
4038 if (!renderer) 4034 if (!renderer)
4039 return; 4035 return;
4040 showLayerTree(renderer->enclosingLayer()); 4036 showLayerTree(renderer->enclosingLayer());
4041 } 4037 }
4042 #endif 4038 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698