Bug 321255

Summary: Fullscreen state is not cleared across processes when a site-isolated frame in the fullscreen chain unloads
Product: WebKit Reporter: Marcos Caceres <marcosc>
Component: WebKit Process ModelAssignee: Marcos Caceres <marcosc>
Status: NEW    
Severity: Normal CC: fred.wang, nham, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 276855, 287102    

Marcos Caceres
Reported 2026-08-06 23:51:12 PDT
Under site isolation, a frame in the fullscreen chain can unload without the embedding document's fullscreen state being cleared. The embedder is left with a viewport-sized iframe as document.fullscreenElement, taking every hit test and with no exit fullscreenchange, so the page underneath cannot be reached while its scripts keep running. An attacker-controlled frame that nests another frame can reach it. Entering fullscreen flags every ancestor frame's owner element, and under site isolation those ancestors live in other web processes, flagged there over IPC. There is no exit-side counterpart to that enter-side IPC, and two paths leave it uncleared: 1. A cross-site self-navigation by the fullscreen subframe resolves to LoadWillContinueInAnotherProcess, so in the process owning the outgoing document the frame loader returns before dispatchDidStartProvisionalLoad and no exit request is made. 2. When a frame in the chain that does not own the fullscreen element navigates, that process never had m_element set, so willExitFullScreen early-returns, BeganExitFullScreen is never sent, and exitFullScreenInOtherProcesses never runs. Not reachable in a shipping configuration: SiteIsolationEnabled is status: unstable, default false. NOT REPRODUCED. The above is from reading the source. No site-isolated repro was built and no test was run against it. Existing coverage under LayoutTests/http/tests/site-isolation/ never navigates a frame in the fullscreen chain.
Attachments
Radar WebKit Bug Importer
Comment 1 2026-08-06 23:51:18 PDT
Marcos Caceres
Comment 2 2026-08-09 21:28:59 PDT
Marcos Caceres
Comment 3 2026-08-11 04:11:05 PDT
Note You need to log in before you can comment on or make changes to this bug.