Bug 215655 - REGRESSION (r263729): Carousel freezes on "fourth page"/fourth click on right arrow on netflix.com
Summary: REGRESSION (r263729): Carousel freezes on "fourth page"/fourth click on right...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Animations (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Wenson Hsieh
URL:
Keywords: InRadar
: 215159 217061 (view as bug list)
Depends on:
Blocks:
 
Reported: 2020-08-19 10:35 PDT by Wenson Hsieh
Modified: 2020-10-19 06:40 PDT (History)
7 users (show)

See Also:


Attachments
Patch (8.64 KB, patch)
2020-08-20 12:27 PDT, Wenson Hsieh
no flags Details | Formatted Diff | Diff
Patch (8.68 KB, patch)
2020-08-20 14:43 PDT, Wenson Hsieh
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Wenson Hsieh 2020-08-19 10:35:46 PDT
<rdar://problem/65845979>
Comment 1 Wenson Hsieh 2020-08-20 12:27:21 PDT
Created attachment 406954 [details]
Patch
Comment 2 Dean Jackson 2020-08-20 12:35:39 PDT
Comment on attachment 406954 [details]
Patch

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

> Source/WebCore/ChangeLog:11
> +        `translate` CSS properties to a container `div`, and adds a `transitionend` event listener which the page

did you mean `transition`?
Comment 3 Wenson Hsieh 2020-08-20 12:36:20 PDT
Comment on attachment 406954 [details]
Patch

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

>> Source/WebCore/ChangeLog:11
>> +        `translate` CSS properties to a container `div`, and adds a `transitionend` event listener which the page
> 
> did you mean `transition`?

Whoops, yes I did! Fixed.
Comment 4 Simon Fraser (smfr) 2020-08-20 12:36:46 PDT
Comment on attachment 406954 [details]
Patch

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

> Source/WebCore/ChangeLog:11
> +        `translate` CSS properties to a container `div`, and adds a `transitionend` event listener which the page

Did you mean `translate` here, or `transition`?

> LayoutTests/animations/animation-followed-by-two-transitions.html:45
> +            await UIHelper.delayFor(60);

Why 60ms?
Comment 5 Wenson Hsieh 2020-08-20 14:28:21 PDT
Comment on attachment 406954 [details]
Patch

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

>> LayoutTests/animations/animation-followed-by-two-transitions.html:45
>> +            await UIHelper.delayFor(60);
> 
> Why 60ms?

So when I originally wrote this, I noticed that some delay was needed to cause the test to fail without the change in this patch. After some experimentation I thought that I needed to match the duration of the transition that is ending (60ms), but now after more digging, I realized that this is not the case.

In order for the test to exercise the bug, I need to wait long enough here for the CSSTransition that was created as a result of adding the "transition" class to complete (i.e. `DocumentTimeline::transitionDidComplete`). It seems this call happens during the next rendering update after `AnimationTimeline::updateCSSAnimationsForElement`, which happens during the next rendering update after replacing the "transition" class with "no-transition".

As such, it should be sufficient to replace this hard-coded delay with two `await UIHelper.renderingUpdate();`s.
Comment 6 Wenson Hsieh 2020-08-20 14:43:32 PDT
Created attachment 406969 [details]
Patch
Comment 7 EWS 2020-08-20 17:12:09 PDT
Committed r265985: <https://trac.webkit.org/changeset/265985>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406969 [details].
Comment 8 Antoine Quint 2020-08-24 08:13:25 PDT
*** Bug 215159 has been marked as a duplicate of this bug. ***
Comment 9 Antoine Quint 2020-10-19 06:40:00 PDT
*** Bug 217061 has been marked as a duplicate of this bug. ***