Changeset 212172 in webkit
- Timestamp:
- Feb 10, 2017 6:30:23 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r212168 r212172 1 2017-02-10 Simon Fraser <simon.fraser@apple.com> 2 3 REGRESSION (r211845): [ios-simulator] LayoutTest compositing/masks/solid-color-masked.html is a flaky failure 4 https://bugs.webkit.org/show_bug.cgi?id=168054 5 6 Reviewed by Tim Horton. 7 8 Make the timeout 10ms so the test consistently fails with the old code. 9 10 * compositing/masks/solid-color-masked.html: 11 1 12 2017-02-10 Ryan Haddad <ryanhaddad@apple.com> 2 13 -
trunk/LayoutTests/compositing/masks/solid-color-masked.html
r170306 r212172 11 11 12 12 .composited { 13 -webkit-transform: translateZ(0);13 transform: translateZ(0); 14 14 } 15 15 … … 27 27 if (window.testRunner) 28 28 testRunner.notifyDone(); 29 }, 0);29 }, 10); 30 30 } 31 31 window.addEventListener('load', doTest, false); -
trunk/Source/WebCore/ChangeLog
r212170 r212172 1 2017-02-10 Simon Fraser <simon.fraser@apple.com> 2 3 REGRESSION (r211845): [ios-simulator] LayoutTest compositing/masks/solid-color-masked.html is a flaky failure 4 https://bugs.webkit.org/show_bug.cgi?id=168054 5 6 Reviewed by Tim Horton. 7 8 When adding mask layers, there was an ordering dependency. There was a hack in GraphicsLayerCA::setVisibleAndCoverageRects() 9 to propagate m_intersectsCoverageRect to masks. However, if GraphicsLayerCA::setVisibleAndCoverageRects() 10 ran on the masked layer before the mask was added, nothing updated the "m_intersectsCoverageRect" state of the mask layer. 11 12 Fix by explicitly calling setVisibleAndCoverageRects() on the mask layer, passing the same rects and 13 viewport-constrained state as for its host layer (we already assume that their geometry matches). 14 15 Tested by compositing/masks/solid-color-masked.html 16 17 * platform/graphics/ca/GraphicsLayerCA.cpp: 18 (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): 19 (WebCore::GraphicsLayerCA::recursiveCommitChanges): 20 1 21 2017-02-10 Commit Queue <commit-queue@webkit.org> 2 22 -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
r211750 r212172 1333 1333 m_uncommittedChanges |= CoverageRectChanged; 1334 1334 m_intersectsCoverageRect = intersectsCoverageRect; 1335 1336 if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {1337 maskLayer->m_uncommittedChanges |= CoverageRectChanged;1338 maskLayer->m_intersectsCoverageRect = intersectsCoverageRect;1339 }1340 1335 } 1341 1336 … … 1343 1338 m_uncommittedChanges |= CoverageRectChanged; 1344 1339 m_visibleRect = rects.visibleRect; 1345 1346 if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {1347 // FIXME: this assumes that the mask layer has the same geometry as this layer (which is currently always true).1348 maskLayer->m_uncommittedChanges |= CoverageRectChanged;1349 maskLayer->m_visibleRect = rects.visibleRect;1350 }1351 1340 } 1352 1341 … … 1354 1343 m_uncommittedChanges |= CoverageRectChanged; 1355 1344 m_coverageRect = rects.coverageRect; 1356 1357 if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {1358 maskLayer->m_uncommittedChanges |= CoverageRectChanged;1359 maskLayer->m_coverageRect = rects.coverageRect;1360 }1361 1345 } 1362 1346 } … … 1424 1408 childCommitState.ancestorIsViewportConstrained |= m_isViewportConstrained; 1425 1409 1426 if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) 1410 if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) { 1411 maskLayer->setVisibleAndCoverageRects(rects, m_isViewportConstrained || commitState.ancestorIsViewportConstrained); 1427 1412 maskLayer->commitLayerChangesBeforeSublayers(childCommitState, pageScaleFactor, baseRelativePosition); 1413 } 1428 1414 1429 1415 const Vector<GraphicsLayer*>& childLayers = children();
Note: See TracChangeset
for help on using the changeset viewer.