Changeset 259283 in webkit


Ignore:
Timestamp:
Mar 31, 2020 2:10:58 AM (4 years ago)
Author:
Carlos Garcia Campos
Message:

REGRESSION(r258829): [CoordinatedGraphics] Web view not updated after cross site navigation with PSON enabled
https://bugs.webkit.org/show_bug.cgi?id=209741

Reviewed by Žan Doberšek.

Since r258829, the drawing area proxy of a provisional page ignores all messages until the load is
committed. This is causing 2 problems for coordinated graphics drawing area. When not in accelerated compositing
mode, Update message is sent before the commit is loaded, and the web process keeps waiting for the DidUpdate
response message forever. When accelerated compositing mode is forced, the EnterAcceleratedCompositing message
is also sent before the load is committed and ignored, so the UI process doesn't know it's in accelerated mode.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::scheduleRenderingUpdate): Return early if layer tree is frozen. This
ensures that Update messages are not sent to the UI process while layer tree is frozen.
(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): Disable layer flush on the newly
created LayerTreeHost if layer tree is frozen. This ensures that EnterAcceleratedCompositing message is sent
after the first layer flush once the layer tree is no longer frozen.

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r259280 r259283  
     12020-03-31  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        REGRESSION(r258829): [CoordinatedGraphics] Web view not updated after cross site navigation with PSON enabled
     4        https://bugs.webkit.org/show_bug.cgi?id=209741
     5
     6        Reviewed by Žan Doberšek.
     7
     8        Since r258829, the drawing area proxy of a provisional page ignores all messages until the load is
     9        committed. This is causing 2 problems for coordinated graphics drawing area. When not in accelerated compositing
     10        mode, Update message is sent before the commit is loaded, and the web process keeps waiting for the DidUpdate
     11        response message forever. When accelerated compositing mode is forced, the EnterAcceleratedCompositing message
     12        is also sent before the load is committed and ignored, so the UI process doesn't know it's in accelerated mode.
     13
     14        * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
     15        (WebKit::DrawingAreaCoordinatedGraphics::scheduleRenderingUpdate): Return early if layer tree is frozen. This
     16        ensures that Update messages are not sent to the UI process while layer tree is frozen.
     17        (WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): Disable layer flush on the newly
     18        created LayerTreeHost if layer tree is frozen. This ensures that EnterAcceleratedCompositing message is sent
     19        after the first layer flush once the layer tree is no longer frozen.
     20
    1212020-03-30  David Kilzer  <ddkilzer@apple.com>
    222
  • trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp

    r256834 r259283  
    343343void DrawingAreaCoordinatedGraphics::scheduleRenderingUpdate()
    344344{
     345    if (m_layerTreeStateIsFrozen)
     346        return;
     347
    345348    if (m_layerTreeHost)
    346349        m_layerTreeHost->scheduleLayerFlush();
     
    595598        return;
    596599#endif
     600        if (m_layerTreeStateIsFrozen)
     601            m_layerTreeHost->setLayerFlushSchedulingEnabled(false);
    597602        if (m_isPaintingSuspended)
    598603            m_layerTreeHost->pauseRendering();
Note: See TracChangeset for help on using the changeset viewer.