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