[webkit-changes] [WebKit/WebKit] fb8ef2: [macOS] Enable modern AVContentKeySession support
aestes
noreply at github.com
Fri Aug 30 13:57:54 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fb8ef258b72323f5a2a22423d33330ad3e03ec54
https://github.com/WebKit/WebKit/commit/fb8ef258b72323f5a2a22423d33330ad3e03ec54
Author: Andy Estes <aestes at apple.com>
Date: 2024-08-30 (Fri, 30 Aug 2024)
Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WTF/wtf/PlatformHave.h
M Source/WTF/wtf/PlatformUse.h
M Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp
M Source/WebCore/page/SettingsBase.cpp
M Source/WebCore/page/SettingsBase.h
M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h
M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
M Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm
M Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm
M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
M Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm
M Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm
M Source/WebKit/GPUProcess/GPUProcess.cpp
M Source/WebKit/GPUProcess/GPUProcessCreationParameters.h
M Source/WebKit/GPUProcess/GPUProcessCreationParameters.serialization.in
M Source/WebKit/GPUProcess/GPUProcessPreferences.cpp
M Source/WebKit/GPUProcess/GPUProcessPreferences.h
M Source/WebKit/GPUProcess/GPUProcessPreferences.serialization.in
Log Message:
-----------
[macOS] Enable modern AVContentKeySession support
https://bugs.webkit.org/show_bug.cgi?id=271092
rdar://124719590
Reviewed by Jer Noble.
- For clarity, renamed SampleBufferContentKeySessionSupportEnabled to
ShouldUseModernAVContentKeySession and promoted its status to Preview on macOS.
- Introduced USE(MODERN_AVCONTENTKEYSESSION) and enabled it starting on macOS 14.4, since that is
the minimum OS version where AVContentKeySession is usable by WebKit.
- Checked for entitlements to determine if AVSampleBufferAttachContentKey is supported rather than
merely checking if the GPU process is an extension.
- Removed the duplicative HAVE(AVCONTENTKEYSPECIFICER) and simplified the definition of
HAVE(AVCONTENTKEYREQUEST_COMPATIBILITY_MODE).
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WTF/wtf/PlatformHave.h:
* Source/WTF/wtf/PlatformUse.h:
* Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::keyGroupingStrategy const):
* Source/WebCore/page/SettingsBase.cpp:
(WebCore::SettingsBase::shouldUseModernAVContentKeySessionChanged):
(WebCore::SettingsBase::sampleBufferContentKeySessionSupportEnabledChanged): Deleted.
* Source/WebCore/page/SettingsBase.h:
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h:
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::setShouldUseModernAVContentKeySession):
(WebCore::MediaSessionManagerCocoa::shouldUseModernAVContentKeySession):
(WebCore::MediaSessionManagerCocoa::setSampleBufferContentKeySessionSupportEnabled): Deleted.
(WebCore::MediaSessionManagerCocoa::sampleBufferContentKeySessionSupportEnabled): Deleted.
* Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::contentKeySession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::protectionStatusForRequest const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::ensureSessionOrGroup):
* Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
(WebCore::CDMSessionAVContentKeySession::contentKeySession):
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
* Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:
(WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC):
* Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::supportsAttachContentKey):
(WebCore::shouldAddContentKeyRecipients):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::needsVideoLayer const):
(WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt):
(WebCore::SourceBufferPrivateAVFObjC::canEnqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::attachContentKeyToSampleIfNeeded):
(WebCore::sampleBufferRenderersSupportKeySession): Deleted.
* Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::updateGPUProcessPreferences):
* Source/WebKit/GPUProcess/GPUProcessCreationParameters.h:
* Source/WebKit/GPUProcess/GPUProcessCreationParameters.serialization.in:
* Source/WebKit/GPUProcess/GPUProcessPreferences.cpp:
(WebKit::GPUProcessPreferences::copyEnabledWebPreferences):
* Source/WebKit/GPUProcess/GPUProcessPreferences.h:
* Source/WebKit/GPUProcess/GPUProcessPreferences.serialization.in:
* Source/WebKit/Shared/WebPreferencesDefaultValues.h:
Canonical link: https://commits.webkit.org/282990@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