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