[webkit-changes] [WebKit/WebKit] 3e62e3: REGRESSION (261543 at main): Assertions in layout tes...

Simon Fraser noreply at github.com
Tue Mar 14 10:13:59 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3e62e3f64baee72605fdf8e03c39a302af7bbfb7
      https://github.com/WebKit/WebKit/commit/3e62e3f64baee72605fdf8e03c39a302af7bbfb7
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

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

  Log Message:
  -----------
  REGRESSION (261543 at main): Assertions in layout tests with UI-side compositing enabled
https://bugs.webkit.org/show_bug.cgi?id=253849
rdar://106664560

Reviewed by Tim Horton.

There were code paths under `ScrollingTree::handleWheelEvent()` that called `RemoteScrollingTreeMac::scrollingNodeForPoint()`
without taking the m_layerHitTestMutex, so we have to hoist the usage of `RemoteLayerTreeHitTestLocker` up into the entry point
to scrolling thread wheel handling.

We have to avoid lock inversion with `m_treeLock`, so need to follow the same pattern as the UI thread, where `m_layerHitTestMutex`
is held before we take `m_treeLock`.

* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp:
(WebKit::RemoteLayerTreeEventDispatcher::determineWheelEventProcessing):
(WebKit::RemoteLayerTreeEventDispatcher::scrollingThreadHandleWheelEvent):

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




More information about the webkit-changes mailing list