Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f6cdbc2a485f5a310d537186509fe9a996df390c
https://github.com/WebKit/WebKit/commit/f6cdbc2a485f5a310d537186509fe9a996df390c
Author: Zak Ridouh <[email protected]>
Date: 2026-07-16 (Thu, 16 Jul 2026)
Changed paths:
M LayoutTests/platform/ios-site-isolation/TestExpectations
M LayoutTests/platform/mac-site-isolation/TestExpectations
M Source/WebCore/dom/Document.cpp
Log Message:
-----------
[Site Isolation] Fix Document::isFullyActive ignoring RemoteFrame ancestors
https://bugs.webkit.org/show_bug.cgi?id=316121
rdar://178548327
Reviewed by Alex Christensen.
isFullyActive only walked LocalFrame ancestors and treated a RemoteFrame
parent as "no LocalFrame parent, therefore top, therefore fully active".
A same-origin descendant of a remote iframe was thus reported fully active
even after the iframe had been removed in the parent process.
Walk the entire ancestor chain in a single pass instead. The document is
fully active only if the chain reaches the page's main frame without a
break. A RemoteFrame ancestor's document lives in another process and
cannot be queried directly, but when its iframe is removed in the parent
process the cross-process teardown severs its parent link, leaving a
parentless RemoteFrame that is not the page's main frame; that is the
signal the walk uses to report the document as not fully active. Live
ancestors, including chains with multiple RemoteFrames (a -> b -> c
nesting across processes), still walk through to the main frame and remain
fully active.
Fixes audiocontext-not-fully-active.html under site isolation.
* LayoutTests/platform/ios-site-isolation/TestExpectations:
* LayoutTests/platform/mac-site-isolation/TestExpectations:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::isFullyActive const):
Canonical link: https://commits.webkit.org/317357@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications