Changeset 260614 in webkit
- Timestamp:
- Apr 23, 2020 6:08:37 PM (4 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r260611 r260614 1 2020-04-23 Simon Fraser <simon.fraser@apple.com> 2 3 Bounce displayWasRefreshed() via EventDispatcher 4 https://bugs.webkit.org/show_bug.cgi?id=208778 5 6 Reviewed by Antti Koivisto. 7 8 Allow the WebContent process to be notified of display refresh off the main thread, so other 9 threads like the scrolling thread can respond without being blocked. Achieve this 10 by having EventDispatcher receive the IPC message, then bounce it to the main thread. 11 12 * UIProcess/mac/DisplayLink.cpp: 13 (WebKit::DisplayLink::displayLinkCallback): 14 * WebProcess/WebPage/EventDispatcher.cpp: 15 (WebKit::EventDispatcher::displayWasRefreshed): 16 * WebProcess/WebPage/EventDispatcher.h: 17 * WebProcess/WebPage/EventDispatcher.messages.in: 18 * WebProcess/WebProcess.h: 19 * WebProcess/cocoa/WebProcessCocoa.mm: 20 (WebKit::WebProcess::displayWasRefreshed): 21 1 22 2020-04-23 David Kilzer <ddkilzer@apple.com> 2 23 -
trunk/Source/WebKit/UIProcess/mac/DisplayLink.cpp
r241232 r260614 29 29 #if ENABLE(WEBPROCESS_WINDOWSERVER_BLOCKING) 30 30 31 #include " WebProcessMessages.h"31 #include "EventDispatcherMessages.h" 32 32 #include <wtf/ProcessPrivilege.h> 33 33 … … 125 125 LockHolder locker(displayLink->m_observersLock); 126 126 for (auto& connection : displayLink->m_observers.keys()) 127 connection->send(Messages:: WebProcess::DisplayWasRefreshed(displayLink->m_displayID), 0);127 connection->send(Messages::EventDispatcher::DisplayWasRefreshed(displayLink->m_displayID), 0); 128 128 return kCVReturnSuccess; 129 129 } … … 131 131 } // namespace WebKit 132 132 133 #endif 133 #endif // ENABLE(WEBPROCESS_WINDOWSERVER_BLOCKING) -
trunk/Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp
r260403 r260614 43 43 #endif 44 44 45 #if ENABLE(WEBPROCESS_WINDOWSERVER_BLOCKING) 46 #include <WebCore/DisplayRefreshMonitorManager.h> 47 #endif 48 45 49 #if ENABLE(SCROLLING_THREAD) 46 50 #include <WebCore/ScrollingThread.h> … … 259 263 #endif 260 264 265 #if ENABLE(WEBPROCESS_WINDOWSERVER_BLOCKING) 266 void EventDispatcher::displayWasRefreshed(PlatformDisplayID displayID) 267 { 268 RunLoop::main().dispatch([displayID]() { 269 DisplayRefreshMonitorManager::sharedManager().displayWasUpdated(displayID); 270 }); 271 } 272 #endif 273 261 274 } // namespace WebKit -
trunk/Source/WebKit/WebProcess/WebPage/EventDispatcher.h
r259805 r260614 44 44 namespace WebCore { 45 45 class ThreadedScrollingTree; 46 using PlatformDisplayID = uint32_t; 46 47 } 47 48 … … 98 99 #endif 99 100 101 #if ENABLE(WEBPROCESS_WINDOWSERVER_BLOCKING) 102 void displayWasRefreshed(WebCore::PlatformDisplayID); 103 #endif 104 100 105 Ref<WorkQueue> m_queue; 101 106 -
trunk/Source/WebKit/WebProcess/WebPage/EventDispatcher.messages.in
r253267 r260614 29 29 GestureEvent(WebCore::PageIdentifier pageID, WebKit::WebGestureEvent event) 30 30 #endif 31 #if ENABLE(WEBPROCESS_WINDOWSERVER_BLOCKING) 32 DisplayWasRefreshed(uint32_t displayID) 33 #endif 31 34 } -
trunk/Source/WebKit/WebProcess/WebProcess.h
r260065 r260614 476 476 void scrollerStylePreferenceChanged(bool useOverlayScrollbars); 477 477 void displayConfigurationChanged(CGDirectDisplayID, CGDisplayChangeSummaryFlags); 478 void displayWasRefreshed(CGDirectDisplayID);479 478 #endif 480 479 -
trunk/Source/WebKit/WebProcess/WebProcess.messages.in
r260065 r260614 120 120 ScrollerStylePreferenceChanged(bool useOvelayScrollbars) 121 121 DisplayConfigurationChanged(CGDirectDisplayID displayID, CGDisplayChangeSummaryFlags flags) 122 DisplayWasRefreshed(uint32_t displayID)123 122 #endif 124 123 -
trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
r260485 r260614 876 876 GraphicsContextGLOpenGLManager::displayWasReconfigured(displayID, flags, nullptr); 877 877 } 878 879 void WebProcess::displayWasRefreshed(CGDirectDisplayID displayID)880 {881 DisplayRefreshMonitorManager::sharedManager().displayWasUpdated(displayID);882 }883 878 #endif 884 879
Note: See TracChangeset
for help on using the changeset viewer.