Branch: refs/heads/webkitglib/2.38
  Home:   https://github.com/WebKit/WebKit
  Commit: 760343b562487366e82fa4b49ecb88c89c6f44c8
      
https://github.com/WebKit/WebKit/commit/760343b562487366e82fa4b49ecb88c89c6f44c8
  Author: Carlos Garcia Campos <[email protected]>
  Date:   2023-02-14 (Tue, 14 Feb 2023)

  Changed paths:
    M 
Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp
    M 
Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h
    M 
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp
    M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp

  Log Message:
  -----------
  Cherry-pick 260195@main (1f5e2e27dc7c). 
https://bugs.webkit.org/show_bug.cgi?id=252044

    [GTK][WPE] Poor scrolling performance after a history navigation with PSON 
enabled
    https://bugs.webkit.org/show_bug.cgi?id=252044

    Reviewed by Žan Doberšek.

    With PSON, when there's a history navigation the WebPage replaces the
    drawing area with a new one. In case of coordinated graphics, the new
    drawing area ends up using the wrong display refresh monitor because
    DrawingArea::createDisplayRefreshMonitor() is not called. We call
    WebPage::windowScreenDidChange() after creating the LayerTreeHost to
    ensure DrawingArea::createDisplayRefreshMonitor() is called, but in this
    case the page is the same, and the displayID hasn't really changed. So,
    we need to ensure that the displayID we create is not based on WebPage
    unique identifier, but on DrawingArea's because the
    ThreadedDisplayRefreshMonitor needs to be created for every DrawingArea,
    not WebPage.

    * 
Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
    (WebKit::ThreadedCompositor::displayRefreshMonitor const): Return a 
reference, caller can decide whether to create a Ref or not.
    (WebKit::ThreadedCompositor::displayRefreshMonitor): Deleted.
    * 
Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
    * 
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
    (WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): 
Update comment.
    * Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:
    (WebKit::LayerTreeHost::LayerTreeHost): Use DrawingArea unique id to 
generate the display ID.
    (WebKit::LayerTreeHost::createDisplayRefreshMonitor): Assert if the given 
display ID doesn't match the LayerTreeHost one.

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


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

Reply via email to