Changeset 162523 in webkit
- Timestamp:
- Jan 22, 2014 9:30:13 AM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r162518 r162523 1 2014-01-22 Mihai Maerean <mmaerean@adobe.com> 2 3 [CSS Regions] layerOwner in RenderNamedFlowFragment cannot return null 4 https://bugs.webkit.org/show_bug.cgi?id=127343 5 6 Reviewed by Sam Weinig. 7 8 RenderNamedFlowFragment::layerOwner cannot return null because regions create stacking 9 contexts which create layers. 10 11 No new tests, no functional change. 12 13 * rendering/RenderFlowThread.cpp: 14 (WebCore::RenderFlowThread::hasCompositingRegionDescendant): 15 * rendering/RenderLayer.cpp: 16 (WebCore::RenderLayer::calculateClipRects): 17 * rendering/RenderLayerBacking.cpp: 18 (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread): 19 * rendering/RenderLayerCompositor.cpp: 20 (WebCore::RenderLayerCompositor::computeRegionCompositingRequirements): 21 * rendering/RenderNamedFlowFragment.h: 22 1 23 2014-01-22 Antti Koivisto <antti@apple.com> 2 24 -
trunk/Source/WebCore/rendering/RenderFlowThread.cpp
r162117 r162523 252 252 bool RenderFlowThread::hasCompositingRegionDescendant() const 253 253 { 254 for (auto iter = m_regionList.begin(), end = m_regionList.end(); iter != end; ++iter) 255 if (RenderLayerModelObject* layerOwner = toRenderNamedFlowFragment(*iter)->layerOwner()) 256 if (layerOwner->hasLayer() && layerOwner->layer()->hasCompositingDescendant()) 257 return true; 254 for (auto& region : m_regionList) 255 if (toRenderNamedFlowFragment(region)->layerOwner().layer()->hasCompositingDescendant()) 256 return true; 258 257 259 258 return false; -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r162115 r162523 6938 6938 void RenderLayer::paintNamedFlowThreadInsideRegion(GraphicsContext* context, RenderNamedFlowFragment* region, LayoutRect paintDirtyRect, LayoutPoint paintOffset, PaintBehavior paintBehavior, PaintLayerFlags paintFlags) 6939 6939 { 6940 LayoutRect regionContentBox = toRenderBox(region->layerOwner()) ->contentBoxRect();6940 LayoutRect regionContentBox = toRenderBox(region->layerOwner()).contentBoxRect(); 6941 6941 LayoutSize moveOffset = region->flowThreadPortionLocation() - (paintOffset + regionContentBox.location()); 6942 6942 IntPoint adjustedPaintOffset = roundedIntPoint(-moveOffset); -
trunk/Source/WebCore/rendering/RenderLayerBacking.cpp
r162480 r162523 1002 1002 m_owningLayer.convertToPixelSnappedLayerCoords(flowThreadLayer, flowDelta); 1003 1003 parentRegion->adjustRegionBoundsFromFlowThreadPortionRect(flowDelta, ancestorCompositingBounds); 1004 RenderBoxModelObject *layerOwner = toRenderBoxModelObject(parentRegion->layerOwner());1005 if (layerOwner ->hasLayer() && layerOwner->layer()->backing()) {1004 RenderBoxModelObject& layerOwner = toRenderBoxModelObject(parentRegion->layerOwner()); 1005 if (layerOwner.layer()->backing()) { 1006 1006 // Make sure that the region propagates its borders, paddings, outlines or box-shadows to layers inside it. 1007 1007 // Note that the composited bounds of the RenderRegion are already calculated 1008 1008 // because RenderLayerCompositor::rebuildCompositingLayerTree will only 1009 1009 // iterate on the content of the region after the region itself is computed. 1010 ancestorCompositingBounds.moveBy(roundedIntPoint(layerOwner ->layer()->backing()->compositedBounds().location()));1011 ancestorCompositingBounds.move(-layerOwner ->borderAndPaddingStart(), -layerOwner->borderAndPaddingBefore());1010 ancestorCompositingBounds.moveBy(roundedIntPoint(layerOwner.layer()->backing()->compositedBounds().location())); 1011 ancestorCompositingBounds.move(-layerOwner.borderAndPaddingStart(), -layerOwner.borderAndPaddingBefore()); 1012 1012 } 1013 1013 } -
trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp
r162518 r162523 1289 1289 1290 1290 if (overlapMap) 1291 overlapMap->geometryMap().popMappingsToAncestor( region->layerOwner());1291 overlapMap->geometryMap().popMappingsToAncestor(®ion->layerOwner()); 1292 1292 } 1293 1293 -
trunk/Source/WebCore/rendering/RenderNamedFlowFragment.h
r162158 r162523 66 66 // parent renderer instead. 67 67 // This method returns that renderer holding the layer. 68 // The return value may be null. 69 RenderLayerModelObject* layerOwner() const { return parent() && parent()->isRenderLayerModelObject() ? toRenderLayerModelObject(parent()) 70 : nullptr; } 68 // The return value cannot be null because CSS Regions create Stacking Contexts (which means they create layers). 69 RenderLayerModelObject& layerOwner() const { return *toRenderLayerModelObject(parent()); } 71 70 72 71 bool hasCustomRegionStyle() const { return m_hasCustomRegionStyle; }
Note: See TracChangeset
for help on using the changeset viewer.