diff --git a/dom/chrome-webidl/ChromeUtils.webidl b/dom/chrome-webidl/ChromeUtils.webidl index 94443d38883a..57a2a7c63f1d 100644 --- a/dom/chrome-webidl/ChromeUtils.webidl +++ b/dom/chrome-webidl/ChromeUtils.webidl @@ -1164,4 +1164,5 @@ dictionary CDMInformation { required DOMString capabilities; required boolean clearlead; required boolean isHDCP22Compatible; + required boolean isHardwareDecryption; }; diff --git a/dom/media/eme/KeySystemConfig.cpp b/dom/media/eme/KeySystemConfig.cpp index cc2c36366943..d194cb8a0f32 100644 --- a/dom/media/eme/KeySystemConfig.cpp +++ b/dom/media/eme/KeySystemConfig.cpp @@ -313,8 +313,10 @@ void KeySystemConfig::GetGMPKeySystemConfigs(dom::Promise* aPromise) { info->mKeySystemName = config.mKeySystem; info->mCapabilities = config.GetDebugInfo(); info->mClearlead = DoesKeySystemSupportClearLead(config.mKeySystem); - // TODO : ask real CDM + // TODO : ask real CDM for HDCP info->mIsHDCP22Compatible = false; + // GMP-based CDM doesn't support hardware decryption. + info->mIsHardwareDecryption = false; } promise->MaybeResolve(cdmInfo); } else { diff --git a/ipc/glue/UtilityAudioDecoderChild.cpp b/ipc/glue/UtilityAudioDecoderChild.cpp index 65ba6ae987d6..182520ea175a 100644 --- a/ipc/glue/UtilityAudioDecoderChild.cpp +++ b/ipc/glue/UtilityAudioDecoderChild.cpp @@ -257,6 +257,9 @@ void UtilityAudioDecoderChild::GetKeySystemCapabilities( if (capabilities.isHDCP22Compatible()) { info->mIsHDCP22Compatible = *capabilities.isHDCP22Compatible(); } + if (capabilities.isHardwareDecryption()) { + info->mIsHardwareDecryption = true; + } } promise->MaybeResolve(cdmInfo); },