[webkit-changes] [WebKit/WebKit] 760343: Cherry-pick 260195 at main (1f5e2e27dc7c). https://bu...

Carlos Garcia Campos noreply at github.com
Mon Feb 13 15:32:32 PST 2023


  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 <cgarcia at igalia.com>
  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 at 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




More information about the webkit-changes mailing list