Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 00b3f2deceaf36504b07ac3013698277d57dbd63
      
https://github.com/WebKit/WebKit/commit/00b3f2deceaf36504b07ac3013698277d57dbd63
  Author: Matt Woodrow <[email protected]>
  Date:   2025-04-18 (Fri, 18 Apr 2025)

  Changed paths:
    M Source/WebCore/dom/ViewTransition.cpp
    M Source/WebCore/dom/ViewTransition.h

  Log Message:
  -----------
  Crash in WebCore::forEachRendererInPaintOrder; 
WebCore::ViewTransition::captureNewState.
https://bugs.webkit.org/show_bug.cgi?id=286109
<rdar://142779342>

Reviewed by Tim Nguyen.

captureNewState was writing new styles while iterating the render layer tree,
and also implicitly flushing styles by reading computed values. In rare cases
the style flush could invalidate the render layer positioned list.

This change splits this into two separate passes. The first pass reads all the
computed styles from the captured elements, and then second pass generates all
the stylesheet changes. Finally we flush style, and configure the VT psuedo
renderers as needed.

* Source/WebCore/dom/ViewTransition.cpp:
(WebCore::ViewTransition::updatePropertiesForGroupPseudo):
(WebCore::ViewTransition::captureNewState):
(WebCore::ViewTransition::setupTransitionPseudoElements):
(WebCore::ViewTransition::activateViewTransition):
(WebCore::ViewTransition::handleTransitionFrame):
(WebCore::ViewTransition::updateNewState):
(WebCore::ViewTransition::updatePseudoElementStyles):
(WebCore::ViewTransition::updatePseudoElementRenderers):
(WebCore::ViewTransition::updatePropertiesForRenderer): Deleted.
(WebCore::ViewTransition::updatePseudoElementSizes): Deleted.
* Source/WebCore/dom/ViewTransition.h:

Originally-landed-as: 283286.634@safari-7620-branch (9ea70df86dfe). 
rdar://148060776
Canonical link: https://commits.webkit.org/293851@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