Bug 68476

Summary: Make -webkit-filter animatable
Product: WebKit Reporter: Dean Jackson <dino>
Component: CSSAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: cmarrin, dglazkov, gustavo, simon.fraser, thorton, webkit-bug-importer, webkit.review.bot, xan.lopez
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 68475    
Bug Blocks:    
Attachments:
Description Flags
Work in progresss. Only blur() animates.
none
Testcase
none
Fixed testcase
none
Patch
none
Patch
none
Patch cmarrin: review+

Dean Jackson
Reported 2011-09-20 14:25:47 PDT
We'll need some logic to animate filters, similar to the way transforms animate.
Attachments
Work in progresss. Only blur() animates. (14.67 KB, patch)
2011-12-11 23:04 PST, Simon Fraser (smfr)
no flags
Testcase (2.52 KB, text/html)
2011-12-12 18:06 PST, Simon Fraser (smfr)
no flags
Fixed testcase (2.52 KB, text/html)
2011-12-13 22:57 PST, Simon Fraser (smfr)
no flags
Patch (33.21 KB, patch)
2011-12-13 23:13 PST, Simon Fraser (smfr)
no flags
Patch (33.47 KB, patch)
2011-12-13 23:27 PST, Simon Fraser (smfr)
no flags
Patch (33.62 KB, patch)
2011-12-14 08:38 PST, Simon Fraser (smfr)
cmarrin: review+
Radar WebKit Bug Importer
Comment 1 2011-09-20 14:26:30 PDT
Simon Fraser (smfr)
Comment 2 2011-12-11 23:04:46 PST
Created attachment 118736 [details] Work in progresss. Only blur() animates.
Dean Jackson
Comment 3 2011-12-12 10:09:12 PST
Cool
Simon Fraser (smfr)
Comment 4 2011-12-12 18:06:39 PST
Created attachment 118928 [details] Testcase
Simon Fraser (smfr)
Comment 5 2011-12-13 22:57:09 PST
Created attachment 119158 [details] Fixed testcase
Simon Fraser (smfr)
Comment 6 2011-12-13 23:13:14 PST
WebKit Review Bot
Comment 7 2011-12-13 23:17:58 PST
Comment on attachment 119160 [details] Patch Attachment 119160 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/10871121
Early Warning System Bot
Comment 8 2011-12-13 23:19:21 PST
Simon Fraser (smfr)
Comment 9 2011-12-13 23:27:47 PST
WebKit Review Bot
Comment 10 2011-12-13 23:52:52 PST
Comment on attachment 119166 [details] Patch Attachment 119166 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/10872146
Gyuyoung Kim
Comment 11 2011-12-14 00:51:30 PST
Gustavo Noronha (kov)
Comment 12 2011-12-14 02:10:20 PST
Early Warning System Bot
Comment 13 2011-12-14 03:05:09 PST
Csaba Osztrogonác
Comment 14 2011-12-14 03:26:24 PST
Comment on attachment 119166 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=119166&action=review > Source/WebCore/Target.pri:3265 > rendering/style/FilterOperations.cpp > + rendering/style/FilterOperation.cpp rendering/style/FilterOperations.cpp \ rendering/style/FilterOperation.cpp
Simon Fraser (smfr)
Comment 15 2011-12-14 08:38:55 PST
Simon Fraser (smfr)
Comment 16 2011-12-14 09:40:56 PST
Patch needs: diff --git a/Source/WebCore/page/animation/KeyframeAnimation.cpp b/Source/WebCore/page/animation/KeyframeAnimation.cpp index 9393e4a..f0231e2 100644 --- a/Source/WebCore/page/animation/KeyframeAnimation.cpp +++ b/Source/WebCore/page/animation/KeyframeAnimation.cpp @@ -452,7 +452,7 @@ void KeyframeAnimation::checkForMatchingFilterFunctionLists() for (size_t i = 0; i < numKeyframes; ++i) { const KeyframeValue& currentKeyframe = m_keyframes[i]; - if (currentKeyframe.style()->transform().operations().size()) { + if (currentKeyframe.style()->filter().operations().size()) { firstNonEmptyFilterKeyframeIndex = i; break; }
Chris Marrin
Comment 17 2011-12-14 09:58:58 PST
Comment on attachment 119224 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=119224&action=review Looks good. Just a few nits > Source/WebCore/page/animation/AnimationBase.cpp:201 > + RefPtr<FilterOperation> identityOp = PassthroughFilterOperation::create(); You should avoid creating this object when not needed > Source/WebCore/page/animation/ImplicitAnimation.cpp:273 > + // Transform lists match. Add a FIXME here so we can change this variable and get rid of this useless comment when isTransformFunctionListValid gets renamed > Source/WebCore/rendering/style/FilterOperation.cpp:35 > +PassRefPtr<FilterOperation> BasicColorMatrixFilterOperation::blend(const FilterOperation* from, double progress, bool blendToPassthrough) Why "Basic"? I don't see any other forms of this object that would cause you to have to discriminate it like this. > Source/WebCore/rendering/style/FilterOperation.cpp:63 > +PassRefPtr<FilterOperation> BasicComponentTransferFilterOperation::blend(const FilterOperation* from, double progress, bool blendToPassthrough) Same here > Source/WebCore/rendering/style/FilterOperation.h:-113 > - Spurious change?
Simon Fraser (smfr)
Comment 18 2011-12-14 13:16:53 PST
Note You need to log in before you can comment on or make changes to this bug.