| Summary: | [Texmap] Intrinsic style should be set after the animation is done | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Jae Hyun Park <jaepark> | ||||||||
| Component: | Layout and Rendering | Assignee: | Jae Hyun Park <jaepark> | ||||||||
| Status: | NEW --- | ||||||||||
| Severity: | Normal | CC: | cmarcelo, commit-queue, hw1008.kim, kondapallykalyan, luiz, mrobinson, noam, yoon | ||||||||
| Priority: | P2 | ||||||||||
| Version: | 528+ (Nightly build) | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Attachments: |
|
||||||||||
|
Description
Jae Hyun Park
2014-01-16 01:31:39 PST
Created attachment 221346 [details]
Patch
Created attachment 221708 [details]
Patch
Created attachment 221943 [details]
Patch
I think this patch is okay. What I understand the original code is trying to apply intrinsic styles to layers after the end of the animation. And the problem is we cannot know the exact intrinsic style of the layer at TextureMapperLayer. Since the computed value will be updated from GraphicsLayer after the end of the animation, we do not need to assume(?) intrinsic style of the layer without active animations in TextureMapperLayer::syncAnimations(). Comment on attachment 221943 [details]
Patch
Needs test.
(In reply to comment #5) > (From update of attachment 221943 [details]) > Needs test. It's pretty hard to make a test case for this, because it is a timing issue. If TextureMapperLayer::syncAnimations() was called when the animation was at StoppedState, it will apply the style of the first keyframe animation. Then, the intrinsic style of the element will be set via TextureMapperLayer::setTransform/Opacity/Filters and the animation will be removed. So, when the next syncAnimations() is called, the intrinsic style of the element is applied. However, in most cases, when animation is at StoppedState, the intrinsic style of the element is set immediately via TextureMapperLayer::setTransform/Opacity/Filters and the animation is removed. So, when TextureMapperLayer::syncAnimations() is called, it will apply the intrinsic style of the element right away. The problem is easily reproducible in slow devices, or if the javascript execution is frequent during the keyframe animation. Do you have any suggestion on how to make a test case for such timing issue cases? Hi, Jaehyun. I'm looking forward to landing this patch. Coordinated Graphics has a same flickering issue, which is to show up the first frame of css animation when the animation is at StoppedState. It's easy to reproduce on the EFL MiniBrowser. testcase: http://www.apple.com/html5/showcase/transitions/ I hope this patch is reviewed and applied. Thanks. |