⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 219978 in webkit


Ignore:
Timestamp:
Jul 27, 2017, 1:55:09 AM (9 years ago)
Author:
zandobersek@gmail.com
Message:

[EME][GStreamer] Add barebones CDM interface implementations for ClearKey
​https://bugs.webkit.org/show_bug.cgi?id=174887

Reviewed by Xabier Rodriguez-Calvar.

Add empty ClearKey derivations of CDMFactory, CDMPrivate and CDMInstance
classes. These will be enhanced as the implementation progresses.

ClearKey is added to CDMInstance::ImplementationType, and the
CDMInstanceClearKey::implementationType() override returns that value.
Type traits specialization for the CDMInstanceClearKey class is also
added, utilizing the CDMInstance::ImplementationType::ClearKey value.

The implementation file is added to the WPE build, along with the
necessary inclusion directory.

  • PlatformWPE.cmake:
  • platform/encryptedmedia/CDMInstance.h:
  • platform/encryptedmedia/clearkey/CDMClearKey.cpp: Added.

(WebCore::CDMFactoryClearKey::createCDM):
(WebCore::CDMFactoryClearKey::supportsKeySystem):
(WebCore::CDMPrivateClearKey::supportsInitDataType):
(WebCore::CDMPrivateClearKey::supportsConfiguration):
(WebCore::CDMPrivateClearKey::supportsConfigurationWithRestrictions):
(WebCore::CDMPrivateClearKey::supportsSessionTypeWithConfiguration):
(WebCore::CDMPrivateClearKey::supportsRobustness):
(WebCore::CDMPrivateClearKey::distinctiveIdentifiersRequirement):
(WebCore::CDMPrivateClearKey::persistentStateRequirement):
(WebCore::CDMPrivateClearKey::distinctiveIdentifiersAreUniquePerOriginAndClearable):
(WebCore::CDMPrivateClearKey::createInstance):
(WebCore::CDMPrivateClearKey::loadAndInitialize):
(WebCore::CDMPrivateClearKey::supportsServerCertificates):
(WebCore::CDMPrivateClearKey::supportsSessions):
(WebCore::CDMPrivateClearKey::supportsInitData):
(WebCore::CDMPrivateClearKey::sanitizeResponse):
(WebCore::CDMPrivateClearKey::sanitizeSessionId):
(WebCore::CDMInstanceClearKey::initializeWithConfiguration):
(WebCore::CDMInstanceClearKey::setDistinctiveIdentifiersAllowed):
(WebCore::CDMInstanceClearKey::setPersistentStateAllowed):
(WebCore::CDMInstanceClearKey::setServerCertificate):
(WebCore::CDMInstanceClearKey::requestLicense):
(WebCore::CDMInstanceClearKey::updateLicense):
(WebCore::CDMInstanceClearKey::loadSession):
(WebCore::CDMInstanceClearKey::closeSession):
(WebCore::CDMInstanceClearKey::removeSessionData):
(WebCore::CDMInstanceClearKey::storeRecordOfKeyUsage):

  • platform/encryptedmedia/clearkey/CDMClearKey.h: Added.
Location:
trunk/Source/WebCore
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r219977 r219978  
     12017-07-27  Zan Dobersek  <zdobersek@igalia.com>
     2
     3        [EME][GStreamer] Add barebones CDM interface implementations for ClearKey
     4        https://bugs.webkit.org/show_bug.cgi?id=174887
     5
     6        Reviewed by Xabier Rodriguez-Calvar.
     7
     8        Add empty ClearKey derivations of CDMFactory, CDMPrivate and CDMInstance
     9        classes. These will be enhanced as the implementation progresses.
     10
     11        ClearKey is added to CDMInstance::ImplementationType, and the
     12        CDMInstanceClearKey::implementationType() override returns that value.
     13        Type traits specialization for the CDMInstanceClearKey class is also
     14        added, utilizing the CDMInstance::ImplementationType::ClearKey value.
     15
     16        The implementation file is added to the WPE build, along with the
     17        necessary inclusion directory.
     18
     19        * PlatformWPE.cmake:
     20        * platform/encryptedmedia/CDMInstance.h:
     21        * platform/encryptedmedia/clearkey/CDMClearKey.cpp: Added.
     22        (WebCore::CDMFactoryClearKey::createCDM):
     23        (WebCore::CDMFactoryClearKey::supportsKeySystem):
     24        (WebCore::CDMPrivateClearKey::supportsInitDataType):
     25        (WebCore::CDMPrivateClearKey::supportsConfiguration):
     26        (WebCore::CDMPrivateClearKey::supportsConfigurationWithRestrictions):
     27        (WebCore::CDMPrivateClearKey::supportsSessionTypeWithConfiguration):
     28        (WebCore::CDMPrivateClearKey::supportsRobustness):
     29        (WebCore::CDMPrivateClearKey::distinctiveIdentifiersRequirement):
     30        (WebCore::CDMPrivateClearKey::persistentStateRequirement):
     31        (WebCore::CDMPrivateClearKey::distinctiveIdentifiersAreUniquePerOriginAndClearable):
     32        (WebCore::CDMPrivateClearKey::createInstance):
     33        (WebCore::CDMPrivateClearKey::loadAndInitialize):
     34        (WebCore::CDMPrivateClearKey::supportsServerCertificates):
     35        (WebCore::CDMPrivateClearKey::supportsSessions):
     36        (WebCore::CDMPrivateClearKey::supportsInitData):
     37        (WebCore::CDMPrivateClearKey::sanitizeResponse):
     38        (WebCore::CDMPrivateClearKey::sanitizeSessionId):
     39        (WebCore::CDMInstanceClearKey::initializeWithConfiguration):
     40        (WebCore::CDMInstanceClearKey::setDistinctiveIdentifiersAllowed):
     41        (WebCore::CDMInstanceClearKey::setPersistentStateAllowed):
     42        (WebCore::CDMInstanceClearKey::setServerCertificate):
     43        (WebCore::CDMInstanceClearKey::requestLicense):
     44        (WebCore::CDMInstanceClearKey::updateLicense):
     45        (WebCore::CDMInstanceClearKey::loadSession):
     46        (WebCore::CDMInstanceClearKey::closeSession):
     47        (WebCore::CDMInstanceClearKey::removeSessionData):
     48        (WebCore::CDMInstanceClearKey::storeRecordOfKeyUsage):
     49        * platform/encryptedmedia/clearkey/CDMClearKey.h: Added.
     50
    1512017-07-27  Zan Dobersek  <zdobersek@igalia.com>
    252
  • trunk/Source/WebCore/PlatformWPE.cmake

    r219819 r219978  
    151151)
    152152
     153if (ENABLE_ENCRYPTED_MEDIA)
     154    list(APPEND WebCore_INCLUDE_DIRECTORIES
     155        "${WEBCORE_DIR}/platform/encryptedmedia/clearkey"
     156    )
     157    list(APPEND WebCore_SOURCES
     158        platform/encryptedmedia/clearkey/CDMClearKey.cpp
     159    )
     160endif ()
     161
    153162list(APPEND WebCore_USER_AGENT_STYLE_SHEETS
    154163    ${WEBCORE_DIR}/Modules/mediacontrols/mediaControlsBase.css
  • trunk/Source/WebCore/platform/encryptedmedia/CDMInstance.h

    r219977 r219978  
    5050    enum class ImplementationType {
    5151        Mock,
     52        ClearKey,
    5253    };
    5354
Note: See TracChangeset for help on using the changeset viewer.