Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3ee3021ece1b24bad6071de534887d294b62aed9
      
https://github.com/WebKit/WebKit/commit/3ee3021ece1b24bad6071de534887d294b62aed9
  Author: Matt Woodrow <[email protected]>
  Date:   2025-05-27 (Tue, 27 May 2025)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/platform/glib/TestExpectations
    M 
LayoutTests/platform/mac-wk1/fast/css/view-transitions-no-content-for-new-pseudo-expected.txt
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h
    M Source/WebCore/rendering/RenderLayerCompositor.cpp
    M 
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKitLegacy/mac/WebView/WebView.mm

  Log Message:
  -----------
  css/css-view-transitions/paint-holding-in-iframe.html fails due to iframe not 
being composited
https://bugs.webkit.org/show_bug.cgi?id=293468

Reviewed by Simon Fraser.

Paint holding (suppression) requires a compositing layer for it to be applied,
and frames don't necessarily have one.

Add a condition to requiresCompositingForViewTransition so that iframe
RenderViews become composited if we're initializing a view-transition and will
try to suppress rendering. Add invalidation for this state to
Document::setActiveViewTransition.

Also fixes a race where rendering suppression is supposed to be applied at the
end of the rendering update, but instead happens after any async drawing is
completed (didCompleteRenderingFrame). This can mean the update callback runs
before rendering suppression starts.

Unify WebPage::didUpdateRendering/didPaintLayers so that we just call the one
function regardless of which DrawingArea impl is being used. Forward this
through to Page as the mark of the last main-thread piece of updateRendering,
and use that to enable rendering suppression.

* LayoutTests/TestExpectations:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::setActiveViewTransition):
* Source/WebCore/page/Page.cpp:
(WebCore::Page::didCompleteRenderingFrame):
(WebCore::Page::didUpdateRendering):
* Source/WebCore/page/Page.h:
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForViewTransition const):
* 
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didUpdateRendering):
(WebKit::WebPage::didPaintLayers): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to