Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ecf63ceef8cf9afc28b7bbbd1eb7ad0582929542 https://github.com/WebKit/WebKit/commit/ecf63ceef8cf9afc28b7bbbd1eb7ad0582929542 Author: Vitaly Dyachkov <vit...@igalia.com> Date: 2023-12-12 (Tue, 12 Dec 2023)
Changed paths: M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/mac/TestExpectations M Source/WebCore/dom/ViewTransition.cpp M Source/WebCore/dom/ViewTransition.h Log Message: ----------- [Debug] ASSERTION FAILED: m_phase == ViewTransitionPhase::Done || m_phase == ViewTransitionPhase::PendingCapture https://bugs.webkit.org/show_bug.cgi?id=265868 Reviewed by Tim Nguyen. During each invocation of `Page::updateRendering()`, the `Document` triggers the `setupViewTransition()` method of `m_activeViewTransition` when it's in the `ViewTransitionPhase::PendingCapture` phase. The `ViewTransition` first updates its state within the `callUpdateCallback()` method, which is executed asynchronously. This can lead to a situation where the active `ViewTransition` has been set up, but its state remains `ViewTransitionPhase::PendingCapture` when the `Document` checks it. In such cases, the `Document` may call `setupViewTransition()` more than once. To address this issue, this patch introduces a `ViewTransitionPhase::Capturing` state, indicating that the transition setup is complete, but the callback has not been called yet. Note that this phase is not part of the spec [1]. 1. https://drafts.csswg.org/css-view-transitions/#viewtransition-phase * Source/WebCore/dom/ViewTransition.cpp: (WebCore::ViewTransition::callUpdateCallback): (WebCore::ViewTransition::setupViewTransition): * Source/WebCore/dom/ViewTransition.h: Canonical link: https://commits.webkit.org/271959@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes