Changeset 147682 in webkit
- Timestamp:
- Apr 4, 2013, 4:57:33 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r147679 r147682 1 2013-04-04 Simon Fraser <simon.fraser@apple.com> 2 3 Page content missing when flipping from an empty layer to a tiled layer 4 https://bugs.webkit.org/show_bug.cgi?id=113977 5 <rdar://problem/13444219> 6 7 Reviewed by Tim Horton. 8 9 Ref test that adds visible content to a larger layer. 10 11 * compositing/tiling/empty-to-tiled-expected.html: Added. 12 * compositing/tiling/empty-to-tiled.html: Added. 13 1 14 2013-04-04 Eric Carlson <eric.carlson@apple.com> 2 15 -
trunk/Source/WebCore/ChangeLog
r147681 r147682 1 2013-04-04 Simon Fraser <simon.fraser@apple.com> 2 3 Page content missing when flipping from an empty layer to a tiled layer 4 https://bugs.webkit.org/show_bug.cgi?id=113977 5 <rdar://problem/13444219> 6 7 Reviewed by Tim Horton. 8 9 Some articles on USA Today were missing content on load, when a large GraphicsLayer 10 which did not draw content needed to draw content (and become tiled in the process). 11 12 The bug was an ordering dependency in GraphicsLayerCA::commitLayerChangesBeforeSublayers(). 13 swapFromOrToTiledLayer() sets some dirty flags, but for some properties which have 14 already been committed in the current flush cycle. 15 16 Fix by moving the swapFromOrToTiledLayer() to the top of the commit, which is 17 safe since it only consults GraphicsLayer properties, not CALayer properties. 18 19 Test: compositing/tiling/empty-to-tiled.html 20 21 * platform/graphics/ca/GraphicsLayerCA.cpp: 22 (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): 23 (WebCore::GraphicsLayerCA::updateGeometry): 24 (WebCore::GraphicsLayerCA::updateLayerDrawsContent): 25 (WebCore::GraphicsLayerCA::updateContentsScale): 26 * platform/graphics/ca/GraphicsLayerCA.h: 27 (GraphicsLayerCA): 28 1 29 2013-04-04 Christophe Dumez <ch.dumez@sisa.samsung.com> 2 30 -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
r147186 r147682 1126 1126 return; 1127 1127 1128 bool needTiledLayer = requiresTiledLayer(pageScaleFactor); 1129 if (needTiledLayer != m_usingTiledBacking) 1130 swapFromOrToTiledLayer(needTiledLayer); 1131 1128 1132 // Need to handle Preserves3DChanged first, because it affects which layers subsequent properties are applied to 1129 1133 if (m_uncommittedChanges & (Preserves3DChanged | ReplicatedLayerChanged)) … … 1134 1138 1135 1139 if (m_uncommittedChanges & DrawsContentChanged) 1136 updateLayerDrawsContent( pageScaleFactor);1140 updateLayerDrawsContent(); 1137 1141 1138 1142 if (m_uncommittedChanges & NameChanged) … … 1297 1301 FloatSize pixelAlignmentOffset; 1298 1302 computePixelAlignment(pageScaleFactor, positionRelativeToBase, scaledPosition, scaledSize, scaledAnchorPoint, pixelAlignmentOffset); 1299 1300 bool needTiledLayer = requiresTiledLayer(pageScaleFactor);1301 if (needTiledLayer != m_usingTiledBacking)1302 swapFromOrToTiledLayer(needTiledLayer);1303 1303 1304 1304 FloatSize usedSize = m_usingTiledBacking ? constrainedSize() : scaledSize; … … 1568 1568 } 1569 1569 1570 void GraphicsLayerCA::updateLayerDrawsContent(float pageScaleFactor) 1571 { 1572 bool needTiledLayer = requiresTiledLayer(pageScaleFactor); 1573 if (needTiledLayer != m_usingTiledBacking) 1574 swapFromOrToTiledLayer(needTiledLayer); 1575 1570 void GraphicsLayerCA::updateLayerDrawsContent() 1571 { 1576 1572 if (m_drawsContent) 1577 1573 m_layer->setNeedsDisplay(); … … 2568 2564 void GraphicsLayerCA::updateContentsScale(float pageScaleFactor) 2569 2565 { 2570 bool needTiledLayer = requiresTiledLayer(pageScaleFactor);2571 if (needTiledLayer != m_usingTiledBacking)2572 swapFromOrToTiledLayer(needTiledLayer);2573 2574 2566 float contentsScale = clampedContentsScaleForScale(pageScaleFactor * deviceScaleFactor()); 2575 2567 -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
r147186 r147682 330 330 void updateBackfaceVisibility(); 331 331 void updateStructuralLayer(); 332 void updateLayerDrawsContent( float pixelAlignmentScale);332 void updateLayerDrawsContent(); 333 333 void updateBackgroundColor(); 334 334
Note:
See TracChangeset
for help on using the changeset viewer.