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