Title: [151513] trunk/Source/WebCore
Revision
151513
Author
[email protected]
Date
2013-06-12 11:28:24 -0700 (Wed, 12 Jun 2013)

Log Message

[CSS Shaders] Animations and transitions should use validated custom programs
https://bugs.webkit.org/show_bug.cgi?id=117550

Run filters used for animations and transitions through RenderLayer::computeFilterOperations
in order to validate custom filter operations.

Patch by Ralph Thomas <[email protected]> on 2013-06-12
Reviewed by Alexandru Chiculita.

No new tests as no platform can run custom filters with accelerated animations yet.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::startTransition):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (151512 => 151513)


--- trunk/Source/WebCore/ChangeLog	2013-06-12 17:33:31 UTC (rev 151512)
+++ trunk/Source/WebCore/ChangeLog	2013-06-12 18:28:24 UTC (rev 151513)
@@ -1,3 +1,19 @@
+2013-06-12  Ralph Thomas  <[email protected]>
+
+        [CSS Shaders] Animations and transitions should use validated custom programs
+        https://bugs.webkit.org/show_bug.cgi?id=117550
+
+        Run filters used for animations and transitions through RenderLayer::computeFilterOperations
+        in order to validate custom filter operations.
+
+        Reviewed by Alexandru Chiculita.
+
+        No new tests as no platform can run custom filters with accelerated animations yet.
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::startAnimation):
+        (WebCore::RenderLayerBacking::startTransition):
+
 2013-06-12  Ruth Fong  <[email protected]>
 
         Allow for toggling fullscreen on <video> elements

Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (151512 => 151513)


--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2013-06-12 17:33:31 UTC (rev 151512)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2013-06-12 18:28:24 UTC (rev 151513)
@@ -2121,7 +2121,7 @@
 
 #if ENABLE(CSS_FILTERS)
         if ((hasFilter && isFirstOrLastKeyframe) || currentKeyframe.containsProperty(CSSPropertyWebkitFilter))
-            filterVector.insert(FilterAnimationValue::create(key, keyframeStyle->filter(), tf));
+            filterVector.insert(FilterAnimationValue::create(key, owningLayer()->computeFilterOperations(keyframeStyle), tf));
 #endif
     }
 
@@ -2191,8 +2191,8 @@
         const Animation* filterAnim = toStyle->transitionForProperty(CSSPropertyWebkitFilter);
         if (filterAnim && !filterAnim->isEmptyOrZeroDuration()) {
             KeyframeValueList filterVector(AnimatedPropertyWebkitFilter);
-            filterVector.insert(FilterAnimationValue::create(0, fromStyle->filter()));
-            filterVector.insert(FilterAnimationValue::create(1, toStyle->filter()));
+            filterVector.insert(FilterAnimationValue::create(0, owningLayer()->computeFilterOperations(fromStyle)));
+            filterVector.insert(FilterAnimationValue::create(1, owningLayer()->computeFilterOperations(toStyle)));
             if (m_graphicsLayer->addAnimation(filterVector, IntSize(), filterAnim, GraphicsLayer::animationNameForTransition(AnimatedPropertyWebkitFilter), timeOffset)) {
                 // To ensure that the correct filter is visible when the animation ends, also set the final filter.
                 updateFilters(toStyle);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to