Title: [153702] trunk
Revision
153702
Author
commit-qu...@webkit.org
Date
2013-08-05 00:16:00 -0700 (Mon, 05 Aug 2013)

Log Message

Source/WebCore: [CSS Background Blending] Specifying background-image and background-color
with opaque image doesn't trigger blending. The fix consists of adding a
check whether blend mode is set in hasOpaqueImage.

https://bugs.webkit.org/show_bug.cgi?id=119434

Patch by Mihai Tica <mit...@adobe.com> on 2013-08-05
Reviewed by Dirk Schulze.

Test: css3/compositing/background-blend-mode-separate-layer-declaration.html

* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::hasOpaqueImage):

LayoutTests: [CSS Background Blending] Specifying background-image and background-color with opaque
image doesn't trigger blending. Adding ref test to validate the fix.

https://bugs.webkit.org/show_bug.cgi?id=119434i

Patch by Mihai Tica <mit...@adobe.com> on 2013-08-05
Reviewed by Dirk Schulze.

* css3/compositing/background-blend-mode-separate-layer-declaration-expected.html: Added.
* css3/compositing/background-blend-mode-separate-layer-declaration.html: Added.
* css3/compositing/resources/gray_square.svg: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (153701 => 153702)


--- trunk/LayoutTests/ChangeLog	2013-08-04 21:29:00 UTC (rev 153701)
+++ trunk/LayoutTests/ChangeLog	2013-08-05 07:16:00 UTC (rev 153702)
@@ -1,3 +1,16 @@
+2013-08-05  Mihai Tica  <mit...@adobe.com>
+
+        [CSS Background Blending] Specifying background-image and background-color with opaque
+        image doesn't trigger blending. Adding ref test to validate the fix.
+
+        https://bugs.webkit.org/show_bug.cgi?id=119434i
+
+        Reviewed by Dirk Schulze.
+
+        * css3/compositing/background-blend-mode-separate-layer-declaration-expected.html: Added.
+        * css3/compositing/background-blend-mode-separate-layer-declaration.html: Added.
+        * css3/compositing/resources/gray_square.svg: Added.
+
 2013-08-03  Simon Fraser  <simon.fra...@apple.com>
 
         webaudio/audiobuffersource-loop-points.html always times out

Added: trunk/LayoutTests/css3/compositing/background-blend-mode-separate-layer-declaration-expected.html (0 => 153702)


--- trunk/LayoutTests/css3/compositing/background-blend-mode-separate-layer-declaration-expected.html	                        (rev 0)
+++ trunk/LayoutTests/css3/compositing/background-blend-mode-separate-layer-declaration-expected.html	2013-08-05 07:16:00 UTC (rev 153702)
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <style>
+        div  {
+            width: 100px;
+            height: 100px;
+            background-color: #777777;
+        }
+    </style>
+</head>
+<!-- Test whether blend mode applies when specifying the background layers separately, using both background-image and background-color -->
+<body>
+    <div></div>
+</body>
+</html>

Added: trunk/LayoutTests/css3/compositing/background-blend-mode-separate-layer-declaration.html (0 => 153702)


--- trunk/LayoutTests/css3/compositing/background-blend-mode-separate-layer-declaration.html	                        (rev 0)
+++ trunk/LayoutTests/css3/compositing/background-blend-mode-separate-layer-declaration.html	2013-08-05 07:16:00 UTC (rev 153702)
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <style>
+        div  {
+            width: 100px;
+            height: 100px;
+            background-color: #FFFFFF;
+            background-image: url('resources/gray_square.svg');
+            -webkit-background-blend-mode: multiply;
+        }
+    </style>
+</head>
+<!-- Test whether blend mode applies when specifying the background layers separately, using both background-image and background-color -->
+<body>
+    <div></div>
+</body>
+</html>

Added: trunk/LayoutTests/css3/compositing/resources/gray_square.svg (0 => 153702)


--- trunk/LayoutTests/css3/compositing/resources/gray_square.svg	                        (rev 0)
+++ trunk/LayoutTests/css3/compositing/resources/gray_square.svg	2013-08-05 07:16:00 UTC (rev 153702)
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 100 100">
+	<svg><rect width="100%" height="100%" fill="#777777"/></svg>
+</svg>

Modified: trunk/Source/WebCore/ChangeLog (153701 => 153702)


--- trunk/Source/WebCore/ChangeLog	2013-08-04 21:29:00 UTC (rev 153701)
+++ trunk/Source/WebCore/ChangeLog	2013-08-05 07:16:00 UTC (rev 153702)
@@ -1,3 +1,18 @@
+2013-08-05  Mihai Tica  <mit...@adobe.com>
+
+        [CSS Background Blending] Specifying background-image and background-color
+        with opaque image doesn't trigger blending. The fix consists of adding a
+        check whether blend mode is set in hasOpaqueImage.
+
+        https://bugs.webkit.org/show_bug.cgi?id=119434
+
+        Reviewed by Dirk Schulze.
+
+        Test: css3/compositing/background-blend-mode-separate-layer-declaration.html
+
+        * rendering/style/FillLayer.cpp:
+        (WebCore::FillLayer::hasOpaqueImage):
+
 2013-08-04  Zalan Bujtas  <za...@apple.com>
 
         Background doesn't fully repaint when body has margins.

Modified: trunk/Source/WebCore/rendering/style/FillLayer.cpp (153701 => 153702)


--- trunk/Source/WebCore/rendering/style/FillLayer.cpp	2013-08-04 21:29:00 UTC (rev 153701)
+++ trunk/Source/WebCore/rendering/style/FillLayer.cpp	2013-08-05 07:16:00 UTC (rev 153702)
@@ -351,6 +351,9 @@
     if (m_composite == CompositeClear || m_composite == CompositeCopy)
         return true;
 
+    if (m_blendMode != BlendModeNormal)
+        return false;
+
     if (m_composite == CompositeSourceOver)
         return m_image->knownToBeOpaque(renderer);
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to