[webkit-changes] [WebKit/WebKit] 44051c: REGRESSION(262812 at main): No render updates after c...

Carlos Garcia Campos noreply at github.com
Thu Sep 7 08:39:51 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 44051cb8e33a274f5d16614b089c7a8bb908a8eb
      https://github.com/WebKit/WebKit/commit/44051cb8e33a274f5d16614b089c7a8bb908a8eb
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2023-09-07 (Thu, 07 Sep 2023)

  Changed paths:
    M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp
    M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h
    M Source/WebKit/WebProcess/WebPage/DrawingArea.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.h

  Log Message:
  -----------
  REGRESSION(262812 at main): No render updates after cross origin history navigation
https://bugs.webkit.org/show_bug.cgi?id=261273

Reviewed by Michael Catanzaro.

This regressed in 262812 at main because we moved the code to enter AC mode
when always compositing to the DrawingArea constructor to make sure the
UI process starts receiving IPC messages for the new drawing area as
soon as possible after a drawing area switch due to cross origin
navigation. The problem now is when going back after a cross origin
navigation because there's a display refresh monitor switch too, but to
create the proper display refresh monitor we need an already created
drawing area, since WebChromeClient::displayRefreshMonitorFactory()
returns the WebPage drawing area, not yet set during its constructor.
So, we need to enter AC mode right after the drawing area is created
instead of in the constructor to ensure the right display refresh
monitor is created. This doesn't fail in GTK3 because we create a
DisplayRefreshMonitorGtk, but that's not the right one either, since
it's expected to be used only for non-AC mode.

* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::DrawingAreaCoordinatedGraphics):
(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingModeIfNeeded):
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
* Source/WebKit/WebProcess/WebPage/DrawingArea.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
(WebKit::WebPage::reinitializeWebPage):
* Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.h:

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




More information about the webkit-changes mailing list