tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 6b72fc19a379e951ce66aec7d0ff4663bb08f4ec
parent bdd147ba6aa33bfbccd1e47ababfaeee943ca86a
Author: alwu <alwu@mozilla.com>
Date:   Tue, 28 Oct 2025 20:07:27 +0000

Bug 1996954 - treat `MF_E_POLICY_UNSUPPORTED` as a non-recoverable error. r=media-playback-reviewers,jolin

According to Microsoft, MF_E_POLICY_UNSUPPORTED is a non-recoverable error and
should be surfaced to the website. The pipeline automatically handles outputting
video at a lower resolution if the content license and current playback
configuration allow for it. When it’s not able to do that, it will trigger
MF_E_POLICY_UNSUPPORTED.

Some content can continue playback at a lower resolution on a
non-HDCP-compatible display, while other content may fail with
MF_E_POLICY_UNSUPPORTED.

Another aspect here is that constriction is not supported with hardware DRM. So
if hardware DRM is being used during playback of content with a license that
allows constriction when HDCP is not enabled or supported, playback will still
fail with MF_E_POLICY_UNSUPPORTED upon connecting a monitor that doesn’t support
HDCP.

Differential Revision: https://phabricator.services.mozilla.com/D270395

Diffstat:
Mdom/media/ipc/MFMediaEngineParent.cpp | 9---------
1 file changed, 0 insertions(+), 9 deletions(-)

diff --git a/dom/media/ipc/MFMediaEngineParent.cpp b/dom/media/ipc/MFMediaEngineParent.cpp @@ -305,15 +305,6 @@ void MFMediaEngineParent::NotifyError(MF_MEDIA_ENGINE_ERR aError, if (aResult == MSPR_E_NO_DECRYPTOR_AVAILABLE) { NotifyDisableHWDRM(); } - // https://learn.microsoft.com/en-us/windows/win32/api/mfmediaengine/nf-mfmediaengine-imfextendeddrmtypesupport-istypesupportedex - // This error indicates an invalid HDCP status, which should be hidden - // from users to allow playback to continue. The CDM will later notifies - // of the key status change to `output-restricted`, so the web application - // can be aware of it. - if (aResult == MF_E_POLICY_UNSUPPORTED) { - LOG("Ignore MF_E_POLICY_UNSUPPORTED, not a real decode error!"); - return; - } #endif (void)SendNotifyError(error); return;