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

Unified Diff: Source/core/rendering/RenderLayerStackingNode.cpp

Issue 301233008: Shave some yaks in RenderLayerStackingNode (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderLayerStackingNode.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderLayerStackingNode.cpp
diff --git a/Source/core/rendering/RenderLayerStackingNode.cpp b/Source/core/rendering/RenderLayerStackingNode.cpp
index 8133af3dc9e2166b2d6a430e7441cf833b136be0..a750ce8b08d10930d070635fcb7fe0bce1bb8bb3 100644
--- a/Source/core/rendering/RenderLayerStackingNode.cpp
+++ b/Source/core/rendering/RenderLayerStackingNode.cpp
@@ -90,8 +90,7 @@ static inline bool compareZIndex(RenderLayerStackingNode* first, RenderLayerStac
RenderLayerCompositor* RenderLayerStackingNode::compositor() const
{
- if (!renderer()->view())
- return 0;
+ ASSERT(renderer()->view());
return renderer()->view()->compositor();
}
@@ -116,12 +115,7 @@ void RenderLayerStackingNode::dirtyZOrderLists()
void RenderLayerStackingNode::dirtyStackingContextZOrderLists()
{
- RenderLayerStackingNode* stackingContextNode = ancestorStackingContextNode();
- if (stackingContextNode)
- stackingContextNode->dirtyZOrderLists();
-
- RenderLayerStackingNode* stackingNode = ancestorStackingNode();
- if (stackingNode && stackingNode != stackingContextNode)
+ if (RenderLayerStackingNode* stackingNode = ancestorStackingContextNode())
stackingNode->dirtyZOrderLists();
}
@@ -137,9 +131,8 @@ void RenderLayerStackingNode::dirtyNormalFlowList()
m_normalFlowList->clear();
m_normalFlowListDirty = true;
- if (!renderer()->documentBeingDestroyed()) {
+ if (!renderer()->documentBeingDestroyed())
compositor()->setCompositingLayersNeedRebuild();
- }
}
void RenderLayerStackingNode::rebuildZOrderLists()
@@ -299,7 +292,7 @@ void RenderLayerStackingNode::updateStackingNodesAfterStyleChange(const RenderSt
EVisibility oldVisibility = oldStyle ? oldStyle->visibility() : VISIBLE;
int oldZIndex = oldStyle ? oldStyle->zIndex() : 0;
- // FIXME: RenderLayer already handles visibility changes through our visiblity dirty bits. This logic could
+ // FIXME: RenderLayer already handles visibility changes through our visibility dirty bits. This logic could
// likely be folded along with the rest.
bool isStackingContext = this->isStackingContext();
if (isStackingContext == wasStackingContext && oldVisibility == renderer()->style()->visibility() && oldZIndex == zIndex())
@@ -315,19 +308,22 @@ void RenderLayerStackingNode::updateStackingNodesAfterStyleChange(const RenderSt
bool RenderLayerStackingNode::shouldBeNormalFlowOnly() const
{
- const bool couldBeNormalFlow = renderer()->hasOverflowClip()
- || renderer()->hasReflection()
- || renderer()->hasMask()
- || renderer()->isCanvas()
- || renderer()->isVideo()
- || renderer()->isEmbeddedObject()
- || renderer()->isRenderIFrame()
- || (renderer()->style()->specifiesColumns() && !layer()->isRootLayer());
- const bool preventsElementFromBeingNormalFlow = renderer()->isPositioned()
- || renderer()->hasTransform()
- || renderer()->hasClipPath()
- || renderer()->hasFilter()
- || renderer()->hasBlendMode()
+ RenderLayerModelObject* renderer = this->renderer();
+
+ const bool couldBeNormalFlow = renderer->hasOverflowClip()
+ || renderer->hasReflection()
+ || renderer->hasMask()
+ || renderer->isCanvas()
+ || renderer->isVideo()
+ || renderer->isEmbeddedObject()
+ || renderer->isRenderIFrame()
+ || (renderer->style()->specifiesColumns() && !layer()->isRootLayer());
+
+ const bool preventsElementFromBeingNormalFlow = renderer->isPositioned()
+ || renderer->hasTransform()
+ || renderer->hasClipPath()
+ || renderer->hasFilter()
+ || renderer->hasBlendMode()
|| layer()->isTransparent();
return couldBeNormalFlow && !preventsElementFromBeingNormalFlow;
@@ -347,21 +343,11 @@ void RenderLayerStackingNode::updateIsNormalFlowOnly()
RenderLayerStackingNode* RenderLayerStackingNode::ancestorStackingContextNode() const
{
- RenderLayer* ancestor = layer()->parent();
- while (ancestor && !ancestor->stackingNode()->isStackingContext())
- ancestor = ancestor->parent();
- if (ancestor)
- return ancestor->stackingNode();
- return 0;
-}
-
-RenderLayerStackingNode* RenderLayerStackingNode::ancestorStackingNode() const
-{
- RenderLayer* ancestor = layer()->parent();
- while (ancestor && !ancestor->stackingNode()->isStackingContext())
- ancestor = ancestor->parent();
- if (ancestor)
- return ancestor->stackingNode();
+ for (RenderLayer* ancestor = layer()->parent(); ancestor; ancestor = ancestor->parent()) {
+ RenderLayerStackingNode* stackingNode = ancestor->stackingNode();
+ if (stackingNode->isStackingContext())
+ return stackingNode;
+ }
return 0;
}
« no previous file with comments | « Source/core/rendering/RenderLayerStackingNode.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698