[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