[CSS Blending] showLayerTree should dump layer's blend mode and isolation properties
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 31 Mar 2014 21:06:48 +0000 (21:06 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 31 Mar 2014 21:06:48 +0000 (21:06 +0000)
https://bugs.webkit.org/show_bug.cgi?id=130922

Patch by Ion Rosca <rosca@adobe.com> on 2014-03-31
Reviewed by Simon Fraser.

Source/WebCore:

This change only updates existing tests involving blending. No new test required,
as there is no new or changed functionality.

* rendering/RenderLayer.h: adding blendMode() getter.
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
adding blendMode property and layer's isolation status (does layer isolate blending descendants or not?).

LayoutTests:

Tests are adapted after adding blending information to RenderTreeAsText.

* platform/mac/css3/compositing/blend-mode-background-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt:
* platform/mac/css3/compositing/blend-mode-layers-expected.txt:
* platform/mac/css3/compositing/blend-mode-reflection-expected.txt:
* platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt:
* platform/mac/css3/compositing/blend-mode-simple-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@166525 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 files changed:
LayoutTests/ChangeLog
LayoutTests/platform/mac/css3/compositing/blend-mode-background-expected.txt
LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt
LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt
LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt
LayoutTests/platform/mac/css3/compositing/blend-mode-layers-expected.txt
LayoutTests/platform/mac/css3/compositing/blend-mode-reflection-expected.txt
LayoutTests/platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt
LayoutTests/platform/mac/css3/compositing/blend-mode-simple-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderLayer.h
Source/WebCore/rendering/RenderTreeAsText.cpp

index 3e1b09f..0a289e0 100644 (file)
@@ -1,3 +1,21 @@
+2014-03-31  Ion Rosca  <rosca@adobe.com>
+
+        [CSS Blending] showLayerTree should dump layer's blend mode and isolation properties
+        https://bugs.webkit.org/show_bug.cgi?id=130922
+
+        Reviewed by Simon Fraser.
+
+        Tests are adapted after adding blending information to RenderTreeAsText.
+
+        * platform/mac/css3/compositing/blend-mode-background-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-layers-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-reflection-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-simple-expected.txt:
+
 2014-03-31  Samuel White  <samuel_white@apple.com>
 
         AX: Need ability to get line range for text marker.
index 565c1c1..44f0542 100644 (file)
@@ -3,5 +3,5 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x100
   RenderBlock {HTML} at (0,0) size 800x100
     RenderBody {BODY} at (8,20) size 784x60 [bgcolor=#0000FF]
-layer at (28,20) size 60x60
+layer at (28,20) size 60x60 blendMode: difference
   RenderBlock {DIV} at (20,0) size 60x60 [bgcolor=#FF0000]
index 5a26058..597f765 100644 (file)
@@ -3,19 +3,19 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x108
   RenderBlock {HTML} at (0,0) size 800x108
     RenderBody {BODY} at (8,8) size 784x0 [bgcolor=#0000FF]
-layer at (28,28) size 60x60
+layer at (28,28) size 60x60 isolatesBlending
   RenderBlock (floating) {DIV} at (20,20) size 60x60 [bgcolor=#EE82EE]
-layer at (48,48) size 60x60
+layer at (48,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (128,28) size 60x60
   RenderBlock (floating) {DIV} at (120,20) size 60x60 [bgcolor=#EE82EE]
-layer at (148,48) size 60x60
+layer at (148,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (228,28) size 60x60
   RenderBlock (floating) {DIV} at (220,20) size 60x60 [bgcolor=#EE82EE]
-layer at (248,48) size 60x60
+layer at (248,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (328,28) size 60x60
   RenderBlock (floating) {DIV} at (320,20) size 60x60 [bgcolor=#EE82EE]
-layer at (348,48) size 60x60
+layer at (348,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
index 5a26058..597f765 100644 (file)
@@ -3,19 +3,19 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x108
   RenderBlock {HTML} at (0,0) size 800x108
     RenderBody {BODY} at (8,8) size 784x0 [bgcolor=#0000FF]
-layer at (28,28) size 60x60
+layer at (28,28) size 60x60 isolatesBlending
   RenderBlock (floating) {DIV} at (20,20) size 60x60 [bgcolor=#EE82EE]
-layer at (48,48) size 60x60
+layer at (48,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (128,28) size 60x60
   RenderBlock (floating) {DIV} at (120,20) size 60x60 [bgcolor=#EE82EE]
-layer at (148,48) size 60x60
+layer at (148,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (228,28) size 60x60
   RenderBlock (floating) {DIV} at (220,20) size 60x60 [bgcolor=#EE82EE]
-layer at (248,48) size 60x60
+layer at (248,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (328,28) size 60x60
   RenderBlock (floating) {DIV} at (320,20) size 60x60 [bgcolor=#EE82EE]
-layer at (348,48) size 60x60
+layer at (348,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
index e019232..3cd549c 100644 (file)
@@ -1,51 +1,51 @@
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x208 layerType: background only
-layer at (28,28) size 60x60
+layer at (28,28) size 60x60 isolatesBlending
   RenderBlock (floating) zI: -1 {DIV} at (20,20) size 60x60 [bgcolor=#EE82EE]
-layer at (48,48) size 60x60
+layer at (48,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (68,68) size 60x60
   RenderBlock (positioned) {DIV} at (40,40) size 60x60 [bgcolor=#FFA500]
 layer at (128,28) size 60x60
   RenderBlock (floating) zI: -1 {DIV} at (120,20) size 60x60 [bgcolor=#EE82EE]
-layer at (148,48) size 60x60
+layer at (148,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (168,68) size 60x60
   RenderBlock (positioned) {DIV} at (40,40) size 60x60 [bgcolor=#FFA500]
 layer at (228,28) size 60x60
   RenderBlock (floating) zI: -1 {DIV} at (220,20) size 60x60 [bgcolor=#EE82EE]
-layer at (248,48) size 60x60
+layer at (248,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (268,68) size 60x60
   RenderBlock (positioned) {DIV} at (20,20) size 60x60 [bgcolor=#FFA500]
 layer at (328,28) size 60x60
   RenderBlock (floating) zI: -1 {DIV} at (320,20) size 60x60 [bgcolor=#EE82EE]
-layer at (348,48) size 60x60
+layer at (348,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (368,68) size 60x60
   RenderBlock (positioned) {DIV} at (20,20) size 60x60 [bgcolor=#FFA500]
-layer at (428,28) size 60x60
+layer at (428,28) size 60x60 isolatesBlending
   RenderBlock (floating) zI: -1 {DIV} at (420,20) size 60x60 [bgcolor=#EE82EE]
-layer at (448,48) size 60x60
+layer at (448,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (468,68) size 60x60
   RenderBlock (positioned) {DIV} at (40,40) size 60x60 [bgcolor=#FFA500]
 layer at (528,28) size 60x60
   RenderBlock (floating) zI: -1 {DIV} at (520,20) size 60x60 [bgcolor=#EE82EE]
-layer at (548,48) size 60x60
+layer at (548,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (568,68) size 60x60
   RenderBlock (positioned) {DIV} at (40,40) size 60x60 [bgcolor=#FFA500]
 layer at (628,28) size 60x60
   RenderBlock (floating) zI: -1 {DIV} at (620,20) size 60x60 [bgcolor=#EE82EE]
-layer at (648,48) size 60x60
+layer at (648,48) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (668,68) size 60x60
   RenderBlock (positioned) {DIV} at (20,20) size 60x60 [bgcolor=#FFA500]
 layer at (28,128) size 60x60
   RenderBlock (floating) zI: -1 {DIV} at (20,120) size 60x60 [bgcolor=#EE82EE]
-layer at (48,148) size 60x60
+layer at (48,148) size 60x60 blendMode: multiply
   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
 layer at (68,168) size 60x60
   RenderBlock (positioned) {DIV} at (20,20) size 60x60 [bgcolor=#FFA500]
index b14032b..36ce708 100644 (file)
@@ -17,11 +17,11 @@ layer at (73,31) size 160x160
   RenderBlock (relative positioned) {DIV} at (0,0) size 160x160
 layer at (53,41) size 80x150
   RenderBlock (relative positioned) {DIV} at (0,0) size 80x150 [bgcolor=#FFFF00]
-layer at (243,31) size 160x160
+layer at (243,31) size 160x160 blendMode: multiply
   RenderBlock (relative positioned) {DIV} at (0,0) size 160x160
 layer at (223,41) size 80x150
   RenderBlock (relative positioned) {DIV} at (0,0) size 80x150 [bgcolor=#FFFF00]
-layer at (413,31) size 160x160
+layer at (413,31) size 160x160 blendMode: multiply
   RenderBlock (relative positioned) {DIV} at (0,0) size 160x160
 layer at (393,41) size 80x150
   RenderBlock (relative positioned) {DIV} at (0,0) size 80x150 [bgcolor=#FFFF00]
@@ -31,15 +31,15 @@ layer at (583,31) size 160x160
   RenderBlock (relative positioned) {DIV} at (0,0) size 160x160
 layer at (563,41) size 80x150
   RenderBlock (relative positioned) {DIV} at (0,0) size 80x150 [bgcolor=#FFFF00]
-layer at (53,246) size 160x75
+layer at (53,246) size 160x75 isolatesBlending
   RenderBlock {DIV} at (0,50) size 160x75 [bgcolor=#00FFFF]
-layer at (73,206) size 160x160
+layer at (73,206) size 160x160 blendMode: multiply
   RenderBlock (relative positioned) {DIV} at (0,0) size 160x160
 layer at (53,216) size 80x150
   RenderBlock (relative positioned) {DIV} at (0,0) size 80x150 [bgcolor=#FFFF00]
 layer at (223,246) size 160x75
   RenderBlock {DIV} at (0,50) size 160x75 [bgcolor=#00FFFF]
-layer at (243,206) size 160x160
+layer at (243,206) size 160x160 blendMode: multiply
   RenderBlock (relative positioned) {DIV} at (0,0) size 160x160
 layer at (223,216) size 80x150
   RenderBlock (relative positioned) {DIV} at (0,0) size 80x150 [bgcolor=#FFFF00]
index 8081ea5..e5feeb6 100644 (file)
@@ -7,7 +7,7 @@ layer at (0,0) size 800x286
         RenderBlock (floating) {LI} at (45,5) size 130x260
       RenderBlock {UL} at (0,0) size 784x0
         RenderBlock (floating) {LI} at (185,5) size 130x260
-layer at (53,21) size 130x130
+layer at (53,21) size 130x130 blendMode: multiply
   RenderImage {IMG} at (0,0) size 130x130
-layer at (193,21) size 130x130
+layer at (193,21) size 130x130 blendMode: multiply
   RenderImage {IMG} at (0,0) size 130x130
index 03db501..72dab61 100644 (file)
@@ -22,33 +22,33 @@ layer at (0,0) size 800x576
         RenderBlock (floating) {LI} at (45,425) size 130x130
 layer at (53,21) size 130x130
   RenderImage {IMG} at (0,0) size 130x130
-layer at (193,21) size 130x130
+layer at (193,21) size 130x130 blendMode: overlay
   RenderImage {IMG} at (0,0) size 130x130
-layer at (333,21) size 130x130
+layer at (333,21) size 130x130 blendMode: screen
   RenderImage {IMG} at (0,0) size 130x130
-layer at (473,21) size 130x130
+layer at (473,21) size 130x130 blendMode: overlay
   RenderImage {IMG} at (0,0) size 130x130
-layer at (613,21) size 130x130
+layer at (613,21) size 130x130 blendMode: darken
   RenderImage {IMG} at (0,0) size 130x130
-layer at (53,161) size 130x130
+layer at (53,161) size 130x130 blendMode: lighten
   RenderImage {IMG} at (0,0) size 130x130
-layer at (193,161) size 130x130
+layer at (193,161) size 130x130 blendMode: color-dodge
   RenderImage {IMG} at (0,0) size 130x130
-layer at (333,161) size 130x130
+layer at (333,161) size 130x130 blendMode: color-burn
   RenderImage {IMG} at (0,0) size 130x130
-layer at (473,161) size 130x130
+layer at (473,161) size 130x130 blendMode: hard-light
   RenderImage {IMG} at (0,0) size 130x130
-layer at (613,161) size 130x130
+layer at (613,161) size 130x130 blendMode: soft-light
   RenderImage {IMG} at (0,0) size 130x130
-layer at (53,301) size 130x130
+layer at (53,301) size 130x130 blendMode: difference
   RenderImage {IMG} at (0,0) size 130x130
-layer at (193,301) size 130x130
+layer at (193,301) size 130x130 blendMode: exclusion
   RenderImage {IMG} at (0,0) size 130x130
-layer at (333,301) size 130x130
+layer at (333,301) size 130x130 blendMode: hue
   RenderImage {IMG} at (0,0) size 130x130
-layer at (473,301) size 130x130
+layer at (473,301) size 130x130 blendMode: saturation
   RenderImage {IMG} at (0,0) size 130x130
-layer at (613,301) size 130x130
+layer at (613,301) size 130x130 blendMode: color
   RenderImage {IMG} at (0,0) size 130x130
-layer at (53,441) size 130x130
+layer at (53,441) size 130x130 blendMode: luminosity
   RenderImage {IMG} at (0,0) size 130x130
index c014e1e..f50182e 100644 (file)
@@ -21,33 +21,33 @@ layer at (0,0) size 800x576
         RenderBlock (floating) {LI} at (465,285) size 130x130
         RenderBlock (floating) {LI} at (605,285) size 130x130
         RenderBlock (floating) {LI} at (45,425) size 130x130
-layer at (193,21) size 130x130
+layer at (193,21) size 130x130 blendMode: overlay
   RenderImage {IMG} at (0,0) size 130x130
-layer at (333,21) size 130x130
+layer at (333,21) size 130x130 blendMode: screen
   RenderImage {IMG} at (0,0) size 130x130
-layer at (473,21) size 130x130
+layer at (473,21) size 130x130 blendMode: overlay
   RenderImage {IMG} at (0,0) size 130x130
-layer at (613,21) size 130x130
+layer at (613,21) size 130x130 blendMode: darken
   RenderImage {IMG} at (0,0) size 130x130
-layer at (53,161) size 130x130
+layer at (53,161) size 130x130 blendMode: lighten
   RenderImage {IMG} at (0,0) size 130x130
-layer at (193,161) size 130x130
+layer at (193,161) size 130x130 blendMode: color-dodge
   RenderImage {IMG} at (0,0) size 130x130
-layer at (333,161) size 130x130
+layer at (333,161) size 130x130 blendMode: color-burn
   RenderImage {IMG} at (0,0) size 130x130
-layer at (473,161) size 130x130
+layer at (473,161) size 130x130 blendMode: hard-light
   RenderImage {IMG} at (0,0) size 130x130
-layer at (613,161) size 130x130
+layer at (613,161) size 130x130 blendMode: soft-light
   RenderImage {IMG} at (0,0) size 130x130
-layer at (53,301) size 130x130
+layer at (53,301) size 130x130 blendMode: difference
   RenderImage {IMG} at (0,0) size 130x130
-layer at (193,301) size 130x130
+layer at (193,301) size 130x130 blendMode: exclusion
   RenderImage {IMG} at (0,0) size 130x130
-layer at (333,301) size 130x130
+layer at (333,301) size 130x130 blendMode: hue
   RenderImage {IMG} at (0,0) size 130x130
-layer at (473,301) size 130x130
+layer at (473,301) size 130x130 blendMode: saturation
   RenderImage {IMG} at (0,0) size 130x130
-layer at (613,301) size 130x130
+layer at (613,301) size 130x130 blendMode: color
   RenderImage {IMG} at (0,0) size 130x130
-layer at (53,441) size 130x130
+layer at (53,441) size 130x130 blendMode: luminosity
   RenderImage {IMG} at (0,0) size 130x130
index 9fd612b..a1aadb9 100644 (file)
@@ -1,3 +1,18 @@
+2014-03-31  Ion Rosca  <rosca@adobe.com>
+
+        [CSS Blending] showLayerTree should dump layer's blend mode and isolation properties
+        https://bugs.webkit.org/show_bug.cgi?id=130922
+
+        Reviewed by Simon Fraser.
+
+        This change only updates existing tests involving blending. No new test required,
+        as there is no new or changed functionality.
+
+        * rendering/RenderLayer.h: adding blendMode() getter.
+        * rendering/RenderTreeAsText.cpp:
+        (WebCore::write):
+        adding blendMode property and layer's isolation status (does layer isolate blending descendants or not?).
+
 2014-03-31  Benjamin Poulain  <benjamin@webkit.org>
 
         CSS JIT: clean up the functions ending when generating a checker with context
index 4811a03..fc3fc9f 100644 (file)
@@ -786,6 +786,10 @@ public:
 #endif
     }
 
+#if ENABLE(CSS_COMPOSITING)
+    BlendMode blendMode() const { return m_blendMode; }
+#endif
+
     bool isolatesBlending() const
     {
 #if ENABLE(CSS_COMPOSITING)
index 54084e7..c7a7509 100644 (file)
@@ -637,6 +637,13 @@ static void write(TextStream& ts, RenderLayer& l,
         if (l.isComposited())
             ts << " (composited, bounds=" << l.backing()->compositedBounds() << ", drawsContent=" << l.backing()->graphicsLayer()->drawsContent() << ", paints into ancestor=" << l.backing()->paintsIntoCompositedAncestor() << ")";
     }
+
+#if ENABLE(CSS_COMPOSITING)
+    if (l.isolatesBlending())
+        ts << " isolatesBlending";
+    if (l.hasBlendMode())
+        ts << " blendMode: " << compositeOperatorName(CompositeSourceOver, l.blendMode());
+#endif
     
     ts << "\n";