WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
211232
[Web Animations] imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211232
Summary
[Web Animations] imported/w3c/web-platform-tests/web-animations/timing-model/...
Antoine Quint
Reported
2020-04-30 07:09:24 PDT
https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2Fweb-animations%2Ftiming-model%2Ftimelines%2Fupdate-and-send-events.html
https://build.webkit.org/results/Apple%20Mojave%20Debug%20WK1%20(Tests)/r260898%20(10517)/imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-pretty-diff.html
: --- /Volumes/Data/slave/mojave-debug-tests-wk1/build/layout-test-results/imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-expected.txt +++ /Volumes/Data/slave/mojave-debug-tests-wk1/build/layout-test-results/imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-actual.txt @@ -6,5 +6,5 @@ PASS Queues a cancel event in transitionstart event callback PASS Sorts events for the same transition PASS Playback events with the same timeline retain the order in which they arequeued -PASS All timelines are updated before running microtasks +FAIL All timelines are updated before running microtasks promise_test: Unhandled rejection with value: object "AbortError: The operation was aborted."
Attachments
Patch
(28.19 KB, patch)
2020-05-07 12:26 PDT
,
Antoine Quint
dino
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2020-04-30 07:09:44 PDT
<
rdar://problem/62650227
>
Antoine Quint
Comment 2
2020-04-30 07:10:00 PDT
This reproduces locally with this command: rwt --release imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events.html --iterations=1000 --exit-after-n-failures=1 Eventually the test will fail.
Antoine Quint
Comment 3
2020-05-07 08:06:57 PDT
There's some funky code in DocumentTimeline::currentTime() which leads to slightly different timing for two DocumentTimelines. I think we want to move the notion of the cached current time up to DocumentTimelinesController, or maybe just removing this block of code will work: auto& mainDocumentTimeline = m_document->timeline(); if (&mainDocumentTimeline != this) { if (auto mainDocumentTimelineCurrentTime = mainDocumentTimeline.currentTime()) return *mainDocumentTimelineCurrentTime - m_originTime; return WTF::nullopt; }
Antoine Quint
Comment 4
2020-05-07 12:26:16 PDT
Created
attachment 398775
[details]
Patch
Dean Jackson
Comment 5
2020-05-07 13:12:43 PDT
Comment on
attachment 398775
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=398775&action=review
> Source/WebCore/ChangeLog:17 > + It would sometime happen that animA in one frame and animB in another, when they should always finished in sync. Thus animA.finished would > + resolve and animB.cancel() would be called, rejecting animB.finished. This happened because animB was attached to a DocumentTimeline created > + by script which isn't the main DocumenTimeline accessed via document.timeline. Some curious code would handle syncing of the various timelines > + such that they would use a shared timebase. This was in DocumentTimeline::currentTime():
Sometimes, animA and animB would finish in different frames even though they were designed to finish at the same time. If this happened, animA.finished would resolve and trigger animB.cancel, which then rejected animB.finished.
> Source/WebCore/ChangeLog:28 > + We now move the currentTime caching at the DocumentTimelinesController level which ensures all DocumentTimeline objects attached to a given > + Document use the exact same currentTime(). This prompted some overdue refactoring where also all the related animation suspension code is moved > + from DocumentTimeline up to DocumentTimelinesController.
Again, I don't understand how you manage to have such a large value for your line wrapping mark :) View -> Edit -> Wrap Column
Antoine Quint
Comment 6
2020-05-07 14:44:23 PDT
Committed
r261336
: <
https://trac.webkit.org/changeset/261336
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug