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

Reply via email to