Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b7bc61d59e5e7ef50ac23d72fe09a9e49186c6fb
https://github.com/WebKit/WebKit/commit/b7bc61d59e5e7ef50ac23d72fe09a9e49186c6fb
Author: Ryosuke Niwa <[email protected]>
Date: 2023-08-09 (Wed, 09 Aug 2023)
Changed paths:
M
LayoutTests/imported/w3c/web-platform-tests/requestidlecallback/basic-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/requestidlecallback/callback-timeout-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/requestidlecallback/callback-timeout-when-busy-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/requestidlecallback/deadline-after-expired-timer-expected.txt
M LayoutTests/platform/ios-wk2/TestExpectations
M LayoutTests/platform/mac-wk2/TestExpectations
A LayoutTests/requestidlecallback/requestidlecallback-deadline-expected.txt
A
LayoutTests/requestidlecallback/requestidlecallback-deadline-shortened-by-rendering-update-expected.txt
A
LayoutTests/requestidlecallback/requestidlecallback-deadline-shortened-by-rendering-update.html
A LayoutTests/requestidlecallback/requestidlecallback-deadline.html
M Source/WebCore/dom/IdleCallbackController.cpp
M Source/WebCore/dom/IdleCallbackController.h
M Source/WebCore/dom/IdleDeadline.cpp
M Source/WebCore/dom/IdleDeadline.h
M Source/WebCore/dom/WindowEventLoop.cpp
M Source/WebCore/dom/WindowEventLoop.h
M Source/WebCore/page/Page.cpp
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
Log Message:
-----------
Implement timeout for idle callbacks
https://bugs.webkit.org/show_bug.cgi?id=259866
Reviewed by Chris Dumez.
This PR adds the support for idle callbacks' timeout. It also moves the logic
of computing the idle deadline
to WindowEventLoop, which now keeps track of WeakHashMap of Page to its next
rendering update time.
*
LayoutTests/imported/w3c/web-platform-tests/requestidlecallback/basic-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/requestidlecallback/callback-timeout-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/requestidlecallback/callback-timeout-when-busy-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/requestidlecallback/deadline-after-expired-timer-expected.txt:
* LayoutTests/platform/ios-wk2/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* LayoutTests/requestidlecallback/requestidlecallback-deadline-expected.txt:
Added.
*
LayoutTests/requestidlecallback/requestidlecallback-deadline-shortened-by-rendering-update-expected.txt:
Added.
*
LayoutTests/requestidlecallback/requestidlecallback-deadline-shortened-by-rendering-update.html:
Added.
* LayoutTests/requestidlecallback/requestidlecallback-deadline.html: Added.
* Source/WebCore/dom/IdleCallbackController.cpp:
* Source/WebCore/dom/IdleCallbackController.cpp:
(WebCore::IdleCallbackController::queueIdleCallback): Schedule a timer for the
timeout.
(WebCore::IdleCallbackController::startIdlePeriod):
(WebCore::IdleCallbackController::queueTaskToInvokeIdleCallbacks):
(WebCore::IdleCallbackController::invokeIdleCallbacks):
(WebCore::IdleCallbackController::invokeIdleCallbackTimeout): Added.
* Source/WebCore/dom/IdleCallbackController.h:
* Source/WebCore/dom/IdleDeadline.cpp:
(WebCore::IdleDeadline::timeRemaining const):
(WebCore::IdleDeadline::didTimeout const): Moved to the header file.
* Source/WebCore/dom/IdleDeadline.h:
(WebCore::IdleDeadline::create): Now takes DidTimeout enum class.
(WebCore::IdleDeadline::IdleDeadline): Ditto.
(WebCore::IdleDeadline::didTimeout const): Moved. Now trivially checks
m_didTimeout.
* Source/WebCore/dom/WindowEventLoop.cpp:
(WebCore::WindowEventLoop::didScheduleRenderingUpdate): Moved from the header.
Now takes a Page adds to the map
of pages with pending rendering opportunities.
(WebCore::WindowEventLoop::didFinishRenderingUpdate): Ditto removes it from the
map.
(WebCore::WindowEventLoop::opportunisticallyRunIdleCallbacks):
(WebCore::WindowEventLoop::shouldEndIdlePeriod):
(WebCore::WindowEventLoop::computeIdleDeadline): Added.
* Source/WebCore/dom/WindowEventLoop.h:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::scheduleRenderingUpdateInternal):
(WebCore::Page::renderingUpdateCompleted):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::preferredRenderingUpdateInterval):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
Canonical link: https://commits.webkit.org/266745@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes