Title: [212499] branches/safari-603-branch

Diff

Modified: branches/safari-603-branch/LayoutTests/ChangeLog (212498 => 212499)


--- branches/safari-603-branch/LayoutTests/ChangeLog	2017-02-17 00:56:29 UTC (rev 212498)
+++ branches/safari-603-branch/LayoutTests/ChangeLog	2017-02-17 00:56:33 UTC (rev 212499)
@@ -1,5 +1,20 @@
 2017-02-16  Matthew Hanson  <matthew_han...@apple.com>
 
+        Merge r212172. rdar://problem/30476807
+
+    2017-02-10  Simon Fraser  <simon.fra...@apple.com>
+
+            REGRESSION (r211845): [ios-simulator] LayoutTest compositing/masks/solid-color-masked.html is a flaky failure
+            https://bugs.webkit.org/show_bug.cgi?id=168054
+
+            Reviewed by Tim Horton.
+
+            Make the timeout 10ms so the test consistently fails with the old code.
+
+            * compositing/masks/solid-color-masked.html:
+
+2017-02-16  Matthew Hanson  <matthew_han...@apple.com>
+
         Merge r212168. rdar://problem/29904368
 
     2017-02-10  Ryan Haddad  <ryanhad...@apple.com>

Modified: branches/safari-603-branch/LayoutTests/compositing/masks/solid-color-masked.html (212498 => 212499)


--- branches/safari-603-branch/LayoutTests/compositing/masks/solid-color-masked.html	2017-02-17 00:56:29 UTC (rev 212498)
+++ branches/safari-603-branch/LayoutTests/compositing/masks/solid-color-masked.html	2017-02-17 00:56:33 UTC (rev 212499)
@@ -10,7 +10,7 @@
         }
         
         .composited {
-          -webkit-transform: translateZ(0);
+          transform: translateZ(0);
         }
 
         .masked {
@@ -26,7 +26,7 @@
                 document.getElementById('box').classList.add('masked');
                 if (window.testRunner)
                     testRunner.notifyDone();
-            }, 0);
+            }, 10);
         }
         window.addEventListener('load', doTest, false);
     </script>

Modified: branches/safari-603-branch/Source/WebCore/ChangeLog (212498 => 212499)


--- branches/safari-603-branch/Source/WebCore/ChangeLog	2017-02-17 00:56:29 UTC (rev 212498)
+++ branches/safari-603-branch/Source/WebCore/ChangeLog	2017-02-17 00:56:33 UTC (rev 212499)
@@ -1,5 +1,29 @@
 2017-02-16  Matthew Hanson  <matthew_han...@apple.com>
 
+        Merge r212172. rdar://problem/30476807
+
+    2017-02-10  Simon Fraser  <simon.fra...@apple.com>
+
+            REGRESSION (r211845): [ios-simulator] LayoutTest compositing/masks/solid-color-masked.html is a flaky failure
+            https://bugs.webkit.org/show_bug.cgi?id=168054
+
+            Reviewed by Tim Horton.
+
+            When adding mask layers, there was an ordering dependency. There was a hack in GraphicsLayerCA::setVisibleAndCoverageRects()
+            to propagate m_intersectsCoverageRect to masks. However, if GraphicsLayerCA::setVisibleAndCoverageRects()
+            ran on the masked layer before the mask was added, nothing updated the "m_intersectsCoverageRect" state of the mask layer.
+
+            Fix by explicitly calling setVisibleAndCoverageRects() on the mask layer, passing the same rects and
+            viewport-constrained state as for its host layer (we already assume that their geometry matches).
+
+            Tested by compositing/masks/solid-color-masked.html
+
+            * platform/graphics/ca/GraphicsLayerCA.cpp:
+            (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):
+            (WebCore::GraphicsLayerCA::recursiveCommitChanges):
+
+2017-02-16  Matthew Hanson  <matthew_han...@apple.com>
+
         Merge r212153. rdar://problem/30467120
 
     2017-02-10  Simon Fraser  <simon.fra...@apple.com>

Modified: branches/safari-603-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (212498 => 212499)


--- branches/safari-603-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2017-02-17 00:56:29 UTC (rev 212498)
+++ branches/safari-603-branch/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2017-02-17 00:56:33 UTC (rev 212499)
@@ -1332,32 +1332,16 @@
     if (intersectsCoverageRect != m_intersectsCoverageRect) {
         m_uncommittedChanges |= CoverageRectChanged;
         m_intersectsCoverageRect = intersectsCoverageRect;
-
-        if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {
-            maskLayer->m_uncommittedChanges |= CoverageRectChanged;
-            maskLayer->m_intersectsCoverageRect = intersectsCoverageRect;
-        }
     }
 
     if (visibleRectChanged) {
         m_uncommittedChanges |= CoverageRectChanged;
         m_visibleRect = rects.visibleRect;
-
-        if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {
-            // FIXME: this assumes that the mask layer has the same geometry as this layer (which is currently always true).
-            maskLayer->m_uncommittedChanges |= CoverageRectChanged;
-            maskLayer->m_visibleRect = rects.visibleRect;
-        }
     }
 
     if (coverageRectChanged) {
         m_uncommittedChanges |= CoverageRectChanged;
         m_coverageRect = rects.coverageRect;
-
-        if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {
-            maskLayer->m_uncommittedChanges |= CoverageRectChanged;
-            maskLayer->m_coverageRect = rects.coverageRect;
-        }
     }
 }
 
@@ -1423,8 +1407,10 @@
     
     childCommitState.ancestorIsViewportConstrained |= m_isViewportConstrained;
 
-    if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer))
+    if (GraphicsLayerCA* maskLayer = downcast<GraphicsLayerCA>(m_maskLayer)) {
+        maskLayer->setVisibleAndCoverageRects(rects, m_isViewportConstrained || commitState.ancestorIsViewportConstrained);
         maskLayer->commitLayerChangesBeforeSublayers(childCommitState, pageScaleFactor, baseRelativePosition);
+    }
 
     const Vector<GraphicsLayer*>& childLayers = children();
     size_t numChildren = childLayers.size();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to