Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: abc473b91584189cf995d69d0a34194fa3f7720b
      
https://github.com/WebKit/WebKit/commit/abc473b91584189cf995d69d0a34194fa3f7720b
  Author: Simon Fraser <[email protected]>
  Date:   2023-04-26 (Wed, 26 Apr 2023)

  Changed paths:
    M 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp

  Log Message:
  -----------
  Crash in MomentumEventDispatcher::handleWheelEvent()
https://bugs.webkit.org/show_bug.cgi?id=255885
rdar://108204029

Reviewed by Tim Horton.

A wheel event bouncing to the scrolling thread can race with 
RemoteLayerTreeEventDispatcher::invalidate()
and get handled after m_momentumEventDispatcher has been nulled out.

The scrolling thread entry points all already null-check the scrolling tree 
(whose access is thread-safe),
so we can null out m_scrollingTree in 
RemoteLayerTreeEventDispatcher::invalidate() as a reliable signal
that invalidation has happened.

Also standardize the "strongThis" vs "protectedThis" naming in this file.

* 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp:
(WebKit::RemoteLayerTreeEventDispatcher::invalidate):
(WebKit::RemoteLayerTreeEventDispatcher::scrollingThreadHandleWheelEvent):
(WebKit::RemoteLayerTreeEventDispatcher::wheelEventHandlingCompleted):
(WebKit::RemoteLayerTreeEventDispatcher::startOrStopDisplayLink):
(WebKit::RemoteLayerTreeEventDispatcher::waitForRenderingUpdateCompletionOrTimeout):
(WebKit::RemoteLayerTreeEventDispatcher::flushMomentumEventLoggingSoon):

Canonical link: https://commits.webkit.org/263426@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to