Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 79dad443efe68f5aee4f3d4dd15cfa1232978c63
https://github.com/WebKit/WebKit/commit/79dad443efe68f5aee4f3d4dd15cfa1232978c63
Author: Andy Estes <[email protected]>
Date: 2024-12-12 (Thu, 12 Dec 2024)
Changed paths:
M Source/WTF/wtf/RuntimeApplicationChecks.cpp
M Source/WTF/wtf/RuntimeApplicationChecks.h
M Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
M Source/WebCore/Modules/webaudio/AudioContext.cpp
M Source/WebCore/Modules/webaudio/AudioContext.h
M Source/WebCore/accessibility/AccessibilityObject.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Source/WebCore/html/HTMLMediaElement.cpp
M Source/WebCore/html/HTMLMediaElement.h
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/Page.h
M Source/WebCore/page/PageConfiguration.h
M Source/WebCore/platform/audio/PlatformMediaSession.cpp
M Source/WebCore/platform/audio/PlatformMediaSession.h
M Source/WebCore/platform/audio/PlatformMediaSessionManager.h
M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h
M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
M Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.h
M Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm
M Source/WebCore/platform/cocoa/NetworkExtensionContentFilter.mm
M Source/WebCore/platform/mediastream/ios/MediaCaptureStatusBarManager.mm
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h
M Source/WebKit/GPUProcess/GPUProcess.cpp
M Source/WebKit/GPUProcess/GPUProcess.h
M Source/WebKit/GPUProcess/GPUProcess.messages.in
M Source/WebKit/GPUProcess/GPUProcessCreationParameters.h
M Source/WebKit/GPUProcess/GPUProcessCreationParameters.serialization.in
M Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp
M Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp
M Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h
M
Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.messages.in
M Source/WebKit/ModelProcess/ModelProcess.cpp
M Source/WebKit/ModelProcess/ModelProcessCreationParameters.h
M Source/WebKit/ModelProcess/ModelProcessCreationParameters.serialization.in
M Source/WebKit/NetworkProcess/NetworkProcess.cpp
M Source/WebKit/Scripts/webkit/messages.py
M Source/WebKit/Shared/Cocoa/CoreIPCAuditToken.h
M Source/WebKit/Shared/Cocoa/CoreIPCAuditToken.serialization.in
M Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.serialization.in
M Source/WebKit/Shared/GPUProcessConnectionParameters.h
M Source/WebKit/Shared/GPUProcessConnectionParameters.serialization.in
M Source/WebKit/Shared/WebPageCreationParameters.h
M Source/WebKit/Shared/WebPageCreationParameters.serialization.in
M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp
M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h
M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/UIProcess/WebProcessProxy.cpp
M Source/WebKit/UIProcess/WebProcessProxy.h
M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp
M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
M Source/WebKit/WebProcess/Plugins/PDF/WKAccessibilityPDFDocumentObject.mm
M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
M Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm
M Source/WebKit/WebProcess/WebProcess.cpp
Log Message:
-----------
[iOS] It should be possible to change presentingApplicationAuditToken after a
WKWebView is created
https://bugs.webkit.org/show_bug.cgi?id=284483
rdar://137618821
Reviewed by Youenn Fablet.
_WKProcessPoolConfiguration has a presentingApplicationProcessToken SPI that
allows the client to
set an audit token representing the application that is presenting the web
content hosted in this
process pool. This SPI is necessary because in some clients the application
that presents web
content on screen differs from the UI process that owns the WKWebView.
Having this SPI on _WKProcessPoolConfiguration limits these clients in the
following ways:
1. It's not possible for a client to present WKWebViews from the same process
pool in two different
presenting applications.
2. If a presenting application exits and relaunches, it's not possible for a
client to restore an
existing WKWebView into this new presenting application instance.
Resolved these limitations by adding a readwrite property to WKWebView for
clients to set the
presenting application audit token. The audit token is stored on WebPageProxy
as well as (a) on the
Page in corresponding WebContent processes and (b) on
GPUConnectionToWebProcess. Media SPIs that
rely on knowing the presenting application's PID or audit token read these
values when needed.
Previously the presenting application PID was read from a global value
(presentingApplicationPID()),
but since this value is now per-Page, this function was renamed to
legacyPresentingApplicationPID().
* Source/WTF/wtf/RuntimeApplicationChecks.cpp:
(WTF::legacyPresentingApplicationPID):
(WTF::setLegacyPresentingApplicationPID):
(WTF::presentingApplicationPID): Deleted.
(WTF::setPresentingApplicationPID): Deleted.
* Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::start):
* Source/WebCore/Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::presentingApplicationPID const):
* Source/WebCore/Modules/webaudio/AudioContext.h:
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::presentingApplicationPID const):
* Source/WebCore/html/HTMLMediaElement.h:
* Source/WebCore/page/Page.cpp:
(WebCore::m_presentingApplicationAuditToken):
(WebCore::Page::presentingApplicationPID const):
(WebCore::Page::presentingApplicationAuditToken const):
(WebCore::Page::setPresentingApplicationAuditToken):
(WebCore::m_activeNowPlayingSessionUpdateTimer): Deleted.
* Source/WebCore/page/Page.h:
* Source/WebCore/page/PageConfiguration.h:
* Source/WebCore/platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::presentingApplicationPID const):
* Source/WebCore/platform/audio/PlatformMediaSession.h:
* Source/WebCore/platform/audio/PlatformMediaSessionManager.h:
(WebCore::PlatformMediaSessionManager::prepareToSendUserMediaPermissionRequest):
(WebCore::PlatformMediaSessionManager::updatePresentingApplicationPIDIfNecessary):
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h:
(WebCore::MediaSessionManagerCocoa::providePresentingApplicationPIDIfNecessary):
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::prepareToSendUserMediaPermissionRequest):
(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo):
* Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.h:
* Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::providePresentingApplicationPIDIfNecessary):
(WebCore::MediaSessionManageriOS::updatePresentingApplicationPIDIfNecessary):
(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback):
(WebCore::MediaSessionManageriOS::providePresentingApplicationPID): Deleted.
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::overridePresentingApplicationPIDIfNeeded):
(WebKit::GPUConnectionToWebProcess::legacyCdmFactoryProxy):
(WebKit::GPUConnectionToWebProcess::presentingApplicationAuditToken const):
(WebKit::GPUConnectionToWebProcess::presentingApplicationPID const):
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:
(WebKit::GPUConnectionToWebProcess::presentingApplicationAuditTokens const):
(WebKit::GPUConnectionToWebProcess::presentingApplicationAuditToken const):
Deleted.
* Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::initializeGPUProcess):
(WebKit::GPUProcess::setPresentingApplicationAuditToken):
* Source/WebKit/GPUProcess/GPUProcess.h:
* Source/WebKit/GPUProcess/GPUProcess.messages.in:
* Source/WebKit/GPUProcess/GPUProcessCreationParameters.h:
* Source/WebKit/GPUProcess/GPUProcessCreationParameters.serialization.in:
* Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
(WebKit::RemoteAudioSessionProxyManager::updatePresentingProcesses):
* Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:
(WebKit::RemoteMediaSessionHelperProxy::providePresentingApplicationPID):
* Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:
* Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.messages.in:
* Source/WebKit/ModelProcess/ModelProcess.cpp:
(WebKit::ModelProcess::initializeModelProcess):
* Source/WebKit/ModelProcess/ModelProcessCreationParameters.h:
* Source/WebKit/ModelProcess/ModelProcessCreationParameters.serialization.in:
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* Source/WebKit/Shared/Cocoa/CoreIPCAuditToken.h:
(WebKit::invalidAuditToken):
(WebKit::CoreIPCAuditToken::CoreIPCAuditToken):
* Source/WebKit/Shared/GPUProcessConnectionParameters.h:
* Source/WebKit/Shared/GPUProcessConnectionParameters.serialization.in:
* Source/WebKit/Shared/WebPageCreationParameters.h:
* Source/WebKit/Shared/WebPageCreationParameters.serialization.in:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView presentingApplicationAuditToken]):
(-[WKWebView setPresentingApplicationAuditToken:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::GPUProcessProxy::setPresentingApplicationAuditToken):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::m_pageForTesting):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::presentingApplicationAuditToken const):
(WebKit::WebPageProxy::setPresentingApplicationAuditToken):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createGPUProcessConnection):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::createGPUProcessConnection):
(WebKit::WebProcessProxy::presentingApplicationAuditTokens const):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
(WebKit::RemoteMediaSessionHelper::providePresentingApplicationPID):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::m_textAnimationController):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
Canonical link: https://commits.webkit.org/287782@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes