Bug 304116
| Summary: | [threaded-animations] WPT test `scroll-animations/scroll-timelines/setting-timeline.tentative.html` crashes with "Threaded Time-based Animations" enabled | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Antoine Quint <graouts> |
| Component: | Animations | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | Normal | CC: | graouts, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Antoine Quint
The following subtest yields a failed assertion:
promise_test(async t => {
const animation = createAnimation(t);
const scrollTimeline = createScrollTimeline(t);
animation.timeline = scrollTimeline;
await animation.ready;
await updateScrollPosition(scrollTimeline, 100);
animation.timeline = document.timeline;
assert_times_equal(animation.currentTime, 100);
}, 'Transitioning from a scroll timeline to a document timeline on a running ' +
'animation preserves currentTime');
Here's the last few frames in the stack trace:
#0 0x0000000304ce394c in WebCore::WebAnimationTime::operator- at /Source/WebCore/animation/WebAnimationTime.cpp:183
#1 0x0000000304ce38cc in WebCore::WebAnimation::currentTime at /Source/WebCore/animation/WebAnimation.cpp:512
#2 0x0000000304cd7240 in WebCore::WebAnimation::currentTime at /Source/WebCore/animation/WebAnimation.cpp:489
#3 0x0000000304cd56b0 in WebCore::WebAnimation::playState at /Source/WebCore/animation/WebAnimation.cpp:784
#4 0x0000000304c635c8 in WebCore::KeyframeEffect::isRunningAccelerated at /Source/WebCore/animation/KeyframeEffect.cpp:1666
#5 0x0000000304c6aaf4 in WebCore::KeyframeEffect::StackMembershipMutationScope::~StackMembershipMutationScope at /Source/WebCore/animation/KeyframeEffect.cpp:3073
#6 0x0000000304c625e0 in WebCore::KeyframeEffect::StackMembershipMutationScope::~StackMembershipMutationScope at /Source/WebCore/animation/KeyframeEffect.cpp:3065
#7 0x0000000304c62384 in WebCore::KeyframeEffect::updateEffectStackMembership at /Source/WebCore/animation/KeyframeEffect.cpp:1531
#8 0x0000000304c6226c in WebCore::KeyframeEffect::animationTimelineDidChange at /Source/WebCore/animation/KeyframeEffect.cpp:1506
#9 0x0000000304ce25d0 in WebCore::WebAnimation::setTimelineInternal at /Source/WebCore/animation/WebAnimation.cpp:384
#10 0x0000000304cd6b94 in WebCore::WebAnimation::setTimeline at /Source/WebCore/animation/WebAnimation.cpp:314
#11 0x0000000304ce2ae8 in WebCore::WebAnimation::setBindingsTimeline at /Source/WebCore/animation/WebAnimation.cpp:260
This is a common error when dealing with timeline changes with different types (progress-based v. monotonic). We need to clear cached time values at some point prior to querying the play state here.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/166940957>
Antoine Quint
*** This bug has been marked as a duplicate of bug 306625 ***