[webkit-changes] [WebKit/WebKit] bd5501: [WebXR] Add state checking to WebXR IPC calls
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bd55010ecc7f05c22f0b94a503dd1350b18c8396 https://github.com/WebKit/WebKit/commit/bd55010ecc7f05c22f0b94a503dd1350b18c8396 Author: Ada Chan Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: M Source/WebCore/Modules/webxr/WebXRSystem.cpp M Source/WebKit/Shared/XR/XRDeviceProxy.cpp M Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp M Source/WebKit/UIProcess/XR/PlatformXRSystem.h M Source/WebKit/UIProcess/XR/PlatformXRSystem.messages.in M Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.cpp M Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.h Log Message: --- [WebXR] Add state checking to WebXR IPC calls https://bugs.webkit.org/show_bug.cgi?id=268404 rdar://121553978 Reviewed by Dan Glastonbury. Track internal state in PlatformXRSystem and check that we are in the expected state when the IPC call is made. Remove unnecessary parameters in PlatformXRSystem::initializeTrackingAndRendering() as that information can be cached in this class and there's no need to pass that info over again. * Source/WebCore/Modules/webxr/WebXRSystem.cpp: (WebCore::WebXRSystem::resolveFeaturePermissions const): We should not call into platform code for requesting permissions for simulated test devices. * Source/WebKit/Shared/XR/XRDeviceProxy.cpp: (WebKit::XRDeviceProxy::initializeTrackingAndRendering): * Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp: (WebKit::PlatformXRSystem::invalidate): (WebKit::PlatformXRSystem::ensureImmersiveSessionActivity): (WebKit::checkFeaturesConsent): Helper function to check whether all the features in the first argument are included in the second list of granted features. (WebKit::PlatformXRSystem::requestPermissionOnSessionFeatures): For immersive modes, check that we are in the idle state before requesting permissions via the PlatformXRCoordinator. When we get the granted permissions back, check whether all the required features have been granted permission. Update the immersive session state accordingly based on whether the session can start. (WebKit::PlatformXRSystem::initializeTrackingAndRendering): Remove the parameters and use the cached immersive session mode and granted features instead. (WebKit::PlatformXRSystem::shutDownTrackingAndRendering): (WebKit::PlatformXRSystem::requestFrame): (WebKit::PlatformXRSystem::submitFrame): (WebKit::PlatformXRSystem::sessionDidEnd): (WebKit::PlatformXRSystem::setImmersiveSessionState): (WebKit::PlatformXRSystem::invalidateImmersiveSessionState): * Source/WebKit/UIProcess/XR/PlatformXRSystem.h: * Source/WebKit/UIProcess/XR/PlatformXRSystem.messages.in: * Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.cpp: (WebKit::PlatformXRSystemProxy::initializeTrackingAndRendering): * Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.h: Canonical link: https://commits.webkit.org/273875@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 76e52d: [WebXR] Allow audio and media sessions to continue...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 76e52d168312e91a83bd2f9db3535f6921b3cd87 https://github.com/WebKit/WebKit/commit/76e52d168312e91a83bd2f9db3535f6921b3cd87 Author: Ada Chan Date: 2024-02-15 (Thu, 15 Feb 2024) Changed paths: M Source/WebCore/Modules/webaudio/AudioContext.cpp M Source/WebCore/Modules/webxr/WebXRSystem.cpp M Source/WebCore/Modules/webxr/WebXRSystem.h M Source/WebCore/html/HTMLMediaElement.cpp M Source/WebCore/page/Page.cpp M Source/WebCore/page/Page.h M Source/WebKit/WebProcess/WebPage/WebPage.cpp Log Message: --- [WebXR] Allow audio and media sessions to continue uninterrupted when starting immersive WebXR sessions https://bugs.webkit.org/show_bug.cgi?id=269332 rdar://102391109 Reviewed by Eric Carlson. The original Safari window gets backgrounded when we start an immersive WebXR session. We need to allow audio/media to continue playback when we get a backgrounding notification for this scenario, similar to how we handle this for picture-in-picture. * Source/WebCore/Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::shouldOverrideBackgroundPlaybackRestriction const): Return true if the page has an active WebXR immersive session. * Source/WebCore/Modules/webxr/WebXRSystem.cpp: (WebCore::WebXRSystem::hasActiveImmersiveSession const): * Source/WebCore/Modules/webxr/WebXRSystem.h: * Source/WebCore/html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const): Return true if the page has an active WebXR immersive session. * Source/WebCore/page/Page.cpp: (WebCore::Page::hasActiveImmersiveSession const): Walk the frame tree and return true if any frame's window has an active WebXR immersive session. * Source/WebCore/page/Page.h: * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updateDrawingAreaLayerTreeFreezeState): Similar to picture-in-picture, skip freezing the layer tree state if the window gets backgrounded due to an active immersive session. Canonical link: https://commits.webkit.org/274742@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 2b9b6b: [WebXR] Skip freezing layer tree with an active We...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2b9b6bf2f2fb0ba67a772554d4dcc8fbb756b503 https://github.com/WebKit/WebKit/commit/2b9b6bf2f2fb0ba67a772554d4dcc8fbb756b503 Author: Ada Chan Date: 2024-03-08 (Fri, 08 Mar 2024) Changed paths: M Source/WebCore/page/Page.cpp M Source/WebCore/page/Page.h M Source/WebKit/WebProcess/WebPage/WebPage.cpp Log Message: --- [WebXR] Skip freezing layer tree with an active WebXR immersive session only when there's video content https://bugs.webkit.org/show_bug.cgi?id=270669 rdar://123777699 Reviewed by Eric Carlson. We initially skip freezing the layer tree with an active WebXR immersive session so videos can continue to get their requestVideoFrameCallback serviced. However, since this also incurs a power cost, we'll only do this when there's video content on the page. * Source/WebCore/page/Page.cpp: (WebCore::Page::shouldBlockLayerTreeFreezingForVideo): * Source/WebCore/page/Page.h: * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updateDrawingAreaLayerTreeFreezeState): Canonical link: https://commits.webkit.org/275842@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 802510: Add tracepoints around WebXR frame rendering
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8025107d2885c33e99c72a1117f1438265ee721c https://github.com/WebKit/WebKit/commit/8025107d2885c33e99c72a1117f1438265ee721c Author: Ada Chan Date: 2024-03-22 (Fri, 22 Mar 2024) Changed paths: M Source/WTF/wtf/SystemTracing.h M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp M Source/WebCore/Modules/webxr/WebXRSession.cpp M Source/WebKit/Resources/Signposts/SystemTracePoints.plist Log Message: --- Add tracepoints around WebXR frame rendering https://bugs.webkit.org/show_bug.cgi?id=271474 rdar://125215811 Reviewed by Kimmo Kinnunen. * Source/WTF/wtf/SystemTracing.h: * Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp: (WebCore::WebXROpaqueFramebuffer::startFrame): (WebCore::WebXROpaqueFramebuffer::endFrame): * Source/WebCore/Modules/webxr/WebXRSession.cpp: (WebCore::WebXRSession::onFrame): * Source/WebKit/Resources/Signposts/SystemTracePoints.plist: Canonical link: https://commits.webkit.org/276571@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a3fcf4: [WebXR] Fix MESSAGE_CHECK failure in PlatformXRSys...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a3fcf4fdfbc19460ad56323d2c0dbb4c26906d2f https://github.com/WebKit/WebKit/commit/a3fcf4fdfbc19460ad56323d2c0dbb4c26906d2f Author: Ada Chan Date: 2024-06-26 (Wed, 26 Jun 2024) Changed paths: M Source/WebCore/Modules/webxr/WebXRSession.cpp M Source/WebCore/platform/xr/PlatformXR.h M Source/WebKit/Shared/XR/XRDeviceProxy.cpp M Source/WebKit/Shared/XR/XRDeviceProxy.h M Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp M Source/WebKit/UIProcess/XR/PlatformXRSystem.h M Source/WebKit/UIProcess/XR/PlatformXRSystem.messages.in M Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.cpp M Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.h Log Message: --- [WebXR] Fix MESSAGE_CHECK failure in PlatformXRSystem::RequestFrame() https://bugs.webkit.org/show_bug.cgi?id=275912 rdar://130300869 Reviewed by Mike Wyrzykowski and Dan Glastonbury. If the WebXR immersive session was triggered by the system, PlatformXRSystem::sessionDidEnd() would be called on the UI process side first, which updated the session state to Idle. However, during the short period when the UI process had handled the session end request but the web process had not handled it yet, PlatformXRSystem::requestFrame() could still be called on the UI process side, which would fail the m_immersiveSessionState == SessionRunning check. To fix this, we introduce two new immersive session states: SessionEndingFromSystem and SessionEndingFromWebContent. If PlatformXRSystem::sessionDidEnd() is called while the state is SessionRunning, that means the session end request comes from the system and we'll update the state to SessionEndingFromSystem. The message check in PlatformXRSystem::requestFrame() has been updated to allow the state to be either SessionRunning and SessionEndingFromSystem, but will skip the actual frame update if it's SessionEndingFromSystem. When the web process has ended the XR session, it'll send the PlatformXRSystem::didCompleteShutdownTriggeredBySystem message which will reset PlatformXRSystem::m_immersiveSessionState back to Idle. If the session end request comes from XRSession.end(), then PlatformXRSystem::shutDownTrackingAndRendering() will be called first when the state is SessionRunning, and the session state will be updated to SessionEndingFromWebContent. After the system has finished the work to end the session, PlatformXRSystem::sessionDidEnd() will be called which will update the session state to Idle. * Source/WebCore/Modules/webxr/WebXRSession.cpp: (WebCore::WebXRSession::shutdown): If the ending of the XR session is triggered by the system, call PlatformXR::Device::didCompleteShutdownTriggeredBySystem() after finishing the shutdown work. * Source/WebCore/platform/xr/PlatformXR.h: (PlatformXR::Device::didCompleteShutdownTriggeredBySystem): * Source/WebKit/Shared/XR/XRDeviceProxy.cpp: (WebKit::XRDeviceProxy::didCompleteShutdownTriggeredBySystem): (WebKit::XRDeviceProxy::requestFrame): Make sure the completion handler is always called. * Source/WebKit/Shared/XR/XRDeviceProxy.h: * Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp: (WebKit::PlatformXRSystem::shutDownTrackingAndRendering): (WebKit::PlatformXRSystem::requestFrame): Allow the session state to be either SessionRunning and SessionEndingFromSystem. But skip the frame update if it's SessionEndingFromSystem. Make sure the completion handler is called even if there's no xrCoordinator. (WebKit::PlatformXRSystem::submitFrame): Allow the session state to be either SessionRunning and SessionEndingFromSystem. (WebKit::PlatformXRSystem::didCompleteShutdownTriggeredBySystem): Make sure we'll only get here from handling a session end request from the system. Reset the state back to Idle. (WebKit::PlatformXRSystem::sessionDidEnd): If this is called when the state is SessionRunning, the session is being ended by the system so set the next state to be SessionEndingFromSystem. Otherwise, reset it back to Idle. (WebKit::PlatformXRSystem::invalidateImmersiveSessionState): * Source/WebKit/UIProcess/XR/PlatformXRSystem.h: * Source/WebKit/UIProcess/XR/PlatformXRSystem.messages.in: * Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.cpp: (WebKit::PlatformXRSystemProxy::didCompleteShutdownTriggeredBySystem): * Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.h: Canonical link: https://commits.webkit.org/280392@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 015450: [visionOS] Add a mechanism to check user authoriza...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 015450fc9083884904de9d26c87319b6b123f27f https://github.com/WebKit/WebKit/commit/015450fc9083884904de9d26c87319b6b123f27f Author: Ada Chan Date: 2024-07-26 (Fri, 26 Jul 2024) Changed paths: M Source/WebCore/Modules/gamepad/GamepadManager.cpp M Source/WebCore/Modules/gamepad/GamepadManager.h M Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp M Source/WebCore/Modules/gamepad/NavigatorGamepad.h M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/page/Page.cpp M Source/WebCore/page/Page.h M Source/WebCore/page/PageConfiguration.h A Source/WebCore/platform/gamepad/ShouldRequireExplicitConsentForGamepadAccess.h M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in M Source/WebKit/Shared/WebPageCreationParameters.h M Source/WebKit/Shared/WebPageCreationParameters.serialization.in M Source/WebKit/UIProcess/API/APIPageConfiguration.h M Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 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/Cocoa/PageClientImplCocoa.h M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm M Source/WebKit/UIProcess/Gamepad/UIGamepadProvider.cpp M Source/WebKit/UIProcess/Gamepad/UIGamepadProvider.h M Source/WebKit/UIProcess/PageClient.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/WebPage/WebPage.h M Source/WebKit/WebProcess/WebPage/WebPage.messages.in Log Message: --- [visionOS] Add a mechanism to check user authorization for gamepads https://bugs.webkit.org/show_bug.cgi?id=276842 rdar://132103378 Reviewed by Brady Eidson. Add a new gamepadAccessRequiresExplicitConsent member in page configuration to control whether gamepad access is blocked from webpage until -[WKWebView _setAllowGamepadsAccess:YES] is called. By default, gamepadAccessRequiresExplicitConsent is false. Update the logic in GamepadManager that determines when to reveal gamepads to navigators/windows that are just registered to also consult the page's m_gamepadAccessGranted boolean. If Page::gamepadAccessGranted() returns false when the navigator/window is first registered with the manager, they are first placed in a separate quarantined set, and they don't automatically get gamepads revealed to them on new gamepad connection or gamepad activity. They are removed from quarantine only after their pages have been explicitly granted gamepad access. Also, add WKUIDelegatePrivate methods to communicate gamepad access/connection state changes. * Source/WebCore/Modules/gamepad/GamepadManager.cpp: (WebCore::GamepadManager::findUnquarantinedNavigatorsAndWindows): Gather all navigators/windows that are not waiting for explicit user consent for gamepad access. (WebCore::GamepadManager::platformGamepadConnected): Do not notify quarantined navigators/windows of new gamepad connections. (WebCore::GamepadManager::platformGamepadDisconnected): Ditto for gamepad disconnections. (WebCore::GamepadManager::registerNavigator): Add to the quarantined set if access has not been granted. (WebCore::GamepadManager::unregisterNavigator): (WebCore::GamepadManager::registerDOMWindow): Ditto for window. (WebCore::GamepadManager::unregisterDOMWindow): (WebCore::GamepadManager::updateQuarantineStatus): This is called when a page's gamepad access state has changed. It goes through the quarantined sets to see which ones are from pages that have been granted access. Promote them to the blind sets and remove them from the quarantined sets. * Source/WebCore/Modules/gamepad/GamepadManager.h: * Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp: (WebCore::NavigatorGamepad::protectedPage const): * Source/WebCore/Modules/gamepad/NavigatorGamepad.h: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/page/Page.cpp: (WebCore::m_activeNowPlayingSessionUpdateTimer): (WebCore::Page::didCommitLoad): Reset gamepad access on new page load. (WebCore::Page::allowGamepadAccess): If gamepad access state has changed, tell GamepadManager to update its quarantined sets of navigators/windows. (WebCore::Page::initializeGamepadAccessForPageLoad): * Source/WebCore/page/Page.h: (WebCore::Page::gamepadAccessGranted const): * Source/WebCore/page/PageConfiguration.h: * Source/WebCore/platform/gamepad/ShouldRequireExplicitConsentForGamepadAccess.h: Added. * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: * Source/WebKit/Shared/WebPageCreationParameters.h: * Source/WebKit/Shared/WebPageCreationParameters.serialization.in: * Source/WebKit/UIProcess/API/APIPageConfig
[webkit-changes] [WebKit/WebKit] 20780c: Expose model bounding box to JS
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 20780c1b3ad229ddd62aea26af9b877e1b72421e https://github.com/WebKit/WebKit/commit/20780c1b3ad229ddd62aea26af9b877e1b72421e Author: Ada Chan Date: 2024-08-01 (Thu, 01 Aug 2024) Changed paths: M Source/WebCore/Modules/model-element/HTMLModelElement.cpp M Source/WebCore/Modules/model-element/HTMLModelElement.h M Source/WebCore/Modules/model-element/HTMLModelElement.idl M Source/WebCore/Modules/model-element/ModelPlayerClient.h M Source/WebCore/dom/DOMPointReadOnly.h M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.messages.in Log Message: --- Expose model bounding box to JS https://bugs.webkit.org/show_bug.cgi?id=277433 rdar://125586529 Reviewed by Mike Wyrzykowski. Add two new data members m_boundingBoxCenter and m_boundingBoxExtents to HTMLModelElement that tracks the center and extents of the loaded model. When the model process finishes loading the model source, it will send the model's center and extents info in the DidFinishLoading message. ModelProcessModelPlayer then calls ModelPlayerClient::didUpdateBoundingBox() to pass that info along to the model element. * Source/WebCore/Modules/model-element/HTMLModelElement.cpp: (WebCore::m_boundingBoxExtents): (WebCore::HTMLModelElement::setSourceURL): (WebCore::HTMLModelElement::createModelPlayer): (WebCore::HTMLModelElement::boundingBoxCenter const): (WebCore::HTMLModelElement::boundingBoxExtents const): (WebCore::HTMLModelElement::didUpdateBoundingBox): * Source/WebCore/Modules/model-element/HTMLModelElement.h: * Source/WebCore/Modules/model-element/HTMLModelElement.idl: * Source/WebCore/Modules/model-element/ModelPlayerClient.h: * Source/WebCore/dom/DOMPointReadOnly.h: * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h: * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm: (WebKit::ModelProcessModelPlayerProxy::didFinishLoading): * Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp: (WebKit::ModelProcessModelPlayer::didFinishLoading): * Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h: * Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.messages.in: Canonical link: https://commits.webkit.org/281722@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bb0b0d: Introduce WKSRKEntity interface that wraps a Reali...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bb0b0dc7700f6f8a68cbc4e5c9b79b1983916aba https://github.com/WebKit/WebKit/commit/bb0b0dc7700f6f8a68cbc4e5c9b79b1983916aba Author: Ada Chan Date: 2024-08-20 (Tue, 20 Aug 2024) Changed paths: M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm M Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.h M Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj A Source/WebKit/WebKitSwift/RealityKit/RKEntity.swift A Source/WebKit/WebKitSwift/RealityKit/RealityKitBridging.h M Source/WebKit/WebKitSwift/WebKitSwift.h Log Message: --- Introduce WKSRKEntity interface that wraps a RealityKit Entity object https://bugs.webkit.org/show_bug.cgi?id=278337 rdar://134272371 Reviewed by Mike Wyrzykowski. This wrapper class allows us to manipulate the entity associated with a model element using RealityKit APIs. This patch converts the logic to get the entity's bounding box, get/set its transform and opacity, and animate the entity to use RealityKit APIs in Swift. * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h: Add a new data member to hold a WKSRKEntity created with the REEntityRef from the REModel. m_animationPlaybackToken can be removed since we can now handle animation with the RealityKit AnimationPlaybackController API. * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm: (WebKit::ModelProcessModelPlayerProxy::updateTransform): (WebKit::ModelProcessModelPlayerProxy::updateOpacity): (WebKit::ModelProcessModelPlayerProxy::startAnimating): (WebKit::ModelProcessModelPlayerProxy::didFinishLoading): Create a WKSRKEntity with the CoreRE entity from REModel * Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.h: * Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.mm: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebKitSwift/RealityKit/RKEntity.swift: Added. (WKSRKEntity.boundingBoxExtents): (WKSRKEntity.boundingBoxCenter): (WKSRKEntity.boundingBox): (WKSRKEntity.transform): (WKSRKEntity.opacity): (WKSRKEntity.startAnimating): * Source/WebKit/WebKitSwift/RealityKit/RealityKitBridging.h: Copied from Source/WebKit/WebKitSwift/WebKitSwift.h. * Source/WebKit/WebKitSwift/WebKitSwift.h: Canonical link: https://commits.webkit.org/282494@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bef97a: Allow layout tests to load model content on vision...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bef97a66bbfd776404fb60f009f81bdaa5cc752d https://github.com/WebKit/WebKit/commit/bef97a66bbfd776404fb60f009f81bdaa5cc752d Author: Ada Chan Date: 2024-09-04 (Wed, 04 Sep 2024) Changed paths: A LayoutTests/model-element/model-element-bounding-box-expected.txt A LayoutTests/model-element/model-element-bounding-box.html M LayoutTests/model-element/model-element-camera.html M LayoutTests/model-element/model-element-enter-fullscreen-crash.html A LayoutTests/model-element/model-element-entity-transform-expected.txt A LayoutTests/model-element/model-element-entity-transform.html M LayoutTests/model-element/model-element-error-and-load-events.html M LayoutTests/model-element/model-element-inline-preview-deletion-upon-source-change.html M LayoutTests/model-element/model-element-interactive-dragging.html M LayoutTests/model-element/model-element-interactive.html M LayoutTests/model-element/model-element-ready.html M LayoutTests/model-element/model-element-source.html M LayoutTests/model-element/model-element.html A LayoutTests/model-element/resources/2x2x2-at-100x50x200.usdz A LayoutTests/model-element/resources/2x2x2-center.usdz A LayoutTests/model-element/resources/2x2x2-positive.usdz M LayoutTests/model-element/resources/model-utils.js M Source/WebKit/Configurations/ModelService.xcconfig A Source/WebKit/Resources/ios/ModelService-embedded-simulator.entitlements Log Message: --- Allow layout tests to load model content on visionOS with model process https://bugs.webkit.org/show_bug.cgi?id=279082 rdar://124870608 Reviewed by Mike Wyrzykowski and Per Arne Vollan. Set up an entitlements file for the model process for simulator that have the same two entitlements we added for the model process on device. Make sure ModelElementEnabled is true for the model tests. Make sure ModelProcessEnabled is true For the model tests that require the model process to be able to process model content. Fix the flakiness of model-element-error-and-load-events.html. Also add simple layout tests for bounding box and entity transform. * LayoutTests/model-element/model-element-bounding-box-expected.txt: Added. * LayoutTests/model-element/model-element-bounding-box.html: Added. * LayoutTests/model-element/model-element-camera.html: * LayoutTests/model-element/model-element-enter-fullscreen-crash.html: * LayoutTests/model-element/model-element-entity-transform-expected.txt: Added. * LayoutTests/model-element/model-element-entity-transform.html: Added. * LayoutTests/model-element/model-element-error-and-load-events.html: The first test case sets the model's source to a valid URL and then removes the source. There's a chance that the model source finished loading, queued the load event to be fired, and then its source was removed. By the time the load event is actually fired, model.complete is already false. Update the assert for the load event to account for that case, and update model_load_test to take in an array of possible intermediate events that can happen before the expected event is fired. This way we can pass in the load event in the possibleIntermediateEvents array for this test case. * LayoutTests/model-element/model-element-inline-preview-deletion-upon-source-change.html: * LayoutTests/model-element/model-element-interactive-dragging.html: * LayoutTests/model-element/model-element-interactive.html: * LayoutTests/model-element/model-element-ready.html: * LayoutTests/model-element/model-element-source.html: * LayoutTests/model-element/model-element.html: * LayoutTests/model-element/resources/2x2x2-at-100x50x200.usdz: Added. * LayoutTests/model-element/resources/2x2x2-center.usdz: Added. * LayoutTests/model-element/resources/2x2x2-positive.usdz: Added. * LayoutTests/model-element/resources/model-utils.js: (const.assert_points_are_equal): (const.assert_3d_matrix_is_identity): (const.assert_3d_matrix_equals): (const.assert_3d_matrix_not_equals): * Source/WebKit/Configurations/ModelService.xcconfig: * Source/WebKit/Resources/ios/ModelService-embedded-simulator.entitlements: Added. Very similar to the XPCService-embedded-simulator.entitlements with the added SurfBoard entitlements needed by the model process. Canonical link: https://commits.webkit.org/283159@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 79915f: model portal should allow rectangular aspect ratio
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 79915f4ac88b69ed7d0c317ae49e271ca738f68e https://github.com/WebKit/WebKit/commit/79915f4ac88b69ed7d0c317ae49e271ca738f68e Author: Ada Chan Date: 2024-09-04 (Wed, 04 Sep 2024) Changed paths: M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm Log Message: --- model portal should allow rectangular aspect ratio https://bugs.webkit.org/show_bug.cgi?id=279158 rdar://99045742 Reviewed by Mike Wyrzykowski. Use the proper height for the model portal layer. Update the initial entity transform computation to use the bounding box center for the translation. * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm: (WebKit::computeScaledExtentsAndCenter): (WebKit::computeSRT): (WebKit::ModelProcessModelPlayerProxy::computeTransform): (WebKit::ModelProcessModelPlayerProxy::didFinishLoading): (WebKit::ModelProcessModelPlayerProxy::layer): (WebKit::computeExtents): Deleted. Canonical link: https://commits.webkit.org/283193@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 8e9979: Enable model process by default
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8e9979cd7c4c1fa9199a2fb2af09e0371fbf27f8 https://github.com/WebKit/WebKit/commit/8e9979cd7c4c1fa9199a2fb2af09e0371fbf27f8 Author: Ada Chan Date: 2024-09-11 (Wed, 11 Sep 2024) Changed paths: M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WebKit/UIProcess/WebProcessProxy.cpp Log Message: --- Enable model process by default https://bugs.webkit.org/show_bug.cgi?id=279526 rdar://135757893 Reviewed by Mike Wyrzykowski. Enable model process by default. It still requires the model element feature flag which is still experimental. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createModelProcessConnection): Added an extra check to make sure modelElementEnabled() is true before allowing the model process connection to be created. Canonical link: https://commits.webkit.org/283517@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 7b007a: WebXR should not work from an iFrame unless it is ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7b007a862a8738cd222cb669afbdef82e07d8422 https://github.com/WebKit/WebKit/commit/7b007a862a8738cd222cb669afbdef82e07d8422 Author: Ada Chan Date: 2024-04-10 (Wed, 10 Apr 2024) Changed paths: A LayoutTests/http/tests/webxr/resources/resources/test-only-api.js A LayoutTests/http/tests/webxr/resources/resources/webxr_test_constants_single_view.js A LayoutTests/http/tests/webxr/resources/resources/webxr_util.js A LayoutTests/http/tests/webxr/resources/webxr-issessionsupported-test.html A LayoutTests/http/tests/webxr/resources/webxr-makexrcompatible-test.html A LayoutTests/http/tests/webxr/resources/webxr-requestsession-test.html A LayoutTests/http/tests/webxr/webxr-third-party-iframe-issessionsupported-allowed-by-feature-policy-expected.txt A LayoutTests/http/tests/webxr/webxr-third-party-iframe-issessionsupported-allowed-by-feature-policy.html A LayoutTests/http/tests/webxr/webxr-third-party-iframe-issessionsupported-denied-by-insufficient-feature-policy-expected.txt A LayoutTests/http/tests/webxr/webxr-third-party-iframe-issessionsupported-denied-by-insufficient-feature-policy.html A LayoutTests/http/tests/webxr/webxr-third-party-iframe-makexrcompatible-allowed-by-feature-policy-expected.txt A LayoutTests/http/tests/webxr/webxr-third-party-iframe-makexrcompatible-allowed-by-feature-policy.html A LayoutTests/http/tests/webxr/webxr-third-party-iframe-makexrcompatible-denied-by-insufficient-feature-policy-expected.txt A LayoutTests/http/tests/webxr/webxr-third-party-iframe-makexrcompatible-denied-by-insufficient-feature-policy.html A LayoutTests/http/tests/webxr/webxr-third-party-iframe-requestsession-allowed-by-feature-policy-expected.txt A LayoutTests/http/tests/webxr/webxr-third-party-iframe-requestsession-allowed-by-feature-policy.html A LayoutTests/http/tests/webxr/webxr-third-party-iframe-requestsession-denied-by-insufficient-feature-policy-expected.txt A LayoutTests/http/tests/webxr/webxr-third-party-iframe-requestsession-denied-by-insufficient-feature-policy.html M LayoutTests/platform/gtk/TestExpectations M LayoutTests/platform/ios/TestExpectations M LayoutTests/platform/mac-gpup/TestExpectations M LayoutTests/platform/mac/TestExpectations M LayoutTests/platform/wincairo/TestExpectations M LayoutTests/platform/wpe/TestExpectations M Source/WebCore/Modules/webxr/WebXRSystem.cpp M Source/WebCore/Modules/webxr/WebXRSystem.h M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp Log Message: --- WebXR should not work from an iFrame unless it is allowed to use the xr-spatial-tracking permissions policy https://bugs.webkit.org/show_bug.cgi?id=271363 rdar://122963817 Reviewed by Mike Wyrzykowski. Follow the latest WebXR spec and check whether 'xr-spatial-tracking' is enabled for the requesting document's origin in WebGLRenderingContextBase::makeXRCompatible and WebXRSystem::resolveRequestedFeatures. Added layout tests to verify 'xr-spatial-tracking' permissions policy is checked properly for xr.isSessionSupported, xr.requestSession, and WebGLRenderingContextBase::makeXRCompatible. Set up symbolic links to the webxr related scripts from http/wpt/webxr folder so the pages embedded in the iframes can reference them. * LayoutTests/http/tests/webxr/resources/resources/test-only-api.js: Added. * LayoutTests/http/tests/webxr/resources/resources/webxr_test_constants_single_view.js: Added. * LayoutTests/http/tests/webxr/resources/resources/webxr_util.js: Added. * LayoutTests/http/tests/webxr/resources/webxr-issessionsupported-test.html: Added. * LayoutTests/http/tests/webxr/resources/webxr-makexrcompatible-test.html: Added. * LayoutTests/http/tests/webxr/resources/webxr-requestsession-test.html: Added. * LayoutTests/http/tests/webxr/webxr-third-party-iframe-issessionsupported-allowed-by-feature-policy-expected.txt: Added. * LayoutTests/http/tests/webxr/webxr-third-party-iframe-issessionsupported-allowed-by-feature-policy.html: Added. * LayoutTests/http/tests/webxr/webxr-third-party-iframe-issessionsupported-denied-by-insufficient-feature-policy-expected.txt: Added. * LayoutTests/http/tests/webxr/webxr-third-party-iframe-issessionsupported-denied-by-insufficient-feature-policy.html: Added. * LayoutTests/http/tests/webxr/webxr-third-party-iframe-makexrcompatible-allowed-by-feature-policy-expected.txt: Added. * LayoutTests/http/tests/webxr/webxr-third-party-iframe-makexrcompatible-allowed-by-feature-policy.html: Added. * LayoutTests/http/tests/webxr/webxr-third-party-iframe-makexrcompatible-denied-by-insufficient-feature-policy-expected.txt: Added. * LayoutTests/http/tests/webxr/webxr-third-party-iframe-makexrcompatible-denied-by-insufficient-feature-policy.html: Added. * LayoutTests/http/tests/webxr/webxr-third-party-iframe-requests
[webkit-changes] [WebKit/WebKit] c8371e: Add a way to exclude certain game controllers from...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c8371eaa79e62ee1f18df46b5c5450e1e8d31e27 https://github.com/WebKit/WebKit/commit/c8371eaa79e62ee1f18df46b5c5450e1e8d31e27 Author: Ada Chan Date: 2024-04-26 (Fri, 26 Apr 2024) Changed paths: M Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm Log Message: --- Add a way to exclude certain game controllers from Gamepad API https://bugs.webkit.org/show_bug.cgi?id=273274 rdar://127075441 Reviewed by Brady Eidson. * Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm: (WebCore::shouldExcludeGameController): (WebCore::GameControllerGamepadProvider::controllerDidConnect): Canonical link: https://commits.webkit.org/278040@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] fb4278: [WebXR] Service video frame callbacks in WebXRSess...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fb427896ee568c0bc173d1611575da7d8b26be49 https://github.com/WebKit/WebKit/commit/fb427896ee568c0bc173d1611575da7d8b26be49 Author: Ada Chan Date: 2024-05-22 (Wed, 22 May 2024) Changed paths: M Source/WebCore/Modules/webxr/WebXRSession.cpp M Source/WebCore/Modules/webxr/WebXRSession.h M Source/WebCore/Modules/webxr/WebXRSystem.cpp M Source/WebCore/Modules/webxr/WebXRSystem.h M Source/WebCore/page/Page.cpp M Source/WebCore/page/Page.h M Source/WebKit/WebProcess/WebPage/WebPage.cpp Log Message: --- [WebXR] Service video frame callbacks in WebXRSession if page backgrounds during immersive WebXR session https://bugs.webkit.org/show_bug.cgi?id=273901 rdar://124236441 Reviewed by Simon Fraser and Jer Noble. Instead of not freezing the layer tree if the page gets backgrounded during an immersive WebXR session so video frame callbacks can continue to be serviced, just service the video frame callbacks in the XR session. * Source/WebCore/Modules/webxr/WebXRSession.cpp: (WebCore::WebXRSession::minimalUpdateRendering): We'll special case servicing the video frame callbacks as the minimum render updates we'll do in XR session's rAF if the page is backgrounded. (WebCore::WebXRSession::onFrame): * Source/WebCore/Modules/webxr/WebXRSession.h: * Source/WebCore/Modules/webxr/WebXRSystem.cpp: (WebCore::WebXRSystem::activeImmersiveSession const): (WebCore::WebXRSystem::hasActiveImmersiveSession const): Deleted. * Source/WebCore/Modules/webxr/WebXRSystem.h: * Source/WebCore/page/Page.cpp: (WebCore::Page::applicationDidEnterBackground): (WebCore::Page::applicationWillEnterForeground): (WebCore::Page::hasActiveImmersiveSession const): (WebCore::Page::activeImmersiveXRSession const): (WebCore::Page::shouldBlockLayerTreeFreezingForVideo): Deleted. * Source/WebCore/page/Page.h: * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updateDrawingAreaLayerTreeFreezeState): Remove the logic to prevent the freezing of the layer tree if the page is backgrounded due to an active immersive session. It's not good for performance to continue render updates for the page when it's backgrounded and not visible. Canonical link: https://commits.webkit.org/279146@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 32a1e9: [WebXR] Avoid re-allocation of metal textures for ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 32a1e991f51741f6d02c5025fd3773ffcd9302c6 https://github.com/WebKit/WebKit/commit/32a1e991f51741f6d02c5025fd3773ffcd9302c6 Author: Ada Chan Date: 2024-05-30 (Thu, 30 May 2024) Changed paths: M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.h M Source/WebCore/Modules/webxr/WebXROpaqueFramebufferCocoa.cpp M Source/WebCore/Modules/webxr/WebXRSession.cpp M Source/WebCore/Modules/webxr/WebXRWebGLLayer.cpp M Source/WebCore/Modules/webxr/WebXRWebGLLayer.h M Source/WebCore/platform/xr/PlatformXR.h M Source/WebCore/platform/xr/openxr/PlatformXROpenXR.cpp M Source/WebCore/testing/WebFakeXRDevice.cpp M Source/WebKit/Shared/XR/PlatformXR.serialization.in M Source/WebKit/UIProcess/XR/ios/PlatformXRARKit.mm Log Message: --- [WebXR] Avoid re-allocation of metal textures for every frame https://bugs.webkit.org/show_bug.cgi?id=274882 rdar://128010992 Reviewed by Dan Glastonbury and Mike Wyrzykowski. Before this code change, metal texture handles are passed in the frame data for every frame render, and we'd allocate a metal texture from this handle (and later deallocate it) for each frame. With this change, we allow textures to be reused. PlatformXRSystem can send back a reusable index along with the texture handle, and WebXROpaqueFramebuffer caches the allocated texture with that index. When this same texture can be reused in a future frame, PlatformXRSystem will send back that index in the frame data with a null texture handle as a signal that the last texture stored at that index should be used. * Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.h: (WebCore::WebXRExternalRenderbuffer::operator bool const): (WebCore::WebXRAttachmentSet::operator bool const): * Source/WebCore/Modules/webxr/WebXROpaqueFramebufferCocoa.cpp: (WebCore::WebXROpaqueFramebuffer::~WebXROpaqueFramebuffer): The cleanup of the display attachments is now handled in releaseAllDisplayAttachments(). (WebCore::WebXROpaqueFramebuffer::startFrame): Call the new helper method bindCompositorTexturesForDisplay() that will reuse a cached texture if possible. (WebCore::WebXROpaqueFramebuffer::endFrame): We no longer need to deallocate the texture after each frame render. (WebCore::WebXROpaqueFramebuffer::releaseAllDisplayAttachments): Release all the cached display attachments. (WebCore::WebXROpaqueFramebuffer::blitShared): (WebCore::WebXROpaqueFramebuffer::blitSharedToLayered): (WebCore::WebXROpaqueFramebuffer::reusableDisplayAttachments const): If texture handle is null, return the texture cached at the reusableTextureIndex. (WebCore::WebXROpaqueFramebuffer::bindCompositorTexturesForDisplay): First, ensure the m_displayAttachmentsSets vector is large enough to store the set of display attachments used for this frame render. If there's no layerData.textureData, which is the case when we run layout tests, create a temporary renderbuffer to be used as the display color buffer. Otherwise, check if we can reuse a previously created texture. If reuse is not possible, create new textures with the handles passed in the frame data. (WebCore::WebXROpaqueFramebuffer::releaseDisplayAttachmentsAtIndex): Helper method to clean up the display attachments, refactored from old code. * Source/WebCore/Modules/webxr/WebXRSession.cpp: (WebCore::WebXRSession::didCompleteShutdown): * Source/WebCore/Modules/webxr/WebXRWebGLLayer.cpp: (WebCore::WebXRWebGLLayer::sessionEnded): Clean up any cached display attachments. * Source/WebCore/Modules/webxr/WebXRWebGLLayer.h: * Source/WebCore/platform/xr/PlatformXR.h: Introduce ExternalTextureData that packages up all the texture info along with the reusable index. Store LayerData with UniqueRef so we don't have to worry about its size getting too large to be hashable. * Source/WebCore/platform/xr/openxr/PlatformXROpenXR.cpp: (PlatformXR::OpenXRDevice::requestFrame): * Source/WebCore/testing/WebFakeXRDevice.cpp: (WebCore::SimulatedXRDevice::frameTimerFired): Don't pass any textureData from the fake device so a temporary renderbuffer will be used for the color display buffer. * Source/WebKit/Shared/XR/PlatformXR.serialization.in: * Source/WebKit/UIProcess/XR/ios/PlatformXRARKit.mm: (WebKit::ARKitCoordinator::renderLoop): Canonical link: https://commits.webkit.org/279523@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 5a264d: [WebXR] Add a reason for ending XRSessions
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5a264de1c9901a61c3826532df73319b334d3ebc https://github.com/WebKit/WebKit/commit/5a264de1c9901a61c3826532df73319b334d3ebc Author: Ada Chan Date: 2024-06-03 (Mon, 03 Jun 2024) Changed paths: M Source/WebKit/UIProcess/API/APIUIClient.h M Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h M Source/WebKit/UIProcess/Cocoa/UIDelegate.h M Source/WebKit/UIProcess/Cocoa/UIDelegate.mm A Source/WebKit/UIProcess/XR/PlatformXRSessionEnums.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj Log Message: --- [WebXR] Add a reason for ending XRSessions https://bugs.webkit.org/show_bug.cgi?id=275015 rdar://127837175 Reviewed by Kimmo Kinnunen and Mike Wyrzykowski. API::UIClient::endXRSession() now takes in a new WebKit::PlatformXRSessionEndReason parameter so we can differentiate between the normal and error cases for the session termination. * Source/WebKit/UIProcess/API/APIUIClient.h: (API::UIClient::endXRSession): * Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add WK enum type that corresponds to WebKit::PlatformXRSessionEndReason. * Source/WebKit/UIProcess/Cocoa/UIDelegate.h: * Source/WebKit/UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::endXRSession): Call the _webViewEndXRSession delegate method that takes in the reason if it's implemented. * Source/WebKit/UIProcess/XR/PlatformXRSessionEnums.h: Added. * Source/WebKit/WebKit.xcodeproj/project.pbxproj: Canonical link: https://commits.webkit.org/279656@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 24342f: [WebXR][Cocoa] Add bounds checking when indexing i...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 24342f2b8c74450f700740bed2255e71b4886d14 https://github.com/WebKit/WebKit/commit/24342f2b8c74450f700740bed2255e71b4886d14 Author: Ada Chan Date: 2024-06-17 (Mon, 17 Jun 2024) Changed paths: M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.h M Source/WebCore/Modules/webxr/WebXROpaqueFramebufferCocoa.cpp Log Message: --- [WebXR][Cocoa] Add bounds checking when indexing into m_displayAttachmentsSets in WebXROpaqueFramebuffer https://bugs.webkit.org/show_bug.cgi?id=275524 rdar://129895566 Reviewed by Mike Wyrzykowski. Add a helper method WebXROpaqueFramebuffer::reusableDisplayAttachmentsAtIndex() to index into m_displayAttachmentsSets after a bounds check. * Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.h: * Source/WebCore/Modules/webxr/WebXROpaqueFramebufferCocoa.cpp: (WebCore::WebXROpaqueFramebuffer::startFrame): (WebCore::WebXROpaqueFramebuffer::blitShared): (WebCore::WebXROpaqueFramebuffer::blitSharedToLayered): (WebCore::WebXROpaqueFramebuffer::reusableDisplayAttachmentsAtIndex): Canonical link: https://commits.webkit.org/280104@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 77aa2a: [WebXR] MTLRasterizationRateLayerDescriptor instan...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 77aa2ac82dd06a8ce6c5b532103c5a395052307c https://github.com/WebKit/WebKit/commit/77aa2ac82dd06a8ce6c5b532103c5a395052307c Author: Ada Chan Date: 2024-06-22 (Sat, 22 Jun 2024) Changed paths: M Source/WebCore/platform/graphics/cocoa/ANGLEUtilitiesCocoa.mm Log Message: --- [WebXR] MTLRasterizationRateLayerDescriptor instances are leaked after WebXR immersive session https://bugs.webkit.org/show_bug.cgi?id=275770 rdar://130319220 Reviewed by Mike Wyrzykowski. Use adoptNS() to fix the leaks. * Source/WebCore/platform/graphics/cocoa/ANGLEUtilitiesCocoa.mm: (WebCore::newRasterizationRateMap): Canonical link: https://commits.webkit.org/280281@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 81e5bd: Upstream GameController event interaction logic fr...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 81e5bd0e03985ae91e00106a0e4407ece74a5093 https://github.com/WebKit/WebKit/commit/81e5bd0e03985ae91e00106a0e4407ece74a5093 Author: Ada Chan Date: 2024-09-12 (Thu, 12 Sep 2024) Changed paths: M Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.h M Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.mm M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm Log Message: --- Upstream GameController event interaction logic from WebKitAdditions https://bugs.webkit.org/show_bug.cgi?id=279538 rdar://135817284 Reviewed by Wenson Hsieh. * Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.h: * Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.mm: * Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setGamepadsRecentlyAccessed:]): (-[WKWebView _setAllowGamepadsInput:]): Canonical link: https://commits.webkit.org/283601@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ce151b: Restart XR immersive session foreground activity i...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ce151b92a063863286dacf717396b686b409b16f https://github.com/WebKit/WebKit/commit/ce151b92a063863286dacf717396b686b409b16f Author: Ada Chan Date: 2023-08-21 (Mon, 21 Aug 2023) Changed paths: M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp M Source/WebKit/UIProcess/XR/PlatformXRSystem.h Log Message: --- Restart XR immersive session foreground activity if needed when process is unsuspended https://bugs.webkit.org/show_bug.cgi?id=260226 rdar://107913685 Reviewed by Chris Dumez and Dean Jackson. The "XR immersive session" foreground activity is added when an XR session starts so the web process has the foreground priority to do rendering work. That activity gets invalidated when the process is suspended. So if the process resumes again while an XR session is still in progress, we need to add that foreground activity again. * Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::setProcessesShouldSuspend): * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::restartXRSessionActivityOnProcessResumeIfNeeded): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp: (WebKit::PlatformXRSystem::ensureImmersiveSessionActivity): (WebKit::PlatformXRSystem::initializeTrackingAndRendering): * Source/WebKit/UIProcess/XR/PlatformXRSystem.h: Canonical link: https://commits.webkit.org/267097@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 67e35f: WebXRSession should not hold a unique ptr to WebXR...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 67e35fd334d59ec2e9d3294b843884dcecdca493 https://github.com/WebKit/WebKit/commit/67e35fd334d59ec2e9d3294b843884dcecdca493 Author: Ada Chan Date: 2023-11-04 (Sat, 04 Nov 2023) Changed paths: M Source/WebCore/Modules/webxr/WebXRSession.cpp M Source/WebCore/Modules/webxr/WebXRSession.h M Source/WebCore/Modules/webxr/WebXRSpace.h Log Message: --- WebXRSession should not hold a unique ptr to WebXRViewerSpace which is ref counted https://bugs.webkit.org/show_bug.cgi?id=264200 rdar://115180471 Reviewed by Chris Dumez. WebXRViewerSpace subclasses EventTarget and therefore should be ref-counted. * Source/WebCore/Modules/webxr/WebXRSession.cpp: (WebCore::WebXRSession::WebXRSession): * Source/WebCore/Modules/webxr/WebXRSession.h: * Source/WebCore/Modules/webxr/WebXRSpace.h: (WebCore::WebXRViewerSpace::create): Canonical link: https://commits.webkit.org/270230@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e8377a: Cherry-pick 270230@main (67e35fd334d5). https://bu...
Branch: refs/heads/webkitglib/2.42 Home: https://github.com/WebKit/WebKit Commit: e8377a74da4c714b94ff351c2a3ae50b9c8915a8 https://github.com/WebKit/WebKit/commit/e8377a74da4c714b94ff351c2a3ae50b9c8915a8 Author: Ada Chan Date: 2023-11-11 (Sat, 11 Nov 2023) Changed paths: M Source/WebCore/Modules/webxr/WebXRSession.cpp M Source/WebCore/Modules/webxr/WebXRSession.h M Source/WebCore/Modules/webxr/WebXRSpace.h Log Message: --- Cherry-pick 270230@main (67e35fd334d5). https://bugs.webkit.org/show_bug.cgi?id=264200 WebXRSession should not hold a unique ptr to WebXRViewerSpace which is ref counted https://bugs.webkit.org/show_bug.cgi?id=264200 rdar://115180471 Reviewed by Chris Dumez. WebXRViewerSpace subclasses EventTarget and therefore should be ref-counted. * Source/WebCore/Modules/webxr/WebXRSession.cpp: (WebCore::WebXRSession::WebXRSession): * Source/WebCore/Modules/webxr/WebXRSession.h: * Source/WebCore/Modules/webxr/WebXRSpace.h: (WebCore::WebXRViewerSpace::create): Canonical link: https://commits.webkit.org/270230@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 324a29: [WebXR] Add support for the new transient-pointer ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 324a294aa828cf2710b6792a2930fabd829e3e42 https://github.com/WebKit/WebKit/commit/324a294aa828cf2710b6792a2930fabd829e3e42 Author: Ada Chan Date: 2023-11-14 (Tue, 14 Nov 2023) Changed paths: A LayoutTests/http/wpt/webxr/events_transient_pointer_input_source.https-expected.txt A LayoutTests/http/wpt/webxr/events_transient_pointer_input_source.https.html M Source/WebCore/Modules/webxr/WebXRInputSource.cpp M Source/WebCore/Modules/webxr/WebXRInputSourceArray.cpp M Source/WebCore/Modules/webxr/WebXRInputSourceArray.h M Source/WebCore/Modules/webxr/XRTargetRayMode.idl M Source/WebCore/platform/xr/PlatformXR.h M Source/WebKit/UIProcess/API/APIUIClient.h M Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h M Source/WebKit/UIProcess/Cocoa/UIDelegate.h M Source/WebKit/UIProcess/Cocoa/UIDelegate.mm Log Message: --- [WebXR] Add support for the new transient-pointer targetRayMode https://bugs.webkit.org/show_bug.cgi?id=264791 rdar://118342599 Reviewed by Dean Jackson. Spec: https://www.w3.org/TR/webxr/#dom-xrtargetraymode-transient-pointer - Add transient-pointer to the list of targetRayModes - Since the transient input source is connected only during the transient action, we need to fire a select event when that input source is no longer connected. - Fix the event order such that all XRInputSourceEvents for an input source are ordered before the XRInputSourcesChangedEvent indicating its removal. - Update the startXRSession UIClient API to take in the feature requested and add a PlatformViewController parameter in its completion handler. Add a new version of the startXRSession WKUIDelegatePrivate method that takes in the requested feature list and adds a view controller to the completion handler. Update the platform guards on the startXRSession and endXRSession methods in UIClient. * LayoutTests/http/wpt/webxr/events_transient_pointer_input_source.https-expected.txt: Added. * LayoutTests/http/wpt/webxr/events_transient_pointer_input_source.https.html: Added. Simulate connecting and disconnecting a transient-pointer input source, and verify the expected list of events fire in the right order. * Source/WebCore/Modules/webxr/WebXRInputSource.cpp: (WebCore::WebXRInputSource::pollEvents): Fire a select event when the transient-pointer input source is disconnected during the primary action. * Source/WebCore/Modules/webxr/WebXRInputSourceArray.cpp: (WebCore::WebXRInputSourceArray::update): Add a new local input source array to track input sources that are being removed but have other input source events that need to fire. This way we can fire the XRInputSourcesChangedEvent for the removal after the XRInputSourceEvents have been fired. (WebCore::WebXRInputSourceArray::handleRemovedInputSources): Add any input source being removed to removedWithInputEvents if it also generates XRInputSourceEvents. (WebCore::WebXRInputSourceArray::handleAddedOrUpdatedInputSources): Ditto. * Source/WebCore/Modules/webxr/WebXRInputSourceArray.h: * Source/WebCore/Modules/webxr/XRTargetRayMode.idl: * Source/WebCore/platform/xr/PlatformXR.h: * Source/WebKit/UIProcess/API/APIUIClient.h: (API::UIClient::startXRSession): * Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * Source/WebKit/UIProcess/Cocoa/UIDelegate.h: * Source/WebKit/UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::startXRSession): Canonical link: https://commits.webkit.org/270730@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 8d0564: Fix a platform guard in UIDelegate.mm
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8d056469ba7ee18ac290fcf77c49be17fa821698 https://github.com/WebKit/WebKit/commit/8d056469ba7ee18ac290fcf77c49be17fa821698 Author: Ada Chan Date: 2023-11-14 (Tue, 14 Nov 2023) Changed paths: M Source/WebKit/UIProcess/Cocoa/UIDelegate.mm Log Message: --- Fix a platform guard in UIDelegate.mm https://bugs.webkit.org/show_bug.cgi?id=264857 rdar://118433187 Reviewed by Dan Glastonbury. Prefer PLATFORM(IOS_FAMILY) over TARGET_OS_IPHONE. * Source/WebKit/UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): Canonical link: https://commits.webkit.org/270752@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] efa156: [visionOS] Update the gpuarchiver directory path u...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: efa156f927caf297447a35b8fd2fd119e17b6b94 https://github.com/WebKit/WebKit/commit/efa156f927caf297447a35b8fd2fd119e17b6b94 Author: Ada Chan Date: 2023-12-05 (Tue, 05 Dec 2023) Changed paths: M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm Log Message: --- [visionOS] Update the gpuarchiver directory path used for the sandbox extension https://bugs.webkit.org/show_bug.cgi?id=265915 rdar://119221177 Reviewed by Mike Wyrzykowski. We need to prefix the subpath passed to WebsiteDataStore::cacheDirectoryInContainerOrHomeDirectory() with a forward slash to get the correct path. * Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): Canonical link: https://commits.webkit.org/271596@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 7f4d02: [WebXR] Update the algorithm for resolving request...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7f4d02174118cd0e3964a2b17bfa48c175db04b1 https://github.com/WebKit/WebKit/commit/7f4d02174118cd0e3964a2b17bfa48c175db04b1 Author: Ada Chan Date: 2023-07-18 (Tue, 18 Jul 2023) Changed paths: A LayoutTests/http/wpt/webxr/xrDevice_requestSession_previously_enabled_feature_not_requested.https-expected.txt A LayoutTests/http/wpt/webxr/xrDevice_requestSession_previously_enabled_feature_not_requested.https.html M Source/WebCore/Modules/webxr/WebXRSystem.cpp M Source/WebCore/page/ChromeClient.h M Source/WebKit/UIProcess/API/APIUIClient.h M Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h M Source/WebKit/UIProcess/Cocoa/UIDelegate.h M Source/WebKit/UIProcess/Cocoa/UIDelegate.mm M Source/WebKit/UIProcess/XR/PlatformXRCoordinator.h M Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp M Source/WebKit/UIProcess/XR/PlatformXRSystem.h M Source/WebKit/UIProcess/XR/PlatformXRSystem.messages.in M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h M Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.cpp M Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.h Log Message: --- [WebXR] Update the algorithm for resolving requested features https://bugs.webkit.org/show_bug.cgi?id=259202 rdar://112239466 Reviewed by Dan Glastonbury. The updated spec no longer automatically sets granted to all the previously enabled features, but rather only add it to granted if it's requested and previously enabled. Fix WebXRSystem::resolveRequestedFeatures() to follow the updated steps. Also update the APIUIClient method for requesting XR session permissions to take in the required and optional features requested by the session so the client has more information to decide how to present the feature consent UI to the users. New layout test: LayoutTests/http/wpt/webxr/xrDevice_requestSession_previously_enabled_feature_not_requested.https.html * LayoutTests/http/wpt/webxr/xrDevice_requestSession_previously_enabled_feature_not_requested.https-expected.txt: Added. * LayoutTests/http/wpt/webxr/xrDevice_requestSession_previously_enabled_feature_not_requested.https.html: Added. Test to make sure hands are not returned if the device has hand tracking enabled but the XR session did not request hands. * Source/WebCore/Modules/webxr/WebXRSystem.cpp: (WebCore::WebXRSystem::resolveRequestedFeatures const): Update this logic based on the latest spec. We should not automatically add all previously enabled features to granted but rather check previouslyEnabled to decide whether a feature needs to be added to consentRequired or consentOptional. Collect the lists of required features and optional features requested by the session. (WebCore::WebXRSystem::resolveFeaturePermissions const): Pass the lists of required and optional features requested to the chrome client method for requesting user permission. * Source/WebCore/page/ChromeClient.h: (WebCore::ChromeClient::requestPermissionOnXRSessionFeatures): * Source/WebKit/UIProcess/API/APIUIClient.h: (API::UIClient::requestPermissionOnXRSessionFeatures): * Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add a new version of the requestPermissionForXRSessionOrigin WKUIDelegatePrivate method that takes in the lists of required and optional features requested. * Source/WebKit/UIProcess/Cocoa/UIDelegate.h: * Source/WebKit/UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::requestPermissionOnXRSessionFeatures): Handle the new version of requestPermissionForXRSessionOrigin delegate method and fall back to the old version if the new one is not implemented. * Source/WebKit/UIProcess/XR/PlatformXRCoordinator.h: (WebKit::PlatformXRCoordinator::requestPermissionOnSessionFeatures): Updated to take in the lists of required and optional features requested by the session. * Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp: (WebKit::PlatformXRSystem::requestPermissionOnSessionFeatures): * Source/WebKit/UIProcess/XR/PlatformXRSystem.h: * Source/WebKit/UIProcess/XR/PlatformXRSystem.messages.in: * Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::requestPermissionOnXRSessionFeatures): * Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h: * Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.cpp: (WebKit::PlatformXRSystemProxy::requestPermissionOnSessionFeatures): * Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.h: Canonical link: https://commits.webkit.org/266137@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] de81e9: Switch ARKit from soft linking to weak linking
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: de81e985f47bec8708cade4a5f7dfafd696d3c72 https://github.com/WebKit/WebKit/commit/de81e985f47bec8708cade4a5f7dfafd696d3c72 Author: Ada Chan Date: 2023-03-22 (Wed, 22 Mar 2023) Changed paths: M Source/WebKit/Configurations/WebKit.xcconfig R Source/WebKit/Shared/Cocoa/ARKitSoftLink.h R Source/WebKit/Shared/Cocoa/ARKitSoftLink.mm M Source/WebKit/Shared/Cocoa/WebIconUtilities.mm M Source/WebKit/SourcesCocoa.txt M Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj Log Message: --- Switch ARKit from soft linking to weak linking https://bugs.webkit.org/show_bug.cgi?id=254218 Reviewed by Tim Horton and David Kilzer. - Update linker flags to weak link ARKit - Remove soft linking files for ARKit and stop building/importing them. * Source/WebKit/Configurations/WebKit.xcconfig: * Source/WebKit/Shared/Cocoa/ARKitSoftLink.h: Removed. * Source/WebKit/Shared/Cocoa/ARKitSoftLink.mm: Removed. * Source/WebKit/Shared/Cocoa/WebIconUtilities.mm: * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: Canonical link: https://commits.webkit.org/261980@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c5416b: Revert weak linking ARKit to soft linking
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c5416b19aeaf0845eb5c533a5427304cca59e22c https://github.com/WebKit/WebKit/commit/c5416b19aeaf0845eb5c533a5427304cca59e22c Author: Ada Chan Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M Source/WebKit/Configurations/WebKit.xcconfig A Source/WebKit/Shared/Cocoa/ARKitSoftLink.h A Source/WebKit/Shared/Cocoa/ARKitSoftLink.mm M Source/WebKit/Shared/Cocoa/WebIconUtilities.mm M Source/WebKit/SourcesCocoa.txt M Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj Log Message: --- Revert weak linking ARKit to soft linking https://bugs.webkit.org/show_bug.cgi?id=254366 rdar://107151256 Reviewed by Alexey Proskuryakov. * Source/WebKit/Configurations/WebKit.xcconfig: * Source/WebKit/Shared/Cocoa/ARKitSoftLink.h: Added. * Source/WebKit/Shared/Cocoa/ARKitSoftLink.mm: Added. * Source/WebKit/Shared/Cocoa/WebIconUtilities.mm: * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: Canonical link: https://commits.webkit.org/262046@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ae7074: Remove unneeded entitlement to look up ImageIOXPCS...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ae7074a3be6a0262c860324cc001553c4fde9a56 https://github.com/WebKit/WebKit/commit/ae7074a3be6a0262c860324cc001553c4fde9a56 Author: Ada Chan Date: 2024-10-16 (Wed, 16 Oct 2024) Changed paths: M Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in Log Message: --- Remove unneeded entitlement to look up ImageIOXPCService in model process https://bugs.webkit.org/show_bug.cgi?id=281544 rdar://124085793 Reviewed by Mike Wyrzykowski and Per Arne Vollan. Removing the mach-lookup sandbox rule as access to ImageIOXPCService is no longer needed. * Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in: Canonical link: https://commits.webkit.org/285265@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 05055d: Support setting IBL in WKSRKEntity
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 05055da95c4f2fd33e16ce11393085acc98c0d54 https://github.com/WebKit/WebKit/commit/05055da95c4f2fd33e16ce11393085acc98c0d54 Author: Ada Chan Date: 2024-10-10 (Thu, 10 Oct 2024) Changed paths: M Source/WebKit/WebKitSwift/RealityKit/RKEntity.swift M Source/WebKit/WebKitSwift/RealityKit/RealityKitBridging.h Log Message: --- Support setting IBL in WKSRKEntity https://bugs.webkit.org/show_bug.cgi?id=281185 rdar://137003306 Reviewed by Mike Wyrzykowski. Create a CGImage from the image data, then create a TextureResource from it, and create an EnvironmentResource from that texture resource. Then set up the environment lighting for the model entity with that environment resource via RealityKit ImageBasedLight component. * Source/WebKit/WebKitSwift/RealityKit/RKEntity.swift: (WKSRKEntity.applyIBL(_:)): (WKSRKEntity.removeIBL): * Source/WebKit/WebKitSwift/RealityKit/RealityKitBridging.h: Canonical link: https://commits.webkit.org/284966@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 09cf21: Fix internal visionOS build
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 09cf218413f8569d699afde2de3149cce597437e https://github.com/WebKit/WebKit/commit/09cf218413f8569d699afde2de3149cce597437e Author: Ada Chan Date: 2024-10-30 (Wed, 30 Oct 2024) Changed paths: M Source/WebCore/PlatformMac.cmake M Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations M Source/WebCore/SourcesCocoa.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/platform/graphics/cocoa/ANGLEUtilitiesCocoa.h M Source/WebCore/platform/graphics/cocoa/ANGLEUtilitiesCocoa.mm R Source/WebCore/platform/graphics/cv/GraphicsContextGLCVCocoa.cpp M Source/WebCore/platform/graphics/cv/GraphicsContextGLCVCocoa.mm Log Message: --- Fix internal visionOS build https://bugs.webkit.org/show_bug.cgi?id=282333 rdar://138919678 Reviewed by Mike Wyrzykowski. Switch OBJC_PROTOCOL to use @protocol in ANGLEUtilitiesCocoa. Move the contents of GraphicsContextGLCVCocoa.cpp to the mm file as it includes ANGLEUtilitiesCocoa.h. * Source/WebCore/SourcesCocoa.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/platform/graphics/cocoa/ANGLEUtilitiesCocoa.h: * Source/WebCore/platform/graphics/cocoa/ANGLEUtilitiesCocoa.mm: (WebCore::newRasterizationRateMap): (WebCore::newSharedEventWithMachPort): (WebCore::newSharedEvent): * Source/WebCore/platform/graphics/cv/GraphicsContextGLCVCocoa.cpp: Removed. * Source/WebCore/platform/graphics/cv/GraphicsContextGLCVCocoa.mm: (WebCore::pixelRangeFromPixelFormat): (WebCore::transferFunctionFromString): (WebCore::GLfloatColor::GLfloatColor): (WebCore::GLfloatColor::abs): (WebCore::GLfloatColor::isApproximatelyEqualTo const): (WebCore::YCbCrMatrix::operator const GLfloat* const): (WebCore::YCbCrMatrix::YCbCrMatrix): (WebCore::YCbCrMatrix::operator* const): (WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction): (WebCore::GraphicsContextGLCVCocoa::create): (WebCore::GraphicsContextGLCVCocoa::~GraphicsContextGLCVCocoa): (WebCore::GraphicsContextGLCVCocoa::GraphicsContextGLCVCocoa): (WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture): (WebCore::GraphicsContextGLCVCocoa::invalidateKnownTextureContent): Canonical link: https://commits.webkit.org/285923@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d0b1b5: [WebXR] Use minimum near clip plane distance from ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d0b1b549a5d4c98dacf06d52b880e63740d870c7 https://github.com/WebKit/WebKit/commit/d0b1b549a5d4c98dacf06d52b880e63740d870c7 Author: Ada Chan Date: 2024-10-31 (Thu, 31 Oct 2024) Changed paths: M Source/WebCore/Modules/webxr/WebXRSession.cpp M Source/WebCore/platform/xr/PlatformXR.h M Source/WebKit/Shared/XR/XRDeviceInfo.h M Source/WebKit/Shared/XR/XRDeviceProxy.cpp M Source/WebKit/Shared/XR/XRDeviceProxy.h M Source/WebKit/Shared/XR/XRSystem.serialization.in Log Message: --- [WebXR] Use minimum near clip plane distance from the system for clamping https://bugs.webkit.org/show_bug.cgi?id=282321 rdar://138811538 Reviewed by Mike Wyrzykowski. Instead of hardcoding the minimum near clip plane distance, allow the system to pass that value via XRDeviceInfo. WebXRSession will get that value from PlatformXR::Device::minimumNearClipPlane(). * Source/WebCore/Modules/webxr/WebXRSession.cpp: (WebCore::WebXRSession::WebXRSession): (WebCore::WebXRSession::applyPendingRenderState): Set the PlatformXR::RequestData based on the depth range from m_activeRenderState after the values are clamped. * Source/WebCore/platform/xr/PlatformXR.h: (PlatformXR::Device::minimumNearClipPlane const): * Source/WebKit/Shared/XR/XRDeviceInfo.h: * Source/WebKit/Shared/XR/XRDeviceProxy.cpp: (WebKit::XRDeviceProxy::XRDeviceProxy): * Source/WebKit/Shared/XR/XRDeviceProxy.h: * Source/WebKit/Shared/XR/XRSystem.serialization.in: Canonical link: https://commits.webkit.org/285955@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 24abd2: Clean up ModelProcessModelPlayerProxy properly in ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 24abd21e0c1118fa539b2fbbd45796c110ec01da https://github.com/WebKit/WebKit/commit/24abd21e0c1118fa539b2fbbd45796c110ec01da Author: Ada Chan Date: 2024-09-21 (Sat, 21 Sep 2024) Changed paths: M Source/WebCore/Modules/model-element/HTMLModelElement.cpp M Source/WebCore/Modules/model-element/HTMLModelElement.h M Source/WebCore/Modules/model-element/ModelPlayer.h M Source/WebCore/Modules/model-element/ModelPlayerProvider.h M Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.cpp M Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.h M Source/WebCore/Modules/model-element/dummy/DummyModelPlayerProvider.cpp M Source/WebCore/Modules/model-element/dummy/DummyModelPlayerProvider.h M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm M Source/WebKit/ModelProcess/cocoa/WKModelProcessModelLayer.mm M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h M Source/WebKit/WebProcess/Model/ModelProcessModelPlayerManager.cpp M Source/WebKit/WebProcess/Model/ModelProcessModelPlayerManager.h M Source/WebKit/WebProcess/Model/WebModelPlayerProvider.cpp M Source/WebKit/WebProcess/Model/WebModelPlayerProvider.h Log Message: --- Clean up ModelProcessModelPlayerProxy properly in the model process https://bugs.webkit.org/show_bug.cgi?id=280128 rdar://136424138 Reviewed by Mike Wyrzykowski. There are two reasons why ModelProcessModelPlayerProxy can’t get released properly: - ModelProcessModelPlayerManagerProxy never removes it from the m_proxies hashmap - There’s a strong reference cycle between ModelProcessModelPlayerProxy and WKModelProcessModelLayer When the HTMLModelElement is done with the ModelProcessModelPlayer, we need to notify the model process to clean up the corresponding ModelProcessModelPlayerProxy. HTMLModelElement::deleteModelPlayer() is added to handle that cleanup. It calls ModelPlayerProvider::deleteModelPlayer(), which for the model process case, calls ModelProcessModelPlayerManager::deleteModelProcessModelPlayer(). That cleans up the model player on the web process side and sends a message to the model process to clean up the corresponding ModelProcessModelPlayerProxy. ModelProcessModelPlayerProxy::invalidate() then sets the WKModelProcessModelLayer's player to be null to break the reference cycle. * Source/WebCore/Modules/model-element/HTMLModelElement.cpp: (WebCore::HTMLModelElement::setSourceURL): (WebCore::HTMLModelElement::deleteModelPlayer): * Source/WebCore/Modules/model-element/HTMLModelElement.h: * Source/WebCore/Modules/model-element/ModelPlayer.h: * Source/WebCore/Modules/model-element/ModelPlayerProvider.h: * Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.cpp: (WebCore::DummyModelPlayer::identifier const): * Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.h: * Source/WebCore/Modules/model-element/dummy/DummyModelPlayerProvider.cpp: (WebCore::DummyModelPlayerProvider::deleteModelPlayer): * Source/WebCore/Modules/model-element/dummy/DummyModelPlayerProvider.h: * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h: * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm: (WebKit::ModelProcessModelPlayerProxy::invalidate): * Source/WebKit/ModelProcess/cocoa/WKModelProcessModelLayer.mm: (-[WKModelProcessModelLayer setOpacity:]): (-[WKModelProcessModelLayer layoutSublayers]): * Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h: (WebKit::ModelProcessModelPlayer::identifier): Deleted. * Source/WebKit/WebProcess/Model/ModelProcessModelPlayerManager.cpp: (WebKit::ModelProcessModelPlayerManager::deleteModelProcessModelPlayer): * Source/WebKit/WebProcess/Model/ModelProcessModelPlayerManager.h: * Source/WebKit/WebProcess/Model/WebModelPlayerProvider.cpp: (WebKit::WebModelPlayerProvider::deleteModelPlayer): * Source/WebKit/WebProcess/Model/WebModelPlayerProvider.h: Canonical link: https://commits.webkit.org/284048@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a27c02: Use SharedPreferencesForWebProcess in Model proces...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a27c02d607ead123026e5b83e6aa07497c632d58 https://github.com/WebKit/WebKit/commit/a27c02d607ead123026e5b83e6aa07497c632d58 Author: Ada Chan Date: 2024-09-25 (Wed, 25 Sep 2024) Changed paths: M Source/WebKit/ModelProcess/ModelConnectionToWebProcess.cpp M Source/WebKit/ModelProcess/ModelConnectionToWebProcess.h M Source/WebKit/ModelProcess/ModelConnectionToWebProcess.messages.in M Source/WebKit/ModelProcess/ModelProcess.cpp M Source/WebKit/ModelProcess/ModelProcess.h M Source/WebKit/ModelProcess/ModelProcess.messages.in M Source/WebKit/ModelProcess/ModelProcessModelPlayerManagerProxy.cpp M Source/WebKit/ModelProcess/ModelProcessModelPlayerManagerProxy.h M Source/WebKit/ModelProcess/ModelProcessModelPlayerManagerProxy.messages.in M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.messages.in M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm M Source/WebKit/Shared/ModelProcessConnectionParameters.h M Source/WebKit/Shared/ModelProcessConnectionParameters.serialization.in M Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp M Source/WebKit/UIProcess/Model/ModelProcessProxy.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h Log Message: --- Use SharedPreferencesForWebProcess in Model process and filter IPC messages by model element feature flag https://bugs.webkit.org/show_bug.cgi?id=280277 rdar://123263852 Reviewed by Ryosuke Niwa and Mike Wyrzykowski. Have ModelConnectionToWebProcess store a SharedPreferencesForWebProcess similar to how it's done in GPUConnectionToWebProcess. Update WebPageProxy::preferencesDidChange to also notify the model process of new shared preferences changes. Use EnabledBy in model process message receivers to filter messages based on the model element runtime feature flag. * Source/WebKit/ModelProcess/ModelConnectionToWebProcess.cpp: (WebKit::m_sharedPreferencesForWebProcess): (WebKit::m_presentingApplicationAuditToken): Deleted. * Source/WebKit/ModelProcess/ModelConnectionToWebProcess.h: (WebKit::ModelConnectionToWebProcess::sharedPreferencesForWebProcess const): (WebKit::ModelConnectionToWebProcess::updateSharedPreferencesForWebProcess): * Source/WebKit/ModelProcess/ModelConnectionToWebProcess.messages.in: * Source/WebKit/ModelProcess/ModelProcess.cpp: (WebKit::ModelProcess::sharedPreferencesForWebProcessDidChange): * Source/WebKit/ModelProcess/ModelProcess.h: * Source/WebKit/ModelProcess/ModelProcess.messages.in: * Source/WebKit/ModelProcess/ModelProcessModelPlayerManagerProxy.cpp: (WebKit::ModelProcessModelPlayerManagerProxy::sharedPreferencesForWebProcess const): * Source/WebKit/ModelProcess/ModelProcessModelPlayerManagerProxy.h: * Source/WebKit/ModelProcess/ModelProcessModelPlayerManagerProxy.messages.in: * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h: * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.messages.in: * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm: (WebKit::ModelProcessModelPlayerProxy::sharedPreferencesForWebProcess const): * Source/WebKit/Shared/ModelProcessConnectionParameters.h: * Source/WebKit/Shared/ModelProcessConnectionParameters.serialization.in: * Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp: (WebKit::ModelProcessProxy::sharedPreferencesForWebProcessDidChange): * Source/WebKit/UIProcess/Model/ModelProcessProxy.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::preferencesDidChange): * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createModelProcessConnection): (WebKit::WebProcessProxy::didSyncSharedPreferencesForWebProcessWithNetworkProcess): (WebKit::WebProcessProxy::didSyncSharedPreferencesForWebProcessWithGPUProcess): (WebKit::WebProcessProxy::didSyncSharedPreferencesForWebProcessWithModelProcess): * Source/WebKit/UIProcess/WebProcessProxy.h: Canonical link: https://commits.webkit.org/284246@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 845d49: Support animations in Model element with model pro...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 845d49cbfca7509085faa9620bd1b942a6ff709e https://github.com/WebKit/WebKit/commit/845d49cbfca7509085faa9620bd1b942a6ff709e Author: Ada Chan Date: 2024-09-27 (Fri, 27 Sep 2024) Changed paths: A LayoutTests/model-element/model-element-animations-current-time-expected.txt A LayoutTests/model-element/model-element-animations-current-time.html A LayoutTests/model-element/model-element-animations-initial-values-expected.txt A LayoutTests/model-element/model-element-animations-initial-values.html A LayoutTests/model-element/model-element-animations-loop-expected.txt A LayoutTests/model-element/model-element-animations-loop.html A LayoutTests/model-element/model-element-animations-playback-expected.txt A LayoutTests/model-element/model-element-animations-playback.html A LayoutTests/model-element/model-element-animations-replace-sources-expected.txt A LayoutTests/model-element/model-element-animations-replace-sources.html M LayoutTests/model-element/resources/model-utils.js A LayoutTests/model-element/resources/stopwatch-30s.usdz A LayoutTests/model-element/resources/stopwatch-60s.usdz M Source/WebCore/Modules/model-element/HTMLModelElement.cpp M Source/WebCore/Modules/model-element/HTMLModelElement.h M Source/WebCore/Modules/model-element/HTMLModelElement.idl M Source/WebCore/Modules/model-element/ModelPlayer.cpp M Source/WebCore/Modules/model-element/ModelPlayer.h M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.messages.in M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm M Source/WebKit/WebKitSwift/RealityKit/RKEntity.swift M Source/WebKit/WebKitSwift/RealityKit/RealityKitBridging.h M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.messages.in Log Message: --- Support animations in Model element with model process https://bugs.webkit.org/show_bug.cgi?id=280312 rdar://114258826 Reviewed by Mike Wyrzykowski. Initial implementation of animations API that is based on the latest explainer where animation properties follow more closely to similar ones in the media element. These API are implemented for the model process only. This initial implementation is based on a single animation track (first animation found in the model). Properties supported are: autoplay, loop, playbackRate, duration, paused, currentTime. Methods supported are play() and pause(). * LayoutTests/model-element/model-element-animations-current-time-expected.txt: Added. * LayoutTests/model-element/model-element-animations-current-time.html: Added. * LayoutTests/model-element/model-element-animations-initial-values-expected.txt: Added. * LayoutTests/model-element/model-element-animations-initial-values.html: Added. * LayoutTests/model-element/model-element-animations-loop-expected.txt: Added. * LayoutTests/model-element/model-element-animations-loop.html: Added. * LayoutTests/model-element/model-element-animations-playback-expected.txt: Added. * LayoutTests/model-element/model-element-animations-playback.html: Added. * LayoutTests/model-element/model-element-animations-replace-sources-expected.txt: Added. * LayoutTests/model-element/model-element-animations-replace-sources.html: Added. * LayoutTests/model-element/resources/model-utils.js: (sleepForSeconds): * LayoutTests/model-element/resources/stopwatch-30s.usdz: Added. * LayoutTests/model-element/resources/stopwatch-60s.usdz: Added. * Source/WebCore/Modules/model-element/HTMLModelElement.cpp: (WebCore::HTMLModelElement::createModelPlayer): Set up the model player with the initial autoplay, loop, and playbackRate values. (WebCore::HTMLModelElement::attributeChanged): (WebCore::HTMLModelElement::setPlaybackRate): (WebCore::HTMLModelElement::duration const): (WebCore::HTMLModelElement::paused const): (WebCore::HTMLModelElement::play): (WebCore::HTMLModelElement::pause): (WebCore::HTMLModelElement::setPaused): (WebCore::HTMLModelElement::autoplay const): (WebCore::HTMLModelElement::updateAutoplay): (WebCore::HTMLModelElement::loop const): (WebCore::HTMLModelElement::updateLoop): (WebCore::HTMLModelElement::currentTime const): (WebCore::HTMLModelElement::setCurrentTime): * Source/WebCore/Modules/model-element/HTMLModelElement.h: * Source/WebCore/Modules/model-element/HTMLModelElement.idl: * Source/WebCore/Modules/model-element/ModelPlayer.cpp: (WebCore::ModelPlayer::setAutoplay): (WebCore::ModelPlayer::setLoop): (WebCore::ModelPlayer::setPlaybackRate): (WebCore::ModelPlayer::duration const): (WebCore::ModelPlayer::paused const): (WebCore::ModelPlayer::setPaused): (WebCore::ModelPlayer::currentTime const): (WebCore::ModelPlayer::setCurrentTime): * Source
[webkit-changes] [WebKit/WebKit] 755b4e: Update some model layout tests to work reliably wh...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 755b4edbfbdda72d5538d7ffea4e9f78e57eca3e https://github.com/WebKit/WebKit/commit/755b4edbfbdda72d5538d7ffea4e9f78e57eca3e Author: Ada Chan Date: 2024-09-20 (Fri, 20 Sep 2024) Changed paths: M LayoutTests/model-element/model-element-contents-layer-updates-expected.txt M LayoutTests/model-element/model-element-contents-layer-updates-with-clipping-expected.txt M LayoutTests/model-element/model-element-contents-layer-updates-with-clipping.html M LayoutTests/model-element/model-element-contents-layer-updates.html M LayoutTests/model-element/model-element-graphics-layers-opacity-expected.txt M LayoutTests/model-element/model-element-graphics-layers-opacity.html M LayoutTests/model-element/model-element-graphics-layers.html Log Message: --- Update some model layout tests to work reliably when model process is enabled https://bugs.webkit.org/show_bug.cgi?id=280042 rdar://136342920 Reviewed by Mike Wyrzykowski. Explicitly enable model process for these tests that output layer content. Update the tests such that we check the layer tree after the model has been loaded in the model process via the model.ready API. Update the expected layer tree to include hosted model layers. * LayoutTests/model-element/model-element-contents-layer-updates-expected.txt: * LayoutTests/model-element/model-element-contents-layer-updates-with-clipping-expected.txt: * LayoutTests/model-element/model-element-contents-layer-updates-with-clipping.html: * LayoutTests/model-element/model-element-contents-layer-updates.html: * LayoutTests/model-element/model-element-graphics-layers-opacity-expected.txt: * LayoutTests/model-element/model-element-graphics-layers-opacity.html: * LayoutTests/model-element/model-element-graphics-layers.html: Canonical link: https://commits.webkit.org/283995@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 38ed09: Add more runtime checks around IPC endpoints assoc...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 38ed098deae6a1a434fb82f44dfa34793f938c55 https://github.com/WebKit/WebKit/commit/38ed098deae6a1a434fb82f44dfa34793f938c55 Author: Ada Chan Date: 2024-09-30 (Mon, 30 Sep 2024) Changed paths: M Source/WTF/wtf/PlatformEnableCocoa.h M Source/WebKit/ModelProcess/ModelConnectionToWebProcess.messages.in M Source/WebKit/ModelProcess/ModelProcessModelPlayerManagerProxy.messages.in M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.messages.in M Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/UIProcess/WebProcessPool.h M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.messages.in Log Message: --- Add more runtime checks around IPC endpoints associated with the model process https://bugs.webkit.org/show_bug.cgi?id=280502 rdar://123263852 Reviewed by Ryosuke Niwa and Sihui Liu. - Update the EnabledBy checks for endpoints in the model process to include checking the model process runtime feature flag - Add some MESSAGE_CHECKs in ModelProcessProxy - Assert that the model element and model process features are enabled when WebProcessPool::ensureProtectedModelProcess() is called - Add EnabledIf checks in ModelProcessModelPlayer to make sure the model element and model process features are enabled * Source/WTF/wtf/PlatformEnableCocoa.h: * Source/WebKit/ModelProcess/ModelConnectionToWebProcess.messages.in: * Source/WebKit/ModelProcess/ModelProcessModelPlayerManagerProxy.messages.in: * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.messages.in: * Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp: (WebKit::ModelProcessProxy::terminateWebProcess): (WebKit::ModelProcessProxy::didCreateContextForVisibilityPropagation): * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::ensureProtectedModelProcess): (WebKit::WebProcessPool::createModelProcessConnection): * Source/WebKit/UIProcess/WebProcessPool.h: * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createModelProcessConnection): * Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp: (WebKit::ModelProcessModelPlayer::modelProcessEnabled const): * Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h: * Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.messages.in: Canonical link: https://commits.webkit.org/284455@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 58a1b4: [Model Element] Move the portal to the UI process
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 58a1b48dcfe4906635ffeb5acd043d5cbe43bca2 https://github.com/WebKit/WebKit/commit/58a1b48dcfe4906635ffeb5acd043d5cbe43bca2 Author: Ada Chan Date: 2025-02-05 (Wed, 05 Feb 2025) Changed paths: M Source/WebCore/Modules/model-element/HTMLModelElement.cpp M Source/WebCore/Modules/model-element/HTMLModelElement.h M Source/WebCore/Modules/model-element/ModelPlayer.cpp M Source/WebCore/Modules/model-element/ModelPlayer.h M Source/WebCore/platform/graphics/ModelContext.cpp M Source/WebCore/platform/graphics/ModelContext.h M Source/WebCore/rendering/RenderLayerBacking.cpp M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.messages.in M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in M Source/WebKit/UIProcess/Model/ModelPresentationManagerProxy.mm M Source/WebKit/UIProcess/ios/WKPageHostedModelView.h M Source/WebKit/UIProcess/ios/WKPageHostedModelView.mm M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h Log Message: --- [Model Element] Move the portal to the UI process https://bugs.webkit.org/show_bug.cgi?id=287000 rdar://144069542 Reviewed by Mike Wyrzykowski. By moving the portal entity and the model container entity to the UI process, the Model process will need to host just the model entity. This hierarchy change is needed for fixing the model drag preview in a future patch, where we can pass the _UIRemoteView hosting just the model (without the portal) to create a UITargetedDragPreview. This fix changes WKPageHostedModelView such that its layer is now the separated layer with an entity that represents the portal. The container entity in the model process that had clipping enabled has also been moved to WKPageHostedModelView in the UI process. The container UIView is a subview of WKPageHostedModelView. This also means we need to handle updates to the background color and noportal attribute in WKPageHostedModelView. The ModelContext has been extended to include the background color, whether portal should be disabled, and the bounds of the element. * Source/WebCore/Modules/model-element/HTMLModelElement.cpp: (WebCore::HTMLModelElement::modelContext const): Fill in the new data members. (WebCore::HTMLModelElement::updateHasPortal): Update the renderer so the WKPageHostedModelView can be updated with the new noportal attribute value. (WebCore::HTMLModelElement::applyBackgroundColor): Deleted. * Source/WebCore/Modules/model-element/HTMLModelElement.h: * Source/WebCore/Modules/model-element/ModelPlayer.cpp: (WebCore::ModelPlayer::setBackgroundColor): Deleted. * Source/WebCore/Modules/model-element/ModelPlayer.h: * Source/WebCore/platform/graphics/ModelContext.cpp: (WebCore::ModelContext::create): (WebCore::ModelContext::ModelContext): * Source/WebCore/platform/graphics/ModelContext.h: * Source/WebCore/rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateConfiguration): Set the current background color on the ModelContext before passing it to m_graphicsLayer. * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h: * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.messages.in: * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm: (WebKit::ModelProcessModelPlayerProxy::createLayer): (WebKit::ModelProcessModelPlayerProxy::didFinishLoading): Now that the root layer no longer represents the portal, the entity should have tracked rather than separated state. Remove the clipping component as that is handled on the UI process side. (WebKit::ModelProcessModelPlayerProxy::setHasPortal): (WebKit::ModelProcessModelPlayerProxy::updateBackgroundColor): Deleted. (WebKit::ModelProcessModelPlayerProxy::updatePortalAndClipping): Deleted. (WebKit::ModelProcessModelPlayerProxy::setBackgroundColor): Deleted. * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: * Source/WebKit/UIProcess/Model/ModelPresentationManagerProxy.mm: (WebKit::ModelPresentationManagerProxy::setUpModelView): Update the WKPageHostedModelView's frame, the latest DisablePortal value, and the latest background color. * Source/WebKit/UIProcess/ios/WKPageHostedModelView.h: * Source/WebKit/UIProcess/ios/WKPageHostedModelView.mm: (-[WKPageHostedModelView init]): Set up the root (portal) -> container view/entity hierarchy. Moved the clipping logic from ModelProcessModelPlayerProxy to here. (-[WKPageHostedModelView dealloc]): Added cleanup code similar to 75ec68cfc5a707e4ec0d559131519403bd5c744c. (-[WKPageHostedModelView setRemoteModelView:]): Add the remote model view as its subview. Update its size. (-[WKPageHostedModelView setShouldDisablePortal:]): Update a couple of separatedOptions flags related to
[webkit-changes] [WebKit/WebKit] 0cb87f: Add a debug runtime user default for testing a mor...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0cb87fca1d7416451e09d29938338a587a3622c4 https://github.com/WebKit/WebKit/commit/0cb87fca1d7416451e09d29938338a587a3622c4 Author: Ada Chan Date: 2025-02-11 (Tue, 11 Feb 2025) Changed paths: M Source/WebKit/ModelProcess/ModelProcess.cpp M Source/WebKit/ModelProcess/ModelProcessCreationParameters.h M Source/WebKit/ModelProcess/ModelProcessCreationParameters.serialization.in M Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp M Source/WebKit/UIProcess/Model/ModelProcessProxy.h M Source/WebKit/UIProcess/Model/cocoa/ModelProcessProxyCocoa.mm Log Message: --- Add a debug runtime user default for testing a more restrictive rendering mode in the model process https://bugs.webkit.org/show_bug.cgi?id=287470 rdar://144568001 Reviewed by Mike Wyrzykowski. Add a debug runtime flag to test a more restrictive rendering mode in the model process. The value of the flag is passed down to the model process via the ModelProcessCreationParameters. * Source/WebKit/ModelProcess/ModelProcess.cpp: (WebKit::ModelProcess::initializeModelProcess): * Source/WebKit/ModelProcess/ModelProcessCreationParameters.h: * Source/WebKit/ModelProcess/ModelProcessCreationParameters.serialization.in: * Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp: (WebKit::ModelProcessProxy::ModelProcessProxy): * Source/WebKit/UIProcess/Model/ModelProcessProxy.h: * Source/WebKit/UIProcess/Model/cocoa/ModelProcessProxyCocoa.mm: (WebKit::ModelProcessProxy::updateModelProcessCreationParameters): Canonical link: https://commits.webkit.org/290223@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] fce7a7: Introduce ModelPresentationManagerProxy that manag...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fce7a7280e2c1e0812936efc57be17d806d49591 https://github.com/WebKit/WebKit/commit/fce7a7280e2c1e0812936efc57be17d806d49591 Author: Ada Chan Date: 2024-12-19 (Thu, 19 Dec 2024) Changed paths: M Source/WebCore/Modules/model-element/HTMLModelElement.cpp M Source/WebCore/Modules/model-element/HTMLModelElement.h M Source/WebCore/Modules/model-element/ModelPlayerClient.h M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/platform/graphics/GraphicsLayer.h A Source/WebCore/platform/graphics/ModelContext.cpp A Source/WebCore/platform/graphics/ModelContext.h M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h M Source/WebCore/rendering/RenderLayerBacking.cpp M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in M Source/WebKit/SourcesCocoa.txt A Source/WebKit/UIProcess/Model/ModelPresentationManagerProxy.h A Source/WebKit/UIProcess/Model/ModelPresentationManagerProxy.mm M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm M Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebPageProxyInternals.h A Source/WebKit/UIProcess/ios/WKPageHostedModelView.h A Source/WebKit/UIProcess/ios/WKPageHostedModelView.mm M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm M Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.h M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.h M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.mm M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.h M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm Log Message: --- Introduce ModelPresentationManagerProxy that manages the remote model views on the page https://bugs.webkit.org/show_bug.cgi?id=284649 rdar://141450845 Reviewed by Simon Fraser. Add a new ModelPresentationManagerProxy to manage the presentations of remotely hosted model contents on the page. ModelPresentationManagerProxy has a map of model layer identifiers to ModelPresentation objects, which contains info about the model being hosted (ModelContext), the remote view hosting the model layer, and the new WKPageHostedModelView which is a WKCompositingView subclass used in the layer tree node for the model contents. ModelContext is passed down with the LayerCreationProperties. When setting up the view for the model contents layer tree node, instead of creating a new WKUIRemoteView with the layer hosting context ID, it’ll ask ModelPresentationManagerProxy for the view. * Source/WebCore/Modules/model-element/HTMLModelElement.cpp: (WebCore::HTMLModelElement::graphicsLayer const): (WebCore::HTMLModelElement::layerID const): Helper method to get the PlatformLayerID of the primary layer of the model element. (WebCore::HTMLModelElement::modelContentsLayerID const): Renamed from platformLayerID() so it's clear which layer it's for. (WebCore::HTMLModelElement::modelContext const): (WebCore::HTMLModelElement::platformLayerID): Deleted. * Source/WebCore/Modules/model-element/HTMLModelElement.h: * Source/WebCore/Modules/model-element/ModelPlayerClient.h: * Source/WebCore/Sources.txt * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/platform/graphics/GraphicsLayer.h: (WebCore::GraphicsLayer::setContentsToModelContext): Make this a method dedicated for setting model contents which takes in a ModelContext. (WebCore::GraphicsLayer::setContentsToRemotePlatformContext): Deleted. * Source/WebCore/platform/graphics/ModelContext.cpp * Source/WebCore/platform/graphics/ModelContext.h * Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::createPlatformCALayer): (WebCore::GraphicsLayerCA::setContentsToModelContext): (WebCore::GraphicsLayerCA::setContentsToRemotePlatformContext): Deleted. * Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h: * Source/WebCore/platform/mediarecorder/MediaRecorderPrivateEncoder.cpp * Source/WebCore
[webkit-changes] [WebKit/WebKit] 8746ea: [visionOS] Move shared simulation connection from ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8746ea87f06c2e65ea34055e95bcb7cbfa1ea59e https://github.com/WebKit/WebKit/commit/8746ea87f06c2e65ea34055e95bcb7cbfa1ea59e Author: Ada Chan Date: 2025-01-28 (Tue, 28 Jan 2025) Changed paths: M Source/WebKit/Configurations/GPUService.xcconfig M Source/WebKit/GPUProcess/GPUProcess.h M Source/WebKit/GPUProcess/GPUProcess.messages.in M Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm M Source/WebKit/ModelProcess/ModelProcess.cpp M Source/WebKit/ModelProcess/ModelProcess.h M Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in M Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in A Source/WebKit/Resources/ios/GPUService-visionOS-simulator.entitlements M Source/WebKit/Resources/ios/ModelService-embedded-simulator.entitlements M Source/WebKit/Scripts/process-entitlements.sh M Source/WebKit/SourcesCocoa.txt M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h M Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp M Source/WebKit/UIProcess/Model/ModelProcessProxy.h M Source/WebKit/UIProcess/Model/ModelProcessProxy.messages.in A Source/WebKit/UIProcess/Model/cocoa/ModelProcessProxyCocoa.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj Log Message: --- [visionOS] Move shared simulation connection from the Model process to the GPU process https://bugs.webkit.org/show_bug.cgi?id=286366 rdar://138447079 Reviewed by Per Arne Vollan. Instead of connecting to shared simulation as part of WKREEngine initialization in the Model process, the Model process will send a message to the UI process to request for that connection. UI process delegates that request to the GPU process and returns the resulting connection back to the Model process. Sandbox rules and entitlements related to the shared simulation connection have been removed from the Model process, and added to the GPU process instead (only for visionOS). * Source/WebKit/Configurations/GPUService.xcconfig: Update the GPU process simulator entitlements for visionOS * Source/WebKit/GPUProcess/GPUProcess.h: * Source/WebKit/GPUProcess/GPUProcess.messages.in: Add a new message for handling shared simulation connection * Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm: (WebKit::GPUProcess::requestSharedSimulationConnection): Get the shared simulation connection via WKSharedSimulationConnectionHelper using the model process' audit token. * Source/WebKit/ModelProcess/ModelProcess.cpp: (WebKit::ModelProcess::createModelConnectionToWebProcess): Initialize the WKREEngine with a function to get the shared simulation connection via a message to the UI process. (WebKit::ModelProcess::requestSharedSimulationConnection): * Source/WebKit/ModelProcess/ModelProcess.h: * Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in: A couple of additions to the GPU process sandbox in order to connect to shared simulation and to make shareable file handles. * Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in: Remove the mach-lookup rule needed to connect to shared simulation. * Source/WebKit/Resources/ios/GPUService-visionOS-simulator.entitlements: Copied from Source/WebKit/Resources/ios/ModelService-embedded-simulator.entitlements. * Source/WebKit/Resources/ios/ModelService-embedded-simulator.entitlements: * Source/WebKit/Scripts/process-entitlements.sh: * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::requestSharedSimulationConnection): Send the shared simulation connection request to the GPU process * Source/WebKit/UIProcess/GPU/GPUProcessProxy.h: * Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp: (WebKit::ModelProcessProxy::processWillShutDown): Reset m_didInitializeSharedSimulationConnection to false. * Source/WebKit/UIProcess/Model/ModelProcessProxy.h: * Source/WebKit/UIProcess/Model/ModelProcessProxy.messages.in: * Source/WebKit/UIProcess/Model/cocoa/ModelProcessProxyCocoa.mm: Added. (WebKit::ModelProcessProxy::requestSharedSimulationConnection): Add message checks to make sure the web content process that creates the models to be loaded by the Model process have the expected model related preferences set, and that this is the first time this Model process is requesting for the connection. If all the checks pass, delegate the connection request to GPUProcessProxy. * Source/WebKit/WebKit.xcodeproj/project.pbxproj: Canonical link: https://commits.webkit.org/289447@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c94b78: Update the Model Process sandbox such that it cont...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c94b781ebf228be329d2ed062a6a68f6bd969f79 https://github.com/WebKit/WebKit/commit/c94b781ebf228be329d2ed062a6a68f6bd969f79 Author: Ada Chan Date: 2025-01-16 (Thu, 16 Jan 2025) Changed paths: M Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in Log Message: --- Update the Model Process sandbox such that it continues to function after setting process launch state https://bugs.webkit.org/show_bug.cgi?id=285912 rdar://124142927 Reviewed by Per Arne Vollan. Model Process' sandbox is based on the Web Content Process sandbox which uses a sandbox state to restrict the sandbox further after process has launched. We need to continue allowing a couple of mach messages after that state is set in the Model Process in the meantime until another radar has been addressed. * Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in: Canonical link: https://commits.webkit.org/289014@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] f9d50c: Adopt PAC entitlement to assign shared region ID f...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f9d50c1cd1874e0e1c9f39ade66c1883735077cf https://github.com/WebKit/WebKit/commit/f9d50c1cd1874e0e1c9f39ade66c1883735077cf Author: Ada Chan Date: 2025-01-09 (Thu, 09 Jan 2025) Changed paths: M Source/WebKit/Scripts/process-entitlements.sh Log Message: --- Adopt PAC entitlement to assign shared region ID for the model process https://bugs.webkit.org/show_bug.cgi?id=285658 rdar://122350854 Reviewed by Per Arne Vollan, Chris Dumez, and Geoffrey Garen. * Source/WebKit/Scripts/process-entitlements.sh: Canonical link: https://commits.webkit.org/288667@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 676b1c: [visionOS] Fix the drag preview of the ele...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 676b1c75b77ea731918213ca6853ff55aaccec61 https://github.com/WebKit/WebKit/commit/676b1c75b77ea731918213ca6853ff55aaccec61 Author: Ada Chan Date: 2025-02-14 (Fri, 14 Feb 2025) Changed paths: M Source/WebCore/Modules/model-element/HTMLModelElement.h M Source/WebCore/page/DragController.cpp M Source/WebCore/platform/DragItem.h M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.h M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm M Source/WebKit/UIProcess/Model/ModelPresentationManagerProxy.h M Source/WebKit/UIProcess/Model/ModelPresentationManagerProxy.mm M Source/WebKit/UIProcess/ios/DragDropInteractionState.h M Source/WebKit/UIProcess/ios/DragDropInteractionState.mm M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm M Source/WebKit/UIProcess/ios/WKPageHostedModelView.mm M Tools/TestRunnerShared/spi/UIKitSPIForTesting.h M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj A Tools/TestWebKitAPI/Tests/WebKit/simple-model-page.html M Tools/TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm M Tools/TestWebKitAPI/cocoa/DragAndDropSimulator.h M Tools/TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm Log Message: --- [visionOS] Fix the drag preview of the element https://bugs.webkit.org/show_bug.cgi?id=287525 rdar://141165213 Reviewed by Wenson Hsieh and Abrar Rahman Protyasha. For UITargetedDragPreview to capture the snapshot of a view with entity-based content properly, we need to pass the _UIRemoteView hosting the model content directly when constructing the UITargetedDragPreview. To do that, we need to pass the model element’s PlatformLayerIdentifier in the DragItem, so we can use it to retrieve the _UIRemoteView hosting the model entity from ModelPresentationManagerProxy in the UI process to stage the drag session with. In DragDropInteractionState::createDragPreviewInternal(), if the drag preview content is the _UIRemoteView rather than an image, create the UITargetedDragPreview with that view directly. Handle the edge case where the model element is removed while it’s being dragged by adding it to the WKContentView’s drag previews container view. * Source/WebCore/Modules/model-element/HTMLModelElement.h: * Source/WebCore/page/DragController.cpp: (WebCore::DragController::doSystemDrag): If the dragged element is an HTMLModelElement, save off its PlatformLayerIdentifier in the DragItem. * Source/WebCore/platform/DragItem.h: Include the model element’s PlatformLayerIdentifier in the DragItem struct. * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: * Source/WebKit/UIProcess/API/ios/WKWebViewIOS.h: * Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _willInvalidateDraggedModelWithContainerView:]): * Source/WebKit/UIProcess/Model/ModelPresentationManagerProxy.h: * Source/WebKit/UIProcess/Model/ModelPresentationManagerProxy.mm: (WebKit::ModelPresentationManagerProxy::startDragForModel): Add the dragged model’s layer identifier to m_activelyDraggedModelLayerIDs. Return the _UIRemoteView hosting the model entity. (WebKit::ModelPresentationManagerProxy::doneWithCurrentDragSession): Clear m_activelyDraggedModelLayerIDs. (WebKit::ModelPresentationManagerProxy::invalidateModel): If the model layer being removed is currently being dragged, call -[WKWebView _willInvalidateDraggedModelWithContainerView:] with the model container view so it can be re-parented to the window’s view hierarchy. * Source/WebKit/UIProcess/ios/DragDropInteractionState.h: DragSourceState now stores content with the DragPreviewContentType which is either a UIImage or a UIView. * Source/WebKit/UIProcess/ios/DragDropInteractionState.mm: (WebKit::shouldUseDragImageToCreatePreviewForDragSource): (WebKit::DragDropInteractionState::previewForCancelling): The UITargetedDragPreview’s view is the _UIRemoteView’s that’s already in the remote layer tree’s view hierarchy if the dragged element is a model element. Only add UITargetedDragPreview’s view to m_previewViewsForDragCancel if its superview is the preview container. (WebKit::DragDropInteractionState::createDragPreviewInternal const): If the drag preview content is a UIView (which is the case for a dragged model), create a UITargetedDragPreview with that UIView. (WebKit::DragDropInteractionState::stageDragItem): (WebKit::DragDropInteractionState::updatePreviewsForActiveDragSources): * Source/WebKit/UIProcess/ios/WKContentViewInteraction.h: * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _startDrag:item:]): If the dragged item has a model layer identifier, stage the drag item with the _UIRemoteView returned from the page’s ModelPresentationManagerProxy. (-[WKContentView cleanUpDragSourceSessionState]): Clear the dragged models tracked in
[webkit-changes] [WebKit/WebKit] 25bd2c: Unreviewed visionOS build fix after 290687@main
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 25bd2cdae94e69a209a22b92ffe98da1dd863edb https://github.com/WebKit/WebKit/commit/25bd2cdae94e69a209a22b92ffe98da1dd863edb Author: Ada Chan Date: 2025-02-20 (Thu, 20 Feb 2025) Changed paths: M Source/WebCore/Modules/model-element/HTMLModelElement.h Log Message: --- Unreviewed visionOS build fix after 290687@main https://bugs.webkit.org/show_bug.cgi?id=288071 rdar://137779076 * Source/WebCore/Modules/model-element/HTMLModelElement.h: Canonical link: https://commits.webkit.org/290694@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 41a4bb: Adopt stereo content component for the model's por...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 41a4bbb26f95103dfe66e08600b2606ce69b17c6 https://github.com/WebKit/WebKit/commit/41a4bbb26f95103dfe66e08600b2606ce69b17c6 Author: Ada Chan Date: 2025-02-28 (Fri, 28 Feb 2025) Changed paths: M Source/WTF/wtf/PlatformHave.h M Source/WebCore/platform/graphics/Color.h M Source/WebKit/UIProcess/ios/WKPageHostedModelView.mm M Source/WebKit/WebKitSwift/RealityKit/RKEntity.swift Log Message: --- Adopt stereo content component for the model's portal entity https://bugs.webkit.org/show_bug.cgi?id=288019 rdar://120925261 Reviewed by Mike Wyrzykowski. With this adoption, the portal layer is not separated and no longer on top of all other content. * Source/WTF/wtf/PlatformHave.h: * Source/WebCore/platform/graphics/Color.h: * Source/WebKit/UIProcess/ios/WKPageHostedModelView.mm: (+[WKPageHostedModelView _usesStereoContent]): Check runtime flag to determine whether to use stereo content component. Default values are different between device and simulator. (-[WKPageHostedModelView init]): If using stereo content, set up a new CALayer to associate with the stereo content entity. A world root is set up with the stereo content component. The stereo content entity is now set as the parent of the container view's entity. (-[WKPageHostedModelView dealloc]): Make sure the stereo content entity is removed from the scene. (-[WKPageHostedModelView setShouldDisablePortal:]): To disable the portal, remove the stereo content layer and entity from the hierarchy. To show the portal, add the stereo content layer and entity back. (-[WKPageHostedModelView applyBackgroundColor:]): Update the background color of the portal via REEmbeddedStereoContentComponentSetClearColor(). Since that function expects linear RGB, we need to convert the sRGB color to linear first. (-[WKPageHostedModelView layoutSubviews]): Make sure the stereo content layer's frame gets updated with its parent layer. * Source/WebKit/WebKitSwift/RealityKit/RKEntity.swift: (WKSRKEntity.applyIBL(_:completion:)): This version check should be ok to remove now. Canonical link: https://commits.webkit.org/291371@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c0d97c: [Model Element] Always enable restrictive renderin...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c0d97c4b4a89ec6a6cadd0a6252d6ccf6b5eff50 https://github.com/WebKit/WebKit/commit/c0d97c4b4a89ec6a6cadd0a6252d6ccf6b5eff50 Author: Ada Chan Date: 2025-03-13 (Thu, 13 Mar 2025) Changed paths: M Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in M Source/WebKit/UIProcess/Model/cocoa/ModelProcessProxyCocoa.mm Log Message: --- [Model Element] Always enable restrictive rendering mode https://bugs.webkit.org/show_bug.cgi?id=289600 rdar://124086612 Reviewed by Per Arne Vollan. Enable restrictive rendering mode for the model element by default. Tighten the model process sandbox as that mode no longer needs some iokit access. * Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in: * Source/WebKit/UIProcess/Model/cocoa/ModelProcessProxyCocoa.mm: (WebKit::ModelProcessProxy::updateModelProcessCreationParameters): Canonical link: https://commits.webkit.org/292101@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d6ec80: [Model] Downscale high res image files before comp...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d6ec80cde8e95ed001e97b131913207acbcdd27c https://github.com/WebKit/WebKit/commit/d6ec80cde8e95ed001e97b131913207acbcdd27c Author: Ada Chan Date: 2025-03-21 (Fri, 21 Mar 2025) Changed paths: M Source/WebKit/WebKitSwift/RealityKit/RKEntity.swift Log Message: --- [Model] Downscale high res image files before computing IBLs with them rdar://147062312 https://bugs.webkit.org/show_bug.cgi?id=289816 Reviewed by Mike Wyrzykowski. Computing IBLs in CPU could be processing time intensive so we'll try downscaling those images to 2K before creating environment textures from them. * Source/WebKit/WebKitSwift/RealityKit/RKEntity.swift: (WKSRKEntity.resizedImage(_:)): If the image is more than 2K res, try to load a downscaled CGImage with kCGImageSourceSubsampleFactor. If loading with that hint doesn't work, do an actual resize by drawing into a CGBitmapContext of the target size. (WKSRKEntity.applyIBL(_:completion:)): Canonical link: https://commits.webkit.org/292490@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 9a9926: [Model] Handle the error case when the model asset...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9a9926c5768c7e4ad8e879ba0e084972216ba089 https://github.com/WebKit/WebKit/commit/9a9926c5768c7e4ad8e879ba0e084972216ba089 Author: Ada Chan Date: 2025-03-22 (Sat, 22 Mar 2025) Changed paths: M LayoutTests/model-element/model-element-ready-expected.txt M LayoutTests/model-element/model-element-ready.html A LayoutTests/model-element/resources/error-case.usdz M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.messages.in Log Message: --- [Model] Handle the error case when the model asset cannot be loaded https://bugs.webkit.org/show_bug.cgi?id=290244 rdar://147635013 Reviewed by Mike Wyrzykowski. If the model asset cannot be loaded for some reason (e.g. invalid format), we should reject the ready promise on the model element. * LayoutTests/model-element/model-element-ready-expected.txt: * LayoutTests/model-element/model-element-ready.html: Check ready promise is rejected when the model source points to an asset that can't be loaded. * LayoutTests/model-element/resources/error-case.usdz: Added. A bad usdz example that doesn't have the expected content. * Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm: (WebKit::toResourceError): (WebKit::RKModelLoaderUSD::load): If no entity is loaded, treat this as a failed case. (WebKit::ModelProcessModelPlayerProxy::didFailLoading): Notify the web content side about this failed load. * Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp: (WebKit::ModelProcessModelPlayer::didFailLoading): Notify the client (HTMLModelElement) about the failed load. * Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h: * Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.messages.in: Canonical link: https://commits.webkit.org/292547@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a40f93: [Model Element] Ensure portal background color is ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a40f93d86655a07cce0804654660aef1880e4761 https://github.com/WebKit/WebKit/commit/a40f93d86655a07cce0804654660aef1880e4761 Author: Ada Chan Date: 2025-03-25 (Tue, 25 Mar 2025) Changed paths: M Source/WebKit/UIProcess/ios/WKPageHostedModelView.mm Log Message: --- [Model Element] Ensure portal background color is opaque https://bugs.webkit.org/show_bug.cgi?id=290366 rdar://147723388 Reviewed by Mike Wyrzykowski. Pass an opaque background color when setting up the separated layer's clear color. * Source/WebKit/UIProcess/ios/WKPageHostedModelView.mm: (-[WKPageHostedModelView applyBackgroundColor:]): Canonical link: https://commits.webkit.org/292651@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] dbdf1c: [Model Process] Disallow some unix syscalls after ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: dbdf1ca4d873ca32c9670928bd5cd64e4555d1ce https://github.com/WebKit/WebKit/commit/dbdf1ca4d873ca32c9670928bd5cd64e4555d1ce Author: Ada Chan Date: 2025-03-27 (Thu, 27 Mar 2025) Changed paths: M Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in Log Message: --- [Model Process] Disallow some unix syscalls after process finishes setup https://bugs.webkit.org/show_bug.cgi?id=290487 rdar://139318310 Reviewed by Per Arne Vollan. Tighten the sandbox after the model process has finished setup by disallowing some unix syscalls that do not affect the model rendering pipeline. * Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in: Canonical link: https://commits.webkit.org/292798@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes