Title: [108390] branches/chromium/1025
Revision
108390
Author
[email protected]
Date
2012-02-21 13:29:59 -0800 (Tue, 21 Feb 2012)

Log Message

Merge 107822 - Source/WebCore: Fix for incorrect/offset image in CSS filters (non-composited path)
https://bugs.webkit.org/show_bug.cgi?id=78626

Reviewed by Darin Adler.

Test: css3/filters/multiple-filters-invalidation.html

* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::prepare):
When invalidating results, invalidate all intermediate filter
results, not just the last effect's result.

LayoutTests: New test to exercise invalidation of multiple CSS filters.
https://bugs.webkit.org/show_bug.cgi?id=78626

Reviewed by Darin Adler.

* css3/filters/multiple-filters-invalidation-expected.txt: Added.
* css3/filters/multiple-filters-invalidation.html: Added.
* platform/mac-snowleopard/css3/filters/multiple-filters-invalidation-expected.png: Added.


[email protected]
Review URL: https://chromiumcodereview.appspot.com/9429011

Modified Paths

Added Paths

Diff

Copied: branches/chromium/1025/LayoutTests/css3/filters/multiple-filters-invalidation-expected.txt (from rev 107822, trunk/LayoutTests/css3/filters/multiple-filters-invalidation-expected.txt) (0 => 108390)


--- branches/chromium/1025/LayoutTests/css3/filters/multiple-filters-invalidation-expected.txt	                        (rev 0)
+++ branches/chromium/1025/LayoutTests/css3/filters/multiple-filters-invalidation-expected.txt	2012-02-21 21:29:59 UTC (rev 108390)
@@ -0,0 +1 @@
+

Copied: branches/chromium/1025/LayoutTests/css3/filters/multiple-filters-invalidation.html (from rev 107822, trunk/LayoutTests/css3/filters/multiple-filters-invalidation.html) (0 => 108390)


--- branches/chromium/1025/LayoutTests/css3/filters/multiple-filters-invalidation.html	                        (rev 0)
+++ branches/chromium/1025/LayoutTests/css3/filters/multiple-filters-invalidation.html	2012-02-21 21:29:59 UTC (rev 108390)
@@ -0,0 +1,30 @@
+<html>
+<head>
+<style>
+html {
+  -webkit-filter: brightness(0.1) contrast(120%);
+}
+#rect {
+  background: red;
+  width:  100px;
+  height:  100px;
+}
+</style>
+</head>
+<body>
+<div id="rect"></div>
+</body>
+<script>
+function changeBackground() {
+    document.getElementById("rect").style.background = ""
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText(true);
+    layoutTestController.display();
+    changeBackground();
+} else 
+    window.setTimeout(changeBackground, 250);
+
+</script>
+</html>

Copied: branches/chromium/1025/LayoutTests/platform/mac-snowleopard/css3/filters/multiple-filters-invalidation-expected.png (from rev 107822, trunk/LayoutTests/platform/mac-snowleopard/css3/filters/multiple-filters-invalidation-expected.png)


(Binary files differ)

Modified: branches/chromium/1025/Source/WebCore/rendering/FilterEffectRenderer.cpp (108389 => 108390)


--- branches/chromium/1025/Source/WebCore/rendering/FilterEffectRenderer.cpp	2012-02-21 21:20:33 UTC (rev 108389)
+++ branches/chromium/1025/Source/WebCore/rendering/FilterEffectRenderer.cpp	2012-02-21 21:29:59 UTC (rev 108390)
@@ -326,7 +326,8 @@
         m_graphicsBufferAttached = true;
     }
     m_sourceGraphic->clearResult();
-    lastEffect()->clearResult();
+    for (size_t i = 0; i < m_effects.size(); ++i)
+        m_effects[i]->clearResult();
 }
 
 void FilterEffectRenderer::apply()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to