| Index: chrome/renderer/media/chrome_key_systems.cc
|
| diff --git a/chrome/renderer/media/chrome_key_systems.cc b/chrome/renderer/media/chrome_key_systems.cc
|
| index 4c02dfef7c97eda34796c3a5912198881f8c843f..ed659be28206e3b9b42b1099a904404cc42bbba8 100644
|
| --- a/chrome/renderer/media/chrome_key_systems.cc
|
| +++ b/chrome/renderer/media/chrome_key_systems.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "build/build_config.h"
|
| #include "chrome/common/render_messages.h"
|
| +#include "components/cdm/renderer/external_clear_key_key_system_properties.h"
|
| #include "components/cdm/renderer/widevine_key_system_properties.h"
|
| #include "content/public/renderer/render_thread.h"
|
| #include "media/base/eme_constants.h"
|
| @@ -37,9 +38,6 @@ using media::KeySystemProperties;
|
| using media::SupportedCodecs;
|
|
|
| #if defined(ENABLE_PEPPER_CDMS)
|
| -static const char kExternalClearKeyPepperType[] =
|
| - "application/x-ppapi-clearkey-cdm";
|
| -
|
| static bool IsPepperCdmAvailable(
|
| const std::string& pepper_type,
|
| std::vector<base::string16>* additional_param_names,
|
| @@ -55,76 +53,6 @@ static bool IsPepperCdmAvailable(
|
| return is_available;
|
| }
|
|
|
| -// KeySystemProperties implementation for external Clear Key systems.
|
| -class ExternalClearKeyProperties : public KeySystemProperties {
|
| - public:
|
| - explicit ExternalClearKeyProperties(const std::string& key_system_name)
|
| - : key_system_name_(key_system_name) {}
|
| -
|
| - std::string GetKeySystemName() const override { return key_system_name_; }
|
| - bool IsSupportedInitDataType(
|
| - media::EmeInitDataType init_data_type) const override {
|
| - switch (init_data_type) {
|
| - case media::EmeInitDataType::WEBM:
|
| - case media::EmeInitDataType::KEYIDS:
|
| - return true;
|
| -
|
| - case media::EmeInitDataType::CENC:
|
| -#if defined(USE_PROPRIETARY_CODECS)
|
| - return true;
|
| -#else
|
| - return false;
|
| -#endif // defined(USE_PROPRIETARY_CODECS)
|
| -
|
| - case media::EmeInitDataType::UNKNOWN:
|
| - return false;
|
| - }
|
| - NOTREACHED();
|
| - return false;
|
| - }
|
| -
|
| - SupportedCodecs GetSupportedCodecs() const override {
|
| -#if defined(USE_PROPRIETARY_CODECS)
|
| - return media::EME_CODEC_MP4_ALL | media::EME_CODEC_WEBM_ALL;
|
| -#else
|
| - return media::EME_CODEC_WEBM_ALL;
|
| -#endif
|
| - }
|
| -
|
| - media::EmeConfigRule GetRobustnessConfigRule(
|
| - media::EmeMediaType media_type,
|
| - const std::string& requested_robustness) const override {
|
| - return requested_robustness.empty() ? media::EmeConfigRule::SUPPORTED
|
| - : media::EmeConfigRule::NOT_SUPPORTED;
|
| - }
|
| -
|
| - // Persistent license sessions are faked.
|
| - media::EmeSessionTypeSupport GetPersistentLicenseSessionSupport()
|
| - const override {
|
| - return media::EmeSessionTypeSupport::SUPPORTED;
|
| - }
|
| -
|
| - media::EmeSessionTypeSupport GetPersistentReleaseMessageSessionSupport()
|
| - const override {
|
| - return media::EmeSessionTypeSupport::NOT_SUPPORTED;
|
| - }
|
| -
|
| - media::EmeFeatureSupport GetPersistentStateSupport() const override {
|
| - return media::EmeFeatureSupport::REQUESTABLE;
|
| - }
|
| -
|
| - media::EmeFeatureSupport GetDistinctiveIdentifierSupport() const override {
|
| - return media::EmeFeatureSupport::NOT_SUPPORTED;
|
| - }
|
| -
|
| - std::string GetPepperType() const override {
|
| - return kExternalClearKeyPepperType;
|
| - }
|
| -
|
| - private:
|
| - const std::string key_system_name_;
|
| -};
|
| -
|
| // External Clear Key (used for testing).
|
| static void AddExternalClearKey(
|
| std::vector<std::unique_ptr<KeySystemProperties>>* concrete_key_systems) {
|
| @@ -145,40 +73,40 @@ static void AddExternalClearKey(
|
|
|
| std::vector<base::string16> additional_param_names;
|
| std::vector<base::string16> additional_param_values;
|
| - if (!IsPepperCdmAvailable(kExternalClearKeyPepperType,
|
| + if (!IsPepperCdmAvailable(cdm::kExternalClearKeyPepperType,
|
| &additional_param_names,
|
| &additional_param_values)) {
|
| return;
|
| }
|
|
|
| concrete_key_systems->emplace_back(
|
| - new ExternalClearKeyProperties(kExternalClearKeyKeySystem));
|
| + new cdm::ExternalClearKeyProperties(kExternalClearKeyKeySystem));
|
|
|
| // Add support of decrypt-only mode in ClearKeyCdm.
|
| - concrete_key_systems->emplace_back(
|
| - new ExternalClearKeyProperties(kExternalClearKeyDecryptOnlyKeySystem));
|
| + concrete_key_systems->emplace_back(new cdm::ExternalClearKeyProperties(
|
| + kExternalClearKeyDecryptOnlyKeySystem));
|
|
|
| // A key system that triggers renewal message in ClearKeyCdm.
|
| concrete_key_systems->emplace_back(
|
| - new ExternalClearKeyProperties(kExternalClearKeyRenewalKeySystem));
|
| + new cdm::ExternalClearKeyProperties(kExternalClearKeyRenewalKeySystem));
|
|
|
| // A key system that triggers the FileIO test in ClearKeyCdm.
|
| - concrete_key_systems->emplace_back(
|
| - new ExternalClearKeyProperties(kExternalClearKeyFileIOTestKeySystem));
|
| + concrete_key_systems->emplace_back(new cdm::ExternalClearKeyProperties(
|
| + kExternalClearKeyFileIOTestKeySystem));
|
|
|
| // A key system that triggers the output protection test in ClearKeyCdm.
|
| - concrete_key_systems->emplace_back(new ExternalClearKeyProperties(
|
| + concrete_key_systems->emplace_back(new cdm::ExternalClearKeyProperties(
|
| kExternalClearKeyOutputProtectionTestKeySystem));
|
|
|
| // A key system that Chrome thinks is supported by ClearKeyCdm, but actually
|
| // will be refused by ClearKeyCdm. This is to test the CDM initialization
|
| // failure case.
|
| - concrete_key_systems->emplace_back(
|
| - new ExternalClearKeyProperties(kExternalClearKeyInitializeFailKeySystem));
|
| + concrete_key_systems->emplace_back(new cdm::ExternalClearKeyProperties(
|
| + kExternalClearKeyInitializeFailKeySystem));
|
|
|
| // A key system that triggers a crash in ClearKeyCdm.
|
| concrete_key_systems->emplace_back(
|
| - new ExternalClearKeyProperties(kExternalClearKeyCrashKeySystem));
|
| + new cdm::ExternalClearKeyProperties(kExternalClearKeyCrashKeySystem));
|
| }
|
|
|
| #if defined(WIDEVINE_CDM_AVAILABLE)
|
|
|