Changeset 205277 in webkit
- Timestamp:
- Aug 31, 2016 8:34:36 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r205271 r205277 1 2016-08-31 Zalan Bujtas <zalan@apple.com> 2 3 ASSERTION FAILED: !flow->layer() && !flow->isInlineElementContinuation() in WebCore::RenderBlock::addContinuationWithOutline 4 https://bugs.webkit.org/show_bug.cgi?id=151022 5 <rdar://problem/27710993> 6 7 Reviewed by Simon Fraser. 8 9 * compositing/layer-creation/assert-on-inline-element-with-will-change-expected.txt: Added. 10 * compositing/layer-creation/assert-on-inline-element-with-will-change.html: Added. 11 * compositing/layer-creation/will-change-on-normal-flow-content-expected.txt: Added. 12 * compositing/layer-creation/will-change-on-normal-flow-content.html: Added. 13 1 14 2016-08-31 Ricky Mondello <rmondello@apple.com> 2 15 -
trunk/Source/WebCore/ChangeLog
r205275 r205277 1 2016-08-31 Zalan Bujtas <zalan@apple.com> 2 3 ASSERTION FAILED: !flow->layer() && !flow->isInlineElementContinuation() in WebCore::RenderBlock::addContinuationWithOutline 4 https://bugs.webkit.org/show_bug.cgi?id=151022 5 <rdar://problem/27710993> 6 7 Reviewed by Simon Fraser. 8 9 Certain CSS properties like opacity, mask etc (graphical group members) require the layer to be a non-normal flow, 10 self painting layer so that we can manage painting properly. However in addition to those CSS properties, some of the will-change 11 values (again, graphical group members) also require the layer to be non-normal flow, self painting. 12 This patch ensures that when deciding whether a layer should be a normal flow layer, we take the will-change values into account as well. 13 14 Tests: compositing/layer-creation/assert-on-inline-element-with-will-change.html 15 compositing/layer-creation/will-change-on-normal-flow-content.html 16 17 * rendering/RenderLayer.cpp: 18 (WebCore::RenderLayer::calculateClipRects): 19 * rendering/style/WillChangeData.cpp: 20 (WebCore::propertyCreatesGraphicalGroup): 21 (WebCore::WillChangeData::addFeature): 22 * rendering/style/WillChangeData.h: 23 (WebCore::WillChangeData::canCreateGraphicalGroup): 24 (WebCore::WillChangeData::canTriggerCompositingOnInline): Deleted. 25 1 26 2016-08-31 Keith Rollin <krollin@apple.com> 2 27 -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r204552 r205277 6465 6465 } 6466 6466 6467 static bool mayCreateGraphicalGroup(const RenderElement& renderer) 6468 { 6469 bool createsGraphicalGroup = renderer.hasClipPath() 6470 || renderer.hasFilter() 6471 || renderer.hasBackdropFilter() 6472 #if ENABLE(CSS_COMPOSITING) 6473 || renderer.hasBlendMode() 6474 #endif 6475 || renderer.isTransparent() 6476 || renderer.hasMask(); 6477 return createsGraphicalGroup || (renderer.style().willChange() && renderer.style().willChange()->canCreateGraphicalGroup()); 6478 } 6479 6467 6480 bool RenderLayer::shouldBeNormalFlowOnly() const 6468 6481 { … … 6476 6489 || (renderer().style().specifiesColumns() && !isRootLayer()) 6477 6490 || renderer().isInFlowRenderFlowThread()) 6491 && !renderer().hasTransformRelatedProperty() 6478 6492 && !renderer().isPositioned() 6479 && !renderer().hasTransformRelatedProperty() 6480 && !renderer().hasClipPath() 6481 && !renderer().hasFilter() 6482 && !renderer().hasBackdropFilter() 6493 && !needsCompositedScrolling() 6494 && !renderer().style().hasFlowFrom() 6483 6495 #if PLATFORM(IOS) 6484 6496 && !hasAcceleratedTouchScrolling() 6485 6497 #endif 6486 #if ENABLE(CSS_COMPOSITING) 6487 && !renderer().hasBlendMode() 6488 #endif 6489 && !isTransparent() 6490 && !needsCompositedScrolling() 6491 && !renderer().style().hasFlowFrom(); 6498 && !mayCreateGraphicalGroup(renderer()); 6492 6499 } 6493 6500 -
trunk/Source/WebCore/rendering/style/WillChangeData.cpp
r190667 r205277 100 100 } 101 101 102 static bool propertyCreatesGraphicalGroup(CSSPropertyID property) 103 { 104 switch (property) { 105 case CSSPropertyClipPath: 106 case CSSPropertyWebkitClipPath: 107 case CSSPropertyMask: 108 case CSSPropertyOpacity: 109 #if ENABLE(CSS_COMPOSITING) 110 case CSSPropertyMixBlendMode: 111 case CSSPropertyIsolation: 112 #endif 113 case CSSPropertyFilter: 114 #if ENABLE(FILTERS_LEVEL_2) 115 case CSSPropertyWebkitBackdropFilter: 116 #endif 117 case CSSPropertyWebkitMask: 118 case CSSPropertyWebkitMaskImage: 119 case CSSPropertyWebkitMaskBoxImage: 120 return true; 121 default: 122 return false; 123 } 124 } 125 102 126 static bool propertyTriggersCompositing(CSSPropertyID property) 103 127 { … … 138 162 m_canTriggerCompositingOnInline |= propertyTriggersCompositing(propertyID); 139 163 m_canTriggerCompositing |= m_canTriggerCompositingOnInline | propertyTriggersCompositingOnBoxesOnly(propertyID); 164 165 m_canCreateGraphicalGroup |= propertyCreatesGraphicalGroup(propertyID); 140 166 } 141 167 -
trunk/Source/WebCore/rendering/style/WillChangeData.h
r190667 r205277 58 58 bool canTriggerCompositing() const { return m_canTriggerCompositing; } 59 59 bool canTriggerCompositingOnInline() const { return m_canTriggerCompositingOnInline; } 60 bool canCreateGraphicalGroup() const { return m_canCreateGraphicalGroup; } 60 61 61 62 enum Feature { … … 125 126 bool m_canTriggerCompositing { false }; 126 127 bool m_canTriggerCompositingOnInline { false }; 128 bool m_canCreateGraphicalGroup { false }; 127 129 }; 128 130
Note: See TracChangeset
for help on using the changeset viewer.