[webkit-changes] [WebKit/WebKit] 7c97c2: [visionOS] Expose a _defaultSTSLabel SPI
Jer Noble
noreply at github.com
Mon Apr 8 15:45:13 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7c97c209930082bfc693e7a65269200f6a48efac
https://github.com/WebKit/WebKit/commit/7c97c209930082bfc693e7a65269200f6a48efac
Author: Jer Noble <jer.noble at apple.com>
Date: 2024-04-08 (Mon, 08 Apr 2024)
Changed paths:
M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/ios/WKContentView.mm
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
A Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSpatialTrackingLabels.mm
Log Message:
-----------
[visionOS] Expose a _defaultSTSLabel SPI
https://bugs.webkit.org/show_bug.cgi?id=272093
rdar://120018549
Reviewed by Eric Carlson.
When an application allows users to switch between WKWebViews within a single UIWindow
(e.g., via tabs in a web browser app), the unparented WKWebView may still be generating
audio and that audio still needs to be located spatially. Add a SPI for a client
application to provide a "default" spatial tracking label which can be used for the
fallback scenario where the WKWebView itself is not visible. Clients can use this SPI
to ensure that a background tab continues to have its audio playback spatialized to
the UIWindow that previously hosted it.
In adding this SPI, also move the responsibility for tracking whether the WKWebView is
parented or not up from MediaPlayerPrivate implementations into WebPageProxy. When the
web view is unparented, pass the defaultSTSLabel provided by the client down to the
WebContent and GPU processes for use by MediaPlayerPrivate and other internal clients.
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateSpatialTrackingLabel):
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateSpatialTrackingLabel):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _defaultSTSLabel]):
(-[WKWebView _setDefaultSTSLabel:]):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewDidLeaveWindow):
(WebKit::WebPageProxy::viewDidEnterWindow):
(WebKit::WebPageProxy::setDefaultSpatialTrackingLabel):
(WebKit::WebPageProxy::defaultSpatialTrackingLabel const):
(WebKit::WebPageProxy::updateDefaultSpatialTrackingLabel):
(WebKit::WebPageProxy::setSpatialTrackingLabel): Deleted.
(WebKit::WebPageProxy::spatialTrackingLabel const): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
Canonical link: https://commits.webkit.org/277218@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list