Bug 180178 - Missing layer content when animating elements on-screen
Summary: Missing layer content when animating elements on-screen
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-11-29 17:34 PST by Simon Fraser (smfr)
Modified: 2017-11-30 11:00 PST (History)
4 users (show)

See Also:


Attachments
Patch (3.79 KB, patch)
2017-11-29 17:37 PST, Simon Fraser (smfr)
dino: review+
Details | Formatted Diff | Diff
Manual test (1.21 KB, text/html)
2017-11-29 17:37 PST, Simon Fraser (smfr)
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2017-11-29 17:34:13 PST
Missing layer content when animating elements on-screen
Comment 1 Simon Fraser (smfr) 2017-11-29 17:37:17 PST
Created attachment 327935 [details]
Patch
Comment 2 Simon Fraser (smfr) 2017-11-29 17:37:34 PST
Created attachment 327936 [details]
Manual test
Comment 3 Simon Fraser (smfr) 2017-11-29 17:37:49 PST
rdar://problem/34923438
Comment 4 Dean Jackson 2017-11-29 17:41:14 PST
Comment on attachment 327935 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=327935&action=review

> Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:1516
> +    bool nowRunningTransformAnimation = wasRunningTransformAnimation;
> +    if (m_uncommittedChanges & AnimationChanged)
> +        nowRunningTransformAnimation = isRunningTransformAnimation();
> +
> +    if (wasRunningTransformAnimation != nowRunningTransformAnimation)
> +        childCommitState.ancestorStartedOrEndedTransformAnimation = true;

I wish all this could be one statement, but I can't think of a better way.
Comment 5 Simon Fraser (smfr) 2017-11-29 17:50:58 PST
https://trac.webkit.org/r225310
Comment 6 Said Abou-Hallawa 2017-11-30 11:00:29 PST
Comment on attachment 327935 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=327935&action=review

>> Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:1516
>> +        childCommitState.ancestorStartedOrEndedTransformAnimation = true;
> 
> I wish all this could be one statement, but I can't think of a better way.

Maybe

if ((m_uncommittedChanges & AnimationChanged) && wasRunningTransformAnimation != isRunningTransformAnimation())