Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 21142271a7e1423a5d85c2df22475858e5f9ae48
      
https://github.com/WebKit/WebKit/commit/21142271a7e1423a5d85c2df22475858e5f9ae48
  Author: Charlie Wolfe <[email protected]>
  Date:   2026-10-08 (Thu, 08 Oct 2026)

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

  Log Message:
  -----------
  Setup view transition should flush the update callback queue
https://bugs.webkit.org/show_bug.cgi?id=326835
rdar://189533643

Reviewed by Tim Nguyen.

This fixes the following test failures that only happen after PR 76072:
imported/w3c/web-platform-tests/css/css-view-transitions/start-view-transtion-skips-active.html
imported/w3c/web-platform-tests/css/css-view-transitions/start-skip-start.html

The spec's "setup view transition" flushes the document's update callback queue 
before capturing the
old state, so DOM changes from previously skipped transitions are applied 
first. WebKit never
implemented this queue. Skipped transitions queued a task to call their update 
callback, and
start-skip-start.html and start-view-transtion-skips-active.html only passed 
because the first
rendering update happened to run after that task.

Add the update callback queue to Document and implement "schedule the update 
callback" and "flush
the update callback queue". Flush the queue before capturing the old state, and 
stop if that flush
ran script that skipped the transition.

* Source/WebCore/dom/Document.h:
(WebCore::Document::viewTransitionUpdateCallbackQueue):
* Source/WebCore/dom/ViewTransition.cpp:
(WebCore::ViewTransition::skipViewTransition):
(WebCore::ViewTransition::scheduleUpdateCallback):
(WebCore::ViewTransition::flushUpdateCallbackQueue):
(WebCore::ViewTransition::setupViewTransition):
* Source/WebCore/dom/ViewTransition.h:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to