Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 29c530c9e3571a2774cdbcc378f64c22cb570150
      
https://github.com/WebKit/WebKit/commit/29c530c9e3571a2774cdbcc378f64c22cb570150
  Author: Matt Woodrow <[email protected]>
  Date:   2026-10-06 (Tue, 06 Oct 2026)

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

  Log Message:
  -----------
  [Site-isolation] Implement proceedWithNavigationAfterViewTransitionCapture 
part of navigation.
https://bugs.webkit.org/show_bug.cgi?id=326285
<rdar://problem/189142190>

Reviewed by Tim Nguyen.

https://html.spec.whatwg.org/multipage/browsing-the-web.html#deactivate-a-document-for-a-cross-document-navigation

This adds an async step in deactivating the old document, where it waits the old
view transition object to asynchronously capture rendering, and gives the
ViewTransition object the proceedWithNavigationAfterViewTransitionCapture lambda
to resume deactivation once complete.

ViewTransition snapshots are currently synchronous, why isn't why this wasn't
implemented previously, but they will become async for site-isolation and this
becomes necessary.

This shouldn't change any behaviour, just passes control through
ViewTransitions, so no new tests yet.

* Source/WebCore/dom/Document.cpp:
(WebCore::Document::dispatchPageswapEvent):
* Source/WebCore/dom/Document.h:
* Source/WebCore/dom/ViewTransition.cpp:
(WebCore::ViewTransition::setupCrossDocumentViewTransition):
(WebCore::ViewTransition::skipViewTransition):
(WebCore::ViewTransition::setupViewTransition):
(WebCore::ViewTransition::stop):
(WebCore::ViewTransition::runOutboundPostCaptureSteps):
* Source/WebCore/dom/ViewTransition.h:
* Source/WebCore/loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::commitSubstituteDataIfNeeded): Split out of 
continueAfterContentPolicy().
(WebCore::DocumentLoader::cancelPolicyCheckIfNeeded):
* Source/WebCore/loader/DocumentLoader.h:
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::dispatchPageswapEvent): Split out of 
commitProvisionalLoad().
(WebCore::FrameLoader::waitForOutboundViewTransitionCapture):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
* Source/WebCore/loader/FrameLoader.h:

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



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

Reply via email to