| Index: components/cdm/renderer/widevine_key_system_properties.cc
|
| diff --git a/components/cdm/renderer/widevine_key_system_properties.cc b/components/cdm/renderer/widevine_key_system_properties.cc
|
| deleted file mode 100644
|
| index 3a6eab49728cccf389de14289f54018587bc848d..0000000000000000000000000000000000000000
|
| --- a/components/cdm/renderer/widevine_key_system_properties.cc
|
| +++ /dev/null
|
| @@ -1,176 +0,0 @@
|
| -// Copyright 2016 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "components/cdm/renderer/widevine_key_system_properties.h"
|
| -
|
| -#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
|
| -
|
| -#if defined(WIDEVINE_CDM_AVAILABLE)
|
| -
|
| -using media::EmeConfigRule;
|
| -using media::EmeFeatureSupport;
|
| -using media::EmeInitDataType;
|
| -using media::EmeMediaType;
|
| -using media::EmeRobustness;
|
| -using media::EmeSessionTypeSupport;
|
| -using media::SupportedCodecs;
|
| -
|
| -namespace cdm {
|
| -namespace {
|
| -
|
| -EmeRobustness ConvertRobustness(const std::string& robustness) {
|
| - if (robustness.empty())
|
| - return EmeRobustness::EMPTY;
|
| - if (robustness == "SW_SECURE_CRYPTO")
|
| - return EmeRobustness::SW_SECURE_CRYPTO;
|
| - if (robustness == "SW_SECURE_DECODE")
|
| - return EmeRobustness::SW_SECURE_DECODE;
|
| - if (robustness == "HW_SECURE_CRYPTO")
|
| - return EmeRobustness::HW_SECURE_CRYPTO;
|
| - if (robustness == "HW_SECURE_DECODE")
|
| - return EmeRobustness::HW_SECURE_DECODE;
|
| - if (robustness == "HW_SECURE_ALL")
|
| - return EmeRobustness::HW_SECURE_ALL;
|
| - return EmeRobustness::INVALID;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -WidevineKeySystemProperties::WidevineKeySystemProperties(
|
| - media::SupportedCodecs supported_codecs,
|
| -#if defined(OS_ANDROID)
|
| - media::SupportedCodecs supported_secure_codecs,
|
| -#endif // defined(OS_ANDROID)
|
| - media::EmeRobustness max_audio_robustness,
|
| - media::EmeRobustness max_video_robustness,
|
| - media::EmeSessionTypeSupport persistent_license_support,
|
| - media::EmeSessionTypeSupport persistent_release_message_support,
|
| - media::EmeFeatureSupport persistent_state_support,
|
| - media::EmeFeatureSupport distinctive_identifier_support)
|
| - : supported_codecs_(supported_codecs),
|
| -#if defined(OS_ANDROID)
|
| - supported_secure_codecs_(supported_secure_codecs),
|
| -#endif // defined(OS_ANDROID)
|
| - max_audio_robustness_(max_audio_robustness),
|
| - max_video_robustness_(max_video_robustness),
|
| - persistent_license_support_(persistent_license_support),
|
| - persistent_release_message_support_(persistent_release_message_support),
|
| - persistent_state_support_(persistent_state_support),
|
| - distinctive_identifier_support_(distinctive_identifier_support) {
|
| -}
|
| -
|
| -std::string WidevineKeySystemProperties::GetKeySystemName() const {
|
| - return kWidevineKeySystem;
|
| -}
|
| -
|
| -bool WidevineKeySystemProperties::IsSupportedInitDataType(
|
| - EmeInitDataType init_data_type) const {
|
| - // Here we assume that support for a container imples support for the
|
| - // associated initialization data type. KeySystems handles validating
|
| - // |init_data_type| x |container| pairings.
|
| - if (init_data_type == EmeInitDataType::WEBM)
|
| - return (supported_codecs_ & media::EME_CODEC_WEBM_ALL) != 0;
|
| -#if defined(USE_PROPRIETARY_CODECS)
|
| - if (init_data_type == EmeInitDataType::CENC)
|
| - return (supported_codecs_ & media::EME_CODEC_MP4_ALL) != 0;
|
| -#endif // defined(USE_PROPRIETARY_CODECS)
|
| -
|
| - return false;
|
| -}
|
| -
|
| -SupportedCodecs WidevineKeySystemProperties::GetSupportedCodecs() const {
|
| - return supported_codecs_;
|
| -}
|
| -
|
| -#if defined(OS_ANDROID)
|
| -SupportedCodecs WidevineKeySystemProperties::GetSupportedSecureCodecs() const {
|
| - return supported_secure_codecs_;
|
| -}
|
| -#endif
|
| -
|
| -EmeConfigRule WidevineKeySystemProperties::GetRobustnessConfigRule(
|
| - EmeMediaType media_type,
|
| - const std::string& requested_robustness) const {
|
| - EmeRobustness robustness = ConvertRobustness(requested_robustness);
|
| - if (robustness == EmeRobustness::INVALID)
|
| - return EmeConfigRule::NOT_SUPPORTED;
|
| -
|
| - EmeRobustness max_robustness = EmeRobustness::INVALID;
|
| - switch (media_type) {
|
| - case EmeMediaType::AUDIO:
|
| - max_robustness = max_audio_robustness_;
|
| - break;
|
| - case EmeMediaType::VIDEO:
|
| - max_robustness = max_video_robustness_;
|
| - break;
|
| - }
|
| -
|
| - // We can compare robustness levels whenever they are not HW_SECURE_CRYPTO
|
| - // and SW_SECURE_DECODE in some order. If they are exactly those two then the
|
| - // robustness requirement is not supported.
|
| - if ((max_robustness == EmeRobustness::HW_SECURE_CRYPTO &&
|
| - robustness == EmeRobustness::SW_SECURE_DECODE) ||
|
| - (max_robustness == EmeRobustness::SW_SECURE_DECODE &&
|
| - robustness == EmeRobustness::HW_SECURE_CRYPTO) ||
|
| - robustness > max_robustness) {
|
| - return EmeConfigRule::NOT_SUPPORTED;
|
| - }
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| - // TODO(ddorwin): Remove this once we have confirmed it is not necessary.
|
| - // See https://crbug.com/482277
|
| - if (robustness == EmeRobustness::EMPTY)
|
| - return EmeConfigRule::SUPPORTED;
|
| -
|
| - // Hardware security requires remote attestation.
|
| - if (robustness >= EmeRobustness::HW_SECURE_CRYPTO)
|
| - return EmeConfigRule::IDENTIFIER_REQUIRED;
|
| -
|
| - // For video, recommend remote attestation if HW_SECURE_ALL is available,
|
| - // because it enables hardware accelerated decoding.
|
| - // TODO(sandersd): Only do this when hardware accelerated decoding is
|
| - // available for the requested codecs.
|
| - if (media_type == EmeMediaType::VIDEO &&
|
| - max_robustness == EmeRobustness::HW_SECURE_ALL) {
|
| - return EmeConfigRule::IDENTIFIER_RECOMMENDED;
|
| - }
|
| -#elif defined(OS_ANDROID)
|
| - // Require hardware secure codecs when SW_SECURE_DECODE or above is specified.
|
| - if (robustness >= EmeRobustness::SW_SECURE_DECODE) {
|
| - return EmeConfigRule::HW_SECURE_CODECS_REQUIRED;
|
| - }
|
| -#endif // defined(OS_CHROMEOS)
|
| -
|
| - return EmeConfigRule::SUPPORTED;
|
| -}
|
| -
|
| -EmeSessionTypeSupport
|
| -WidevineKeySystemProperties::GetPersistentLicenseSessionSupport() const {
|
| - return persistent_license_support_;
|
| -}
|
| -
|
| -EmeSessionTypeSupport
|
| -WidevineKeySystemProperties::GetPersistentReleaseMessageSessionSupport() const {
|
| - return persistent_release_message_support_;
|
| -}
|
| -
|
| -EmeFeatureSupport WidevineKeySystemProperties::GetPersistentStateSupport()
|
| - const {
|
| - return persistent_state_support_;
|
| -}
|
| -
|
| -EmeFeatureSupport WidevineKeySystemProperties::GetDistinctiveIdentifierSupport()
|
| - const {
|
| - return distinctive_identifier_support_;
|
| -}
|
| -
|
| -#if defined(ENABLE_PEPPER_CDMS)
|
| -std::string WidevineKeySystemProperties::GetPepperType() const {
|
| - return kWidevineCdmPluginMimeType;
|
| -}
|
| -#endif
|
| -
|
| -} // namespace cdm
|
| -
|
| -#endif // WIDEVINE_CDM_AVAILABLE
|
|
|