Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8165e091f4df59390169d58b88c9f06ed93591ae https://github.com/WebKit/WebKit/commit/8165e091f4df59390169d58b88c9f06ed93591ae Author: Simon Fraser <simon.fra...@apple.com> Date: 2023-03-09 (Thu, 09 Mar 2023)
Changed paths: A LayoutTests/fast/scrolling/mac/event-region-prevent-default-with-sublayer-expected.txt A LayoutTests/fast/scrolling/mac/event-region-prevent-default-with-sublayer.html M Source/WebCore/dom/Document.cpp M Source/WebCore/rendering/RenderBlock.cpp M Source/WebCore/style/StyleAdjuster.cpp M Source/WebCore/style/StyleAdjuster.h M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm Log Message: ----------- [UI-side compositing] Scrolling over the video causes jumpiness after opening the profile menu on YouTube.com https://bugs.webkit.org/show_bug.cgi?id=253522 rdar://104072756 Reviewed by Antti Koivisto. The addition of an active wheel event handler on the window or document would fail to correctly update the eventListenerRegionTypes for all elements in the document. This resulted in off-main-thread hit-testing for scrolling incorrectly assuming that it could do async scrolls, leading to scroll stutter in some scenarios. Invalidation after event listener changes on most DOM nodes behaved correctly by virtue of inherited property handling. But event listeners on the window or document are represented by the root style (set on RenderView) and this only gets updated when we do a full style rebuild. So fix Document::invalidateEventListenerRegions() to trigger a full style rebuild if updating the root style changes the event listener regions types. * LayoutTests/fast/scrolling/mac/event-region-prevent-default-with-sublayer-expected.txt: Added. * LayoutTests/fast/scrolling/mac/event-region-prevent-default-with-sublayer.html: Added. * Source/WebCore/dom/Document.cpp: (WebCore::Document::invalidateEventListenerRegions): * Source/WebCore/rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintObject): Improve logging. * Source/WebCore/style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjustEventListenerRegionTypesForRootStyle): * Source/WebCore/style/StyleAdjuster.h: * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: (WebKit::dumpChangedLayers): Log event regions. Canonical link: https://commits.webkit.org/261439@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes