Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0d7a1ea90a00e80f609be99dee6e93c8251f9918
https://github.com/WebKit/WebKit/commit/0d7a1ea90a00e80f609be99dee6e93c8251f9918
Author: Jean Haberer <[email protected]>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M
LayoutTests/model-element/immersive/model-element-immersive-basic-expected.txt
M LayoutTests/model-element/immersive/model-element-immersive-basic.html
M
LayoutTests/model-element/immersive/model-element-immersive-hidden-inline-expected.txt
M
LayoutTests/model-element/immersive/model-element-immersive-hidden-inline.html
M Source/WebCore/dom/DocumentImmersive.cpp
M Source/WebCore/page/ChromeClient.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
M Source/WebKit/UIProcess/API/Cocoa/_WKImmersiveEnvironmentDelegate.h
M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h
M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm
M Source/WebKit/UIProcess/PageClient.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxy.messages.in
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm
Log Message:
-----------
Present the immersive model in the client app
https://bugs.webkit.org/show_bug.cgi?id=303541
rdar://165833224
Reviewed by Etienne Segonzac.
Add WK delegate methods to enable the client to display the remote model inside
their Immersive Space.
Plumb the context ID of the remote model up to the UI Process to create the
remote environment view.
*
LayoutTests/model-element/immersive/model-element-immersive-basic-expected.txt:
* LayoutTests/model-element/immersive/model-element-immersive-basic.html:
*
LayoutTests/model-element/immersive/model-element-immersive-hidden-inline-expected.txt:
*
LayoutTests/model-element/immersive/model-element-immersive-hidden-inline.html:
Updated test results.
* Source/WebCore/dom/DocumentImmersive.cpp:
(WebCore::DocumentImmersive::requestImmersive):
(WebCore::DocumentImmersive::exitImmersive):
Ensure the client has presented/dismissed the immersive environment before
completed the immersive enter/exit request.
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::allowImmersiveElement const):
(WebCore::ChromeClient::presentImmersiveElement const):
(WebCore::ChromeClient::dismissImmersiveElement const):
(WebCore::ChromeClient::canEnterImmersiveElement const): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _allowImmersiveElementFromURL:completion:]):
(-[WKWebView _presentImmersiveElement:completion:]):
(-[WKWebView _dismissImmersiveElement:]):
(-[WKWebView _canEnterImmersiveElementFromURL:completion:]): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKImmersiveEnvironmentDelegate.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::allowImmersiveElementFromURL const):
(WebKit::PageClientImplCocoa::presentImmersiveElement const):
(WebKit::PageClientImplCocoa::dismissImmersiveElement const):
(WebKit::PageClientImplCocoa::canEnterImmersiveElementFromURL): Deleted.
* Source/WebKit/UIProcess/PageClient.h:
(WebKit::PageClient::allowImmersiveElementFromURL const):
(WebKit::PageClient::presentImmersiveElement const):
(WebKit::PageClient::dismissImmersiveElement const):
(WebKit::PageClient::canEnterImmersiveElementFromURL): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::allowImmersiveElementFromURL const):
(WebKit::WebPageProxy::presentImmersiveElement const):
(WebKit::WebPageProxy::dismissImmersiveElement const):
(WebKit::WebPageProxy::canEnterImmersiveElementFromURL): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::allowImmersiveElement const):
(WebKit::WebChromeClient::presentImmersiveElement const):
(WebKit::WebChromeClient::dismissImmersiveElement const):
(WebKit::WebChromeClient::canEnterImmersiveElement const): Deleted.
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::allowImmersiveElement):
(WebKit::WebPage::presentImmersiveElement):
(WebKit::WebPage::dismissImmersiveElement):
(WebKit::WebPage::canEnterImmersiveElement): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView webView:allowImmersiveEnvironmentFromURL:completion:]):
(-[TestRunnerWKWebView webView:presentImmersiveEnvironment:completion:]):
(-[TestRunnerWKWebView webView:dismissImmersiveEnvironment:]):
(-[TestRunnerWKWebView
webView:canPresentImmersiveEnvironmentFromURL:completion:]): Deleted.
Plumb the present and dismiss signals up to the UI Process.
Canonical link: https://commits.webkit.org/303987@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications