RESOLVED FIXED 186507
[Web Animations] Make WPT test at timing-model/timelines/document-timelines.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=186507
Summary [Web Animations] Make WPT test at timing-model/timelines/document-timelines.h...
Antoine Quint
Reported 2018-06-11 04:41:20 PDT
The WPT test at imported/w3c/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html is failing reliably, flaky or timing out.
Attachments
Patch (14.03 KB, patch)
2018-06-29 05:28 PDT, Antoine Quint
dino: review+
ews-watchlist: commit-queue-
Archive of layout-test-results from ews204 for win-future (12.90 MB, application/zip)
2018-06-29 09:27 PDT, EWS Watchlist
no flags
Radar WebKit Bug Importer
Comment 1 2018-06-11 04:41:32 PDT
Antoine Quint
Comment 2 2018-06-29 05:28:30 PDT
EWS Watchlist
Comment 3 2018-06-29 09:27:31 PDT
Comment on attachment 343908 [details] Patch Attachment 343908 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/8383887 New failing tests: http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html
EWS Watchlist
Comment 4 2018-06-29 09:27:43 PDT
Created attachment 343919 [details] Archive of layout-test-results from ews204 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews204 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Dean Jackson
Comment 5 2018-06-29 11:49:42 PDT
Comment on attachment 343908 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=343908&action=review > Source/WebCore/animation/DocumentTimeline.cpp:159 > + // animations, so we schedule the invalidation task and registere a whenIdle callback on the VM, which will typo register > Source/WebCore/animation/DocumentTimeline.cpp:164 > + RefPtr<DocumentTimeline> self; > + m_waitingOnVMIdle = true; > + m_document->vm().whenIdle([self, this]() { You never set or use self. > Source/WebCore/animation/DocumentTimeline.cpp:215 > + // We want to make sure we only clear the cached currenr time if we're not currently running typo current > Source/WebCore/animation/DocumentTimeline.cpp:219 > + if (!m_waitingOnVMIdle && !m_invalidationTaskQueue.hasPendingTasks()) Are you sure you'll always have an empty invalidationTaskQueue when the whenIdle callback happens? Or I guess it could fire, but there still be a task to run, which will itself call maybeClearCachedCurrentTime.
Antoine Quint
Comment 6 2018-06-30 06:43:34 PDT
Antoine Quint
Comment 7 2018-06-30 06:45:03 PDT
(In reply to Dean Jackson from comment #5) > Comment on attachment 343908 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=343908&action=review > > > Source/WebCore/animation/DocumentTimeline.cpp:219 > > + if (!m_waitingOnVMIdle && !m_invalidationTaskQueue.hasPendingTasks()) > > Are you sure you'll always have an empty invalidationTaskQueue when the > whenIdle callback happens? Or I guess it could fire, but there still be a > task to run, which will itself call maybeClearCachedCurrentTime. That's right, both conditions need to be true, so we call maybeClearCachedCurrentTime() in both the whenIdle callback and performInvalidationTask().
Note You need to log in before you can comment on or make changes to this bug.