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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBox.cpp

Issue 2047283002: Avoid touching z-index in StyleAdjuster by using an isStackingContext flag instead (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Animation expectation Created 4 years, 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 { 101 {
102 setIsBox(); 102 setIsBox();
103 } 103 }
104 104
105 PaintLayerType LayoutBox::layerTypeRequired() const 105 PaintLayerType LayoutBox::layerTypeRequired() const
106 { 106 {
107 // hasAutoZIndex only returns true if the element is positioned or a flex-it em since 107 // hasAutoZIndex only returns true if the element is positioned or a flex-it em since
108 // position:static elements that are not flex-items get their z-index coerce d to auto. 108 // position:static elements that are not flex-items get their z-index coerce d to auto.
109 if (isPositioned() || createsGroup() || hasClipPath() || hasTransformRelated Property() 109 if (isPositioned() || createsGroup() || hasClipPath() || hasTransformRelated Property()
110 || style()->hasCompositorProxy() || hasHiddenBackface() || hasReflection () || style()->specifiesColumns() 110 || style()->hasCompositorProxy() || hasHiddenBackface() || hasReflection () || style()->specifiesColumns()
111 || !style()->hasAutoZIndex() || style()->shouldCompositeForCurrentAnimat ions()) 111 || style()->isStackingContext() || style()->shouldCompositeForCurrentAni mations())
112 return NormalPaintLayer; 112 return NormalPaintLayer;
113 113
114 if (hasOverflowClip()) 114 if (hasOverflowClip())
115 return OverflowClipPaintLayer; 115 return OverflowClipPaintLayer;
116 116
117 return NoPaintLayer; 117 return NoPaintLayer;
118 } 118 }
119 119
120 void LayoutBox::willBeDestroyed() 120 void LayoutBox::willBeDestroyed()
121 { 121 {
(...skipping 1259 matching lines...) Expand 10 before | Expand all | Expand 10 after
1381 return false; 1381 return false;
1382 if (childStyle.visibility() != VISIBLE || childStyle.shapeOutside()) 1382 if (childStyle.visibility() != VISIBLE || childStyle.shapeOutside())
1383 return false; 1383 return false;
1384 if (childBox.size().isZero()) 1384 if (childBox.size().isZero())
1385 return false; 1385 return false;
1386 if (PaintLayer* childLayer = childBox.layer()) { 1386 if (PaintLayer* childLayer = childBox.layer()) {
1387 // FIXME: perhaps this could be less conservative? 1387 // FIXME: perhaps this could be less conservative?
1388 if (childLayer->compositingState() != NotComposited) 1388 if (childLayer->compositingState() != NotComposited)
1389 return false; 1389 return false;
1390 // FIXME: Deal with z-index. 1390 // FIXME: Deal with z-index.
1391 if (!childStyle.hasAutoZIndex()) 1391 if (childStyle.isStackingContext())
1392 return false; 1392 return false;
1393 if (childLayer->hasTransformRelatedProperty() || childLayer->isTranspare nt() || childLayer->hasFilterInducingProperty()) 1393 if (childLayer->hasTransformRelatedProperty() || childLayer->isTranspare nt() || childLayer->hasFilterInducingProperty())
1394 return false; 1394 return false;
1395 if (childBox.hasOverflowClip() && childStyle.hasBorderRadius()) 1395 if (childBox.hasOverflowClip() && childStyle.hasBorderRadius())
1396 return false; 1396 return false;
1397 } 1397 }
1398 return true; 1398 return true;
1399 } 1399 }
1400 1400
1401 bool LayoutBox::foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect, u nsigned maxDepthToTest) const 1401 bool LayoutBox::foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect, u nsigned maxDepthToTest) const
(...skipping 3475 matching lines...) Expand 10 before | Expand all | Expand 10 after
4877 m_rareData->m_snapAreas->remove(&snapArea); 4877 m_rareData->m_snapAreas->remove(&snapArea);
4878 } 4878 }
4879 } 4879 }
4880 4880
4881 SnapAreaSet* LayoutBox::snapAreas() const 4881 SnapAreaSet* LayoutBox::snapAreas() const
4882 { 4882 {
4883 return m_rareData ? m_rareData->m_snapAreas.get() : nullptr; 4883 return m_rareData ? m_rareData->m_snapAreas.get() : nullptr;
4884 } 4884 }
4885 4885
4886 } // namespace blink 4886 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698