Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 794f0ec1309b56e62c53019b8906a24942cd8c50
https://github.com/WebKit/WebKit/commit/794f0ec1309b56e62c53019b8906a24942cd8c50
Author: Jean Haberer <[email protected]>
Date: 2026-04-14 (Tue, 14 Apr 2026)
Changed paths:
M Source/WebCore/dom/DocumentImmersive.cpp
M Source/WebCore/dom/DocumentImmersive.h
M Source/WebKit/Shared/API/Cocoa/WebKit.h
M Source/WebKit/Shared/API/Cocoa/WebKitPrivate.h
M Source/WebKit/SourcesCocoa.txt
A Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironment.h
A Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironment.mm
A Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironmentDelegate.h
A Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironmentInternal.h
A Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironmentPrivate.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebView.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration+Extras.swift
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecord.mm
R Source/WebKit/UIProcess/API/Cocoa/_WKImmersiveEnvironmentDelegate.h
M Source/WebKit/UIProcess/API/Swift/WebPage+Configuration.swift
M Source/WebKit/UIProcess/API/Swift/WebPage+FrameInfo.swift
A Source/WebKit/UIProcess/API/Swift/WebPage+ImmersiveEnvironment.swift
M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h
M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm
M Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h
M Source/WebKit/UIProcess/PageClient.h
M Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalConnection.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/ios/WKVisibilityPropagationView.mm
M Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm
M Source/WebKit/UIProcess/mac/WebViewImpl.h
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
M Source/WebKit/_WebKit_SwiftUI/API/View+WebViewModifiers.swift
A Source/WebKit/_WebKit_SwiftUI/API/WebViewImmersiveEnvironmentView.swift
M
Source/WebKit/_WebKit_SwiftUI/Implementation/EnvironmentValues+Extras.swift
M Source/WebKit/_WebKit_SwiftUI/Implementation/ViewModifierContexts.swift
M Source/WebKit/_WebKit_SwiftUI/Implementation/WebViewRepresentable.swift
M Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm
M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm
M Tools/WebKitTestRunner/ios/TestControllerIOS.mm
Log Message:
-----------
Move Client Website Environment SPI to API
https://bugs.webkit.org/show_bug.cgi?id=311751
rdar://164244457
Reviewed by Etienne Segonzac and Abrar Rahman Protyasha.
Promote immersive environment SPI to public API
* Source/WebCore/dom/DocumentImmersive.cpp:
* Source/WebCore/dom/DocumentImmersive.h:
Add CompletionHandler parameter so callers can await dismissal.
* Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironment.h: Added.
* Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironment.mm: Added.
* Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironmentInternal.h: Added.
* Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironmentPrivate.h: Added.
New public class wrapping a website-provided immersive environment.
* Source/WebKit/UIProcess/API/Cocoa/WKImmersiveEnvironmentDelegate.h: Added.
New public delegate protocol for authorization, presentation, and dismissal.
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
Add public immersive environment delegate and dismiss API.
Adopt new delegate protocol and WKImmersiveEnvironment object.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
Rename from underscore-prefixed SPI selectors.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration+Extras.swift:
Forward allowsImmersiveEnvironments from Swift Configuration wrapper.
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
* Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
*Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:
* Source/WebKit/UIProcess/ios/WKVisibilityPropagationView.mm:
Unified source build fix.
* Source/WebKit/UIProcess/API/Swift/WebPage+FrameInfo.swift:
Make init @_spi(CrossImportOverlay) public for _WebKit_SwiftUI access.
* Source/WebKit/UIProcess/API/Swift/WebPage+Configuration.swift:
* Source/WebKit/UIProcess/API/Swift/WebPage+ImmersiveEnvironment.swift: Added.
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:
* Source/WebKit/UIProcess/PageClient.h:
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
Switch from URL tracking to FrameInfo tracking with security origin
comparison. Make exitImmersive async with sendWithAsyncReply.
* Source/WebKit/_WebKit_SwiftUI/API/View+WebViewModifiers.swift:
New SwiftUI modifier for immersive environment lifecycle management.
* Source/WebKit/_WebKit_SwiftUI/API/WebViewImmersiveEnvironmentView.swift:
Added.
* Source/WebKit/_WebKit_SwiftUI/Implementation/EnvironmentValues+Extras.swift:
* Source/WebKit/_WebKit_SwiftUI/Implementation/ViewModifierContexts.swift:
* Source/WebKit/_WebKit_SwiftUI/Implementation/WebViewRepresentable.swift:
Add ImmersiveEnvironmentDelegateAdapter bridging SwiftUI callbacks to
WKImmersiveEnvironmentDelegate. Wire up in coordinator update.
* Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:
* Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
* Tools/WebKitTestRunner/ios/TestControllerIOS.mm:
Adopt WKImmersiveEnvironmentDelegate public protocol and updated selectors.
Canonical link: https://commits.webkit.org/311194@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications