New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate setTimeout and setInterval with HTML5 event loop #16550
Integrate setTimeout and setInterval with HTML5 event loop #16550
Conversation
EWS run on previous version of this PR (hash a285599) |
a285599
to
9cd4de7
Compare
EWS run on previous version of this PR (hash 9cd4de7) |
9cd4de7
to
2f33bb5
Compare
EWS run on previous version of this PR (hash 2f33bb5) |
2f33bb5
to
264f495
Compare
EWS run on previous version of this PR (hash 264f495) |
264f495
to
9727782
Compare
EWS run on previous version of this PR (hash 9727782) |
9727782
to
dec5a4a
Compare
EWS run on previous version of this PR (hash dec5a4a) |
dec5a4a
to
45987aa
Compare
EWS run on previous version of this PR (hash 45987aa) |
45987aa
to
88109a8
Compare
EWS run on previous version of this PR (hash 88109a8) |
88109a8
to
1839804
Compare
EWS run on current version of this PR (hash 1839804) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
https://bugs.webkit.org/show_bug.cgi?id=203137 Reviewed by Chris Dumez. This PR integrates DOM timers with HTML5 event loop. Specifically, DOMTimer now uses EventLoopTaskGroup::scheduleTask and EventLoopTaskGroup::scheduleRepeatingTask instead of inheriting from SuspendableTimer. This PR also deletes SuspendableTimer class now that we've migrated all uses of it to EventLoop's equivalents. * Source/WebCore/Headers.cmake: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/dom/EventLoop.cpp: (WebCore::EventLoop::scheduleTask): Fixed a bug that the newly created timer won't be suspended when the task group had been suspended. (WebCore::EventLoop::scheduleRepeatingTask): Ditto. (WebCore::EventLoopTaskGroup::setTimerAlignment): (WebCore::EventLoopTaskGroup::setTimerHasReachedMaxNestingLevel): (WebCore::EventLoopTaskGroup::adjustTimerNextTimeout): (WebCore::EventLoopTaskGroup::adjustTimerRepeatInterval): (WebCore::EventLoopTaskGroup::didChangeTimerAlignmentInterval): * Source/WebCore/dom/EventLoop.h: * Source/WebCore/dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval): * Source/WebCore/dom/ScriptExecutionContext.h: * Source/WebCore/dom/TaskSource.h: * Source/WebCore/page/DOMTimer.cpp: (WebCore::DOMTimer::DOMTimer): (WebCore::DOMTimer::removeById): (WebCore::DOMTimer::fired): (WebCore::DOMTimer::stop): (WebCore::DOMTimer::updateTimerIntervalIfNecessary): (WebCore::DOMTimer::didStop): Deleted. * Source/WebCore/page/DOMTimer.h: * Source/WebCore/page/SuspendableTimer.cpp: Removed. * Source/WebCore/page/SuspendableTimer.h: Removed. * Source/WebCore/testing/Internals.cpp: (WebCore::Internals::isTimerThrottled): Canonical link: https://commits.webkit.org/266828@main
1839804
to
43d0b6d
Compare
Committed 266828@main (43d0b6d): https://commits.webkit.org/266828@main Reviewed commits have been landed. Closing PR #16550 and removing active labels. |
43d0b6d
1839804