[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