Changeset 175781 in webkit
- Timestamp:
- Nov 8, 2014 3:50:43 PM (9 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r175779 r175781 1 2014-11-08 Simon Fraser <simon.fraser@apple.com> 2 3 Don't try to schedule a GraphicsLayer flush when propagating changes to replicas inside a flush 4 https://bugs.webkit.org/show_bug.cgi?id=138532 5 6 Reviewed by Dan Bernstein. 7 8 When changing masks on replica layers with certain layer configurations, 9 it was possible to hit an assertion that a flush was being scheduled when already 10 flushing, via propagateLayerChangeToReplicas(). Fix by passing the scheduleFlush 11 flag along. 12 13 Not testable with current GraphicsLayer configurations. 14 15 * platform/graphics/ca/GraphicsLayerCA.cpp: 16 * platform/graphics/ca/GraphicsLayerCA.h: 17 1 18 2014-11-08 Beth Dakin <bdakin@apple.com> 2 19 -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
r175716 r175781 3182 3182 } 3183 3183 3184 void GraphicsLayerCA::propagateLayerChangeToReplicas( )3184 void GraphicsLayerCA::propagateLayerChangeToReplicas(ScheduleFlushOrNot scheduleFlush) 3185 3185 { 3186 3186 for (GraphicsLayer* currentLayer = this; currentLayer; currentLayer = currentLayer->parent()) { … … 3190 3190 3191 3191 if (currentLayerCA.replicaLayer()) 3192 downcast<GraphicsLayerCA>(*currentLayerCA.replicaLayer()).noteLayerPropertyChanged(ReplicatedLayerChanged );3192 downcast<GraphicsLayerCA>(*currentLayerCA.replicaLayer()).noteLayerPropertyChanged(ReplicatedLayerChanged, scheduleFlush); 3193 3193 } 3194 3194 } … … 3391 3391 { 3392 3392 noteLayerPropertyChanged(ChildrenChanged, scheduleFlush); 3393 propagateLayerChangeToReplicas( );3393 propagateLayerChangeToReplicas(scheduleFlush); 3394 3394 } 3395 3395 -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
r175716 r175781 350 350 void removeCloneLayers(); 351 351 FloatPoint positionForCloneRootLayer() const; 352 353 void propagateLayerChangeToReplicas();354 352 355 353 // All these "update" methods will be called inside a BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS block. … … 446 444 void noteChangesForScaleSensitiveProperties(); 447 445 446 void propagateLayerChangeToReplicas(ScheduleFlushOrNot = ScheduleFlush); 447 448 448 void repaintLayerDirtyRects(); 449 449
Note: See TracChangeset
for help on using the changeset viewer.