Title: [276327] trunk
Revision
276327
Author
wei...@apple.com
Date
2021-04-20 16:21:06 -0700 (Tue, 20 Apr 2021)

Log Message

Separated models don't get opacity set on them at all
https://bugs.webkit.org/show_bug.cgi?id=224763

Reviewed by Tim Horton.

Source/WebCore:

Test: model-element/model-element-graphics-layers-opacity.html

This certainly won't be the way things land once separated/optimized
layer semantics are better understood, but for now, it is useful to
explicitly propogate the opacity of the owing layer to the content
layer if the content layer is a model layer. In the future, we may want
to do this for any separated child (and conversely, only to the content
layer if it is separated), but this will allow us to play a bit futher
in our experimentation.

Also adds support for dumping the opacity of a content layer to make
this testable.

* platform/graphics/GraphicsLayerClient.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsToModel):
(WebCore::GraphicsLayerCA::purposeNameForInnerLayer const):
(WebCore::GraphicsLayerCA::dumpInnerLayer const):
* testing/Internals.cpp:
(WebCore::toPlatformLayerTreeFlags):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Add new test which use the macOS/iOS only platformLayerTreeAsText
internals function to show that opacity is getting set on the content
layer.

* model-element/model-element-graphics-layers-opacity-expected.txt: Added.
* model-element/model-element-graphics-layers-opacity.html: Added.
* platform/gtk/TestExpectations:
* platform/wpe/TestExpectations:
* platform/win/TestExpectations:

* compositing/video/video-object-position-expected.txt:
* compositing/visible-rect/mask-layer-coverage-expected.txt:
* fullscreen/full-screen-layer-dump-expected.txt:
* platform/ios/compositing/video/video-object-position-expected.txt:
* platform/ios/compositing/visible-rect/mask-layer-coverage-expected.txt:
* platform/mac/compositing/images/direct-image-object-fit-expected.txt:
* platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt:
* platform/mac/compositing/video/video-object-fit-expected.txt:
Update results for update content layer type dumping.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (276326 => 276327)


--- trunk/LayoutTests/ChangeLog	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/ChangeLog	2021-04-20 23:21:06 UTC (rev 276327)
@@ -1,3 +1,30 @@
+2021-04-20  Sam Weinig  <wei...@apple.com>
+
+        Separated models don't get opacity set on them at all
+        https://bugs.webkit.org/show_bug.cgi?id=224763
+
+        Reviewed by Tim Horton.
+
+        Add new test which use the macOS/iOS only platformLayerTreeAsText
+        internals function to show that opacity is getting set on the content
+        layer. 
+
+        * model-element/model-element-graphics-layers-opacity-expected.txt: Added.
+        * model-element/model-element-graphics-layers-opacity.html: Added.
+        * platform/gtk/TestExpectations:
+        * platform/wpe/TestExpectations:
+        * platform/win/TestExpectations:
+
+        * compositing/video/video-object-position-expected.txt:
+        * compositing/visible-rect/mask-layer-coverage-expected.txt:
+        * fullscreen/full-screen-layer-dump-expected.txt:
+        * platform/ios/compositing/video/video-object-position-expected.txt:
+        * platform/ios/compositing/visible-rect/mask-layer-coverage-expected.txt:
+        * platform/mac/compositing/images/direct-image-object-fit-expected.txt:
+        * platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt:
+        * platform/mac/compositing/video/video-object-fit-expected.txt:
+        Update results for update content layer type dumping.
+
 2021-04-20  Kate Cheney  <katherine_che...@apple.com>
 
         Preconnect tasks and preflight checks do not correctly mark app-bound context string

Modified: trunk/LayoutTests/compositing/video/video-object-position-expected.txt (276326 => 276327)


--- trunk/LayoutTests/compositing/video/video-object-position-expected.txt	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/compositing/video/video-object-position-expected.txt	2021-04-20 23:21:06 UTC (rev 276327)
@@ -13,7 +13,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
@@ -27,7 +27,7 @@
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
-          (contents layer
+          (contents layer (media)
             (position 22.00 12.00)
             (bounds 120.00 200.00)
           )
@@ -37,7 +37,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
@@ -51,7 +51,7 @@
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
-          (contents layer
+          (contents layer (media)
             (position -8.00 -8.00)
             (bounds 120.00 200.00)
           )
@@ -61,7 +61,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
@@ -71,7 +71,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 57.00)
             (bounds 120.00 90.00)
           )
@@ -85,7 +85,7 @@
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
-          (contents layer
+          (contents layer (media)
             (position 22.00 12.00)
             (bounds 120.00 90.00)
           )
@@ -95,7 +95,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 30.00)
             (bounds 120.00 90.00)
           )
@@ -109,7 +109,7 @@
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
-          (contents layer
+          (contents layer (media)
             (position -8.00 102.00)
             (bounds 120.00 90.00)
           )
@@ -119,7 +119,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 101.00)
             (bounds 120.00 90.00)
           )

Modified: trunk/LayoutTests/compositing/visible-rect/mask-layer-coverage-expected.txt (276326 => 276327)


--- trunk/LayoutTests/compositing/visible-rect/mask-layer-coverage-expected.txt	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/compositing/visible-rect/mask-layer-coverage-expected.txt	2021-04-20 23:21:06 UTC (rev 276327)
@@ -31,7 +31,7 @@
           (coverage rect -8.00, -8.00 800.00 x 600.00)
           (intersects coverage rect 1)
           (contentsScale 1.00)
-          (contents layer
+          (contents layer (background color)
             (position 0.00 0.00)
             (bounds 44.00 42.00)
           )

Modified: trunk/LayoutTests/fullscreen/full-screen-layer-dump-expected.txt (276326 => 276327)


--- trunk/LayoutTests/fullscreen/full-screen-layer-dump-expected.txt	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/fullscreen/full-screen-layer-dump-expected.txt	2021-04-20 23:21:06 UTC (rev 276327)
@@ -12,7 +12,7 @@
             (GraphicsLayer
               (anchor 0.00 0.00)
               (bounds 800.00 600.00)
-              (contents layer
+              (contents layer (background color)
                 (position -800.00 -600.00)
                 (bounds 2400.00 1800.00)
               )

Added: trunk/LayoutTests/model-element/model-element-graphics-layers-opacity-expected.txt (0 => 276327)


--- trunk/LayoutTests/model-element/model-element-graphics-layers-opacity-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/model-element/model-element-graphics-layers-opacity-expected.txt	2021-04-20 23:21:06 UTC (rev 276327)
@@ -0,0 +1,13 @@
+ (platform layer
+  (position 158.00 83.00)
+  (bounds 300.00 150.00)
+  (opacity 0.50)
+  (children
+    (contents layer (model)
+      (position 0.00 0.00)
+      (bounds 300.00 150.00)
+      (opacity 0.50)
+    )
+  )
+)
+

Copied: trunk/LayoutTests/model-element/model-element-graphics-layers-opacity.html (from rev 276326, trunk/LayoutTests/model-element/model-element-graphics-layers.html) (0 => 276327)


--- trunk/LayoutTests/model-element/model-element-graphics-layers-opacity.html	                        (rev 0)
+++ trunk/LayoutTests/model-element/model-element-graphics-layers-opacity.html	2021-04-20 23:21:06 UTC (rev 276327)
@@ -0,0 +1,38 @@
+<!DOCTYPE html><!-- webkit-test-runner [ ModelElementEnabled=true ] -->
+<html>
+<head>
+    <style>
+        model {
+            opacity: 0.5;
+        }
+    </style>
+</head>
+<body>
+<model id="model">
+    <source src=""
+</model>
+<pre id="layers"></pre>
+<script>
+    let layers = document.getElementById("layers");
+
+    if (window.testRunner) {
+        testRunner.waitUntilDone();
+        testRunner.dumpAsText();
+    } else
+        layers.textContent = "This test requires testRunner.";
+
+    let model = document.getElementById("model");
+
+    model.ready.then(value => {
+        if (window.testRunner)
+            layers.innerText = window.internals.platformLayerTreeAsText(model, window.internals.PLATFORM_LAYER_TREE_INCLUDE_OPACITY);
+        model.remove();
+    }, reason => {
+        layers.textContent = `Failed. Model did not load: ${reason}`;
+    }).finally(() => { 
+        if (window.testRunner)
+            testRunner.notifyDone();
+    });
+</script>
+</body>
+</html>

Modified: trunk/LayoutTests/model-element/model-element-graphics-layers.html (276326 => 276327)


--- trunk/LayoutTests/model-element/model-element-graphics-layers.html	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/model-element/model-element-graphics-layers.html	2021-04-20 23:21:06 UTC (rev 276327)
@@ -4,7 +4,7 @@
 <model id="model">
     <source src=""
 </model>
-<pre id="layers"></p>
+<pre id="layers"></pre>
 <script>
     let layers = document.getElementById("layers");
 
@@ -19,6 +19,7 @@
     model.ready.then(value => {
         if (window.testRunner)
             layers.innerText = window.internals.layerTreeAsText(document);
+        model.remove();
     }, reason => {
         layers.textContent = `Failed. Model did not load: ${reason}`;
     }).finally(() => { 

Modified: trunk/LayoutTests/platform/gtk/TestExpectations (276326 => 276327)


--- trunk/LayoutTests/platform/gtk/TestExpectations	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2021-04-20 23:21:06 UTC (rev 276327)
@@ -307,6 +307,7 @@
 
 # platformLayerTreeAsText is only implemented for Cocoa ports.
 fast/harness/platform-layer-tree-as-text.html [ Skip ]
+model-element/model-element-graphics-layers-opacity.html [ Skip ]
 
 # This test requires Mac ObjC bindings, although it currently passes
 Bug(GTK) http/tests/security/dataTransfer-set-data-file-url.html [ WontFix Pass ]

Modified: trunk/LayoutTests/platform/ios/compositing/video/video-object-position-expected.txt (276326 => 276327)


--- trunk/LayoutTests/platform/ios/compositing/video/video-object-position-expected.txt	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/platform/ios/compositing/video/video-object-position-expected.txt	2021-04-20 23:21:06 UTC (rev 276327)
@@ -13,7 +13,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
@@ -27,7 +27,7 @@
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
-          (contents layer
+          (contents layer (media)
             (position 22.00 12.00)
             (bounds 120.00 200.00)
           )
@@ -37,7 +37,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
@@ -51,7 +51,7 @@
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
-          (contents layer
+          (contents layer (media)
             (position -8.00 -8.00)
             (bounds 120.00 200.00)
           )
@@ -61,7 +61,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
@@ -71,7 +71,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 57.00)
             (bounds 120.00 90.00)
           )
@@ -85,7 +85,7 @@
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
-          (contents layer
+          (contents layer (media)
             (position 22.00 12.00)
             (bounds 120.00 90.00)
           )
@@ -95,7 +95,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 30.00)
             (bounds 120.00 90.00)
           )
@@ -109,7 +109,7 @@
             (position 2.00 2.00)
             (bounds 120.00 200.00)
           )
-          (contents layer
+          (contents layer (media)
             (position -8.00 102.00)
             (bounds 120.00 90.00)
           )
@@ -119,7 +119,7 @@
           (bounds 124.00 204.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 2.00 101.00)
             (bounds 120.00 90.00)
           )

Modified: trunk/LayoutTests/platform/ios/compositing/visible-rect/mask-layer-coverage-expected.txt (276326 => 276327)


--- trunk/LayoutTests/platform/ios/compositing/visible-rect/mask-layer-coverage-expected.txt	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/platform/ios/compositing/visible-rect/mask-layer-coverage-expected.txt	2021-04-20 23:21:06 UTC (rev 276327)
@@ -31,7 +31,7 @@
           (coverage rect -8.00, -8.00 800.00 x 600.00)
           (intersects coverage rect 1)
           (contentsScale 2.00)
-          (contents layer
+          (contents layer (background color)
             (position 0.00 0.00)
             (bounds 44.00 42.00)
           )

Modified: trunk/LayoutTests/platform/mac/compositing/images/direct-image-object-fit-expected.txt (276326 => 276327)


--- trunk/LayoutTests/platform/mac/compositing/images/direct-image-object-fit-expected.txt	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/platform/mac/compositing/images/direct-image-object-fit-expected.txt	2021-04-20 23:21:06 UTC (rev 276327)
@@ -14,7 +14,7 @@
             (position 0.00 0.00)
             (bounds 200.00 120.00)
           )
-          (contents layer
+          (contents layer (image)
             (position -20.00 0.00)
             (bounds 240.00 120.00)
           )
@@ -22,7 +22,7 @@
         (GraphicsLayer
           (position 58.00 160.00)
           (bounds 200.00 120.00)
-          (contents layer
+          (contents layer (image)
             (position 0.00 10.00)
             (bounds 200.00 100.00)
           )
@@ -34,7 +34,7 @@
             (position 0.00 0.00)
             (bounds 200.00 120.00)
           )
-          (contents layer
+          (contents layer (image)
             (position -44.00 -12.00)
             (bounds 288.00 144.00)
           )

Modified: trunk/LayoutTests/platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt (276326 => 276327)


--- trunk/LayoutTests/platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt	2021-04-20 23:21:06 UTC (rev 276327)
@@ -24,7 +24,7 @@
             (position 0.00 0.00)
             (bounds 200.00 120.00)
           )
-          (contents layer
+          (contents layer (image)
             (position -20.00 0.00)
             (bounds 240.00 120.00)
           )
@@ -42,7 +42,7 @@
             (position 372.00 88.00)
             (bounds 200.00 120.00)
           )
-          (contents layer
+          (contents layer (image)
             (position 0.00 10.00)
             (bounds 200.00 100.00)
           )
@@ -64,7 +64,7 @@
             (position 0.00 0.00)
             (bounds 200.00 120.00)
           )
-          (contents layer
+          (contents layer (image)
             (position -44.00 -12.00)
             (bounds 288.00 144.00)
           )

Modified: trunk/LayoutTests/platform/mac/compositing/video/video-object-fit-expected.txt (276326 => 276327)


--- trunk/LayoutTests/platform/mac/compositing/video/video-object-fit-expected.txt	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/platform/mac/compositing/video/video-object-fit-expected.txt	2021-04-20 23:21:06 UTC (rev 276327)
@@ -12,7 +12,7 @@
           (bounds 200.00 280.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 40.00 40.00)
             (bounds 120.00 200.00)
           )
@@ -26,7 +26,7 @@
             (position 40.00 40.00)
             (bounds 120.00 200.00)
           )
-          (contents layer
+          (contents layer (media)
             (position -33.00 40.00)
             (bounds 266.00 200.00)
           )
@@ -36,7 +36,7 @@
           (bounds 200.00 280.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 40.00 95.00)
             (bounds 120.00 90.00)
           )
@@ -46,7 +46,7 @@
           (bounds 430.00 380.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 55.00 70.00)
             (bounds 320.00 240.00)
           )
@@ -56,7 +56,7 @@
           (bounds 480.00 260.00)
           (contentsOpaque 1)
           (drawsContent 1)
-          (contents layer
+          (contents layer (media)
             (position 120.00 40.00)
             (bounds 240.00 180.00)
           )
@@ -70,7 +70,7 @@
             (position 40.00 40.00)
             (bounds 120.00 200.00)
           )
-          (contents layer
+          (contents layer (media)
             (position -60.00 20.00)
             (bounds 320.00 240.00)
           )

Modified: trunk/LayoutTests/platform/win/TestExpectations (276326 => 276327)


--- trunk/LayoutTests/platform/win/TestExpectations	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/platform/win/TestExpectations	2021-04-20 23:21:06 UTC (rev 276327)
@@ -128,6 +128,7 @@
 
 # platformLayerTreeAsText is only implemented for Cocoa ports.
 fast/harness/platform-layer-tree-as-text.html [ Skip ]
+model-element/model-element-graphics-layers-opacity.html [ Skip ]
 
 # color-filters are off by default
 webkit.org/b/185076 css3/color-filters [ Skip ]

Modified: trunk/LayoutTests/platform/wpe/TestExpectations (276326 => 276327)


--- trunk/LayoutTests/platform/wpe/TestExpectations	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/LayoutTests/platform/wpe/TestExpectations	2021-04-20 23:21:06 UTC (rev 276327)
@@ -312,6 +312,7 @@
 
 # platformLayerTreeAsText is only implemented for Cocoa ports.
 fast/harness/platform-layer-tree-as-text.html [ Skip ]
+model-element/model-element-graphics-layers-opacity.html [ Skip ]
 
 # ENABLE_DRAG_SUPPORT is OFF in WPE.
 fast/events/5056619.html [ Skip ]

Modified: trunk/Source/WebCore/ChangeLog (276326 => 276327)


--- trunk/Source/WebCore/ChangeLog	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/Source/WebCore/ChangeLog	2021-04-20 23:21:06 UTC (rev 276327)
@@ -1,3 +1,33 @@
+2021-04-20  Sam Weinig  <wei...@apple.com>
+
+        Separated models don't get opacity set on them at all
+        https://bugs.webkit.org/show_bug.cgi?id=224763
+
+        Reviewed by Tim Horton.
+
+        Test: model-element/model-element-graphics-layers-opacity.html
+
+        This certainly won't be the way things land once separated/optimized
+        layer semantics are better understood, but for now, it is useful to
+        explicitly propogate the opacity of the owing layer to the content
+        layer if the content layer is a model layer. In the future, we may want
+        to do this for any separated child (and conversely, only to the content
+        layer if it is separated), but this will allow us to play a bit futher
+        in our experimentation.
+
+        Also adds support for dumping the opacity of a content layer to make
+        this testable.
+
+        * platform/graphics/GraphicsLayerClient.h:
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::setContentsToModel):
+        (WebCore::GraphicsLayerCA::purposeNameForInnerLayer const):
+        (WebCore::GraphicsLayerCA::dumpInnerLayer const):
+        * testing/Internals.cpp:
+        (WebCore::toPlatformLayerTreeFlags):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
 2021-04-20  Kate Cheney  <katherine_che...@apple.com>
 
         Preconnect tasks and preflight checks do not correctly mark app-bound context string

Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayerClient.h (276326 => 276327)


--- trunk/Source/WebCore/platform/graphics/GraphicsLayerClient.h	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayerClient.h	2021-04-20 23:21:06 UTC (rev 276327)
@@ -90,6 +90,7 @@
 enum class PlatformLayerTreeAsTextFlags : uint8_t {
     Debug = 1 << 0,
     IgnoreChildren = 1 << 1,
+    IncludeOpacity = 1 << 2,
 };
 
 enum GraphicsLayerPaintFlags {

Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (276326 => 276327)


--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2021-04-20 23:21:06 UTC (rev 276327)
@@ -1242,6 +1242,8 @@
 
     if (contentsLayerChanged)
         noteSublayersChanged();
+
+    noteLayerPropertyChanged(OpacityChanged);
 }
 #endif
 
@@ -3941,8 +3943,24 @@
         return "shape mask layer";
     if (&layer == m_backdropClippingLayer.get())
         return "backdrop clipping layer";
-    if (&layer == m_contentsLayer.get())
-        return "contents layer";
+    if (&layer == m_contentsLayer.get()) {
+        switch (m_contentsLayerPurpose) {
+        case ContentsLayerPurpose::None:
+            return "contents layer (none)";
+        case ContentsLayerPurpose::Image:
+            return "contents layer (image)";
+        case ContentsLayerPurpose::Media:
+            return "contents layer (media)";
+        case ContentsLayerPurpose::Canvas:
+            return "contents layer (canvas)";
+        case ContentsLayerPurpose::BackgroundColor:
+            return "contents layer (background color)";
+        case ContentsLayerPurpose::Plugin:
+            return "contents layer (plugin)";
+        case ContentsLayerPurpose::Model:
+            return "contents layer (model)";
+        }
+    }
     if (&layer == m_contentsShapeMaskLayer.get())
         return "contents shape mask layer";
     if (&layer == m_backdropLayer.get())
@@ -3965,6 +3983,9 @@
 
         ts << indent << "(position " << layer->position().x() << " " << layer->position().y() << ")\n";
         ts << indent << "(bounds " << layer->bounds().width() << " " << layer->bounds().height() << ")\n";
+        
+        if (flags.contains(PlatformLayerTreeAsTextFlags::IncludeOpacity))
+            ts << indent << "(opacity " << layer->opacity() << ")\n";
 
         if (layer->isHidden())
             ts << indent << "(hidden)\n";
@@ -4391,6 +4412,11 @@
             clone.value->setOpacity(m_opacity);
         }
     }
+
+#if ENABLE(MODEL_ELEMENT)
+    if (m_contentsLayer && m_contentsLayerPurpose == ContentsLayerPurpose::Model)
+        m_contentsLayer->setOpacity(m_opacity);
+#endif
 }
 
 void GraphicsLayerCA::deviceOrPageScaleFactorChanged()

Modified: trunk/Source/WebCore/testing/Internals.cpp (276326 => 276327)


--- trunk/Source/WebCore/testing/Internals.cpp	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/Source/WebCore/testing/Internals.cpp	2021-04-20 23:21:06 UTC (rev 276327)
@@ -2861,6 +2861,8 @@
         platformLayerTreeFlags.add(PlatformLayerTreeAsTextFlags::Debug);
     if (flags & Internals::PLATFORM_LAYER_TREE_IGNORES_CHILDREN)
         platformLayerTreeFlags.add(PlatformLayerTreeAsTextFlags::IgnoreChildren);
+    if (flags & Internals::PLATFORM_LAYER_TREE_INCLUDE_OPACITY)
+        platformLayerTreeFlags.add(PlatformLayerTreeAsTextFlags::IncludeOpacity);
     return platformLayerTreeFlags;
 }
 

Modified: trunk/Source/WebCore/testing/Internals.h (276326 => 276327)


--- trunk/Source/WebCore/testing/Internals.h	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/Source/WebCore/testing/Internals.h	2021-04-20 23:21:06 UTC (rev 276327)
@@ -425,6 +425,7 @@
         // Values need to be kept in sync with Internals.idl.
         PLATFORM_LAYER_TREE_DEBUG = 1,
         PLATFORM_LAYER_TREE_IGNORES_CHILDREN = 2,
+        PLATFORM_LAYER_TREE_INCLUDE_OPACITY = 4,
     };
     ExceptionOr<String> platformLayerTreeAsText(Element&, unsigned short flags) const;
 

Modified: trunk/Source/WebCore/testing/Internals.idl (276326 => 276327)


--- trunk/Source/WebCore/testing/Internals.idl	2021-04-20 23:11:40 UTC (rev 276326)
+++ trunk/Source/WebCore/testing/Internals.idl	2021-04-20 23:21:06 UTC (rev 276327)
@@ -504,6 +504,7 @@
     // Flags for platformLayerTreeAsText.
     const unsigned short PLATFORM_LAYER_TREE_DEBUG = 1;
     const unsigned short PLATFORM_LAYER_TREE_IGNORES_CHILDREN = 2;
+    const unsigned short PLATFORM_LAYER_TREE_INCLUDE_OPACITY = 4;
     DOMString platformLayerTreeAsText(Element element, optional unsigned short flags = 0);
 
     DOMString scrollbarOverlayStyle(optional Node? node = null);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to