Closed Bug 1252168 Opened 4 years ago Closed 4 years ago

Hulu triggers EME notification: "The audio or video on this page requires DRM software that Firefox does not support"

Categories

(Core :: Audio/Video: Playback, defect)

Unspecified
Windows
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla47
Tracking Status
firefox44 --- wontfix
firefox45 + fixed
firefox46 + fixed
firefox47 + fixed
firefox-esr45 --- fixed

People

(Reporter: cpeterson, Assigned: cpearce)

References

()

Details

Attachments

(2 files)

@ cpearce: should we reach out to Hulu? What is the preferred way to feature-detect EME key system support without triggering the "requires DRM that Firefox does not support message"? Is UA sniffing in JS, the only option?

People are reporting on Reddit [1] that Hulu is triggering Firefox's "The audio or video on this page requires DRM software that Firefox does not support" error notification.

STR:
1. On Windows, load http://www.hulu.com/watch/13947

RESULT:
Firefox shows the "The Audio or video on this page requires DRM software that Firefox does not support" error notification.

The following messages are logged to the browser console, suggesting Hulu is trying to feature detect multiple EME key systems, including ClearKey, Primetime, and something else (Widevine and/or PlayReady?):

> navigator.requestMediaKeySystemAccess promise rejected 0x80530009 'Key system string is invalid, or key system is unsupported'
> MediaKeySystemAccess::GetKeySystemStatus(org.w3.clearkey, minVer=-1) result=available version='1' msg=''
> MediaKeySystemAccess::GetKeySystemStatus(com.adobe.primetime, minVer=-1) result=available version='17' msg=''
> navigator.requestMediaKeySystemAccess promise rejected 0x80530009 'Key system string is invalid, or key system is unsupported'

On OS X, Hulu triggers the "You must enable DRM to play some audio or video on this page" notification with this browser console error:

> navigator.requestMediaKeySystemAccess promise rejected 0x80530009 'EME has been preffed off'

[1] https://www.reddit.com/r/Hulu/comments/45pd85/how_do_i_fix_the_audio_or_video_on_this_page/
Flags: needinfo?(cpearce)
Reddit users assume this notification means that Firefox is broken and are switching to Chrome, even as the Hulu video plays correctly using Silverlight. We should consider whether the "The audio or video on this page requires DRM software that Firefox does not support" notification is the right approach here.
Anthony, do you have a engineering contact at Hulu? cpearce thought you might.
Flags: needinfo?(ajones)
[Tracking Requested - why for this release]: This issue is causing Hulu users to see a confusing notification box drop-down from our UI. Hulu is querying what EME DRM systems we support, not finding one that both we and it support, and our UI is showing "The audio or video on this page requires DRM software that Firefox does not support", and Hulu is then falling back to Flash but the notification box in our UI is still being shown. That is confusing users enough that they think Firefox is broken and are switching to Chrome to make it go away.

I want to remove the message being displayed in this case. We show other messages related to EME that are helpful (i.e. messages where the user-action to resolve the issue is something other than switching to Chrome), we should keep those.
Assignee: nobody → cpearce
Flags: needinfo?(cpearce)
(In reply to Chris Peterson [:cpeterson] from comment #0)
> @ cpearce: should we reach out to Hulu? What is the preferred way to
> feature-detect EME key system support without triggering the "requires DRM
> that Firefox does not support message"?

Currently there is no way to feature detect without triggering the "requires DRM that Firefox does not support" message.

> Is UA sniffing in JS, the only option?

Yes unfortunately, until we fix it.
This problem only affects Windows. I mentioned OS X in comment 0, but I had flipped some EME prefs to non-default values.

Clearing needinfo for Anthony because he replied in email.
Flags: needinfo?(ajones)
OS: Unspecified → Windows
(In reply to Chris Pearce (:cpearce) from comment #7)
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=e9df290bf51c

This has failures such as:
43416 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_request_notifications.html | 'unsupported-keysystem' observer service result - got "nothing", expected "cdm-not-supported"

That was testing that the removed functionality worked. I removed that case from my patch under review.
Attachment #8726026 - Flags: review?(ajones) → review+
Comment on attachment 8726026 [details]
MozReview Request: Bug 1252168 - Don't send CDM unsupported notifications from Gecko to chrome. r?kentuckyfriedtakahe

https://reviewboard.mozilla.org/r/37765/#review34301
To document this, I wanted to clarify that a user reported calling Hulu to report this constant notification and was instructed to switch browsers to Chrome.

https://www.reddit.com/r/Hulu/comments/45pd85/how_do_i_fix_the_audio_or_video_on_this_page/d0kxsyz
Approval Request Comment
[Feature/regressing bug #]: Hulu.com
[User impact if declined]: Firefox will show a "The audio or video on this page requires DRM software that Firefox does not support" message on every page on Hulu.com if we don't have this patch. Or if Hulu don't deploy a work around.
[Describe test coverage new/current, TreeHerder]: We have lots of EME mochitests.
[Risks and why]: Fairly low; we just refrain from sending a message across from Gecko to chrome JS.
[String/UUID change made/needed]: None.
Attachment #8726137 - Flags: review+
Attachment #8726137 - Flags: approval-mozilla-beta?
Attachment #8726137 - Flags: approval-mozilla-aurora?
Sylvestre asked me via email to land this patch in release, so that's what I'm going to do.
https://hg.mozilla.org/mozilla-central/rev/3511cf3b2242
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
(In reply to Chris Pearce (:cpearce) from comment #14)
> Sylvestre asked me via email to land this patch in release, so that's what
> I'm going to do.

For posterity:
https://hg.mozilla.org/releases/mozilla-release/rev/8368345774ad
https://hg.mozilla.org/releases/mozilla-esr45/rev/8368345774ad
Comment on attachment 8726137 [details] [diff] [review]
3511cf3b2242 rebased for aurora and beta

For posterity too
Attachment #8726137 - Flags: approval-mozilla-beta?
Attachment #8726137 - Flags: approval-mozilla-beta+
Attachment #8726137 - Flags: approval-mozilla-aurora?
Attachment #8726137 - Flags: approval-mozilla-aurora+
I contacted Hulu about working around this error message on their side for Firefox versions before 45.
We tried to verify the patch pushed for this fix, but we were unable to reproduce the bug in the first place. We used affected builds with both the video sample posted in this bug and other Hulu videos available -- still, with no success. Perhaps this was already fixed on both our side and Hulu's by the time we started testing it?

Testing has been conducted on 45.0-build2, using Windows 7 x64, Windows 10 x64, Mac OS X 10.9.5 and Ubuntu 14.04 x64, where we haven't seen the EME notification nor error messages thrown in the Browser Console.
Hulu said they have deployed a work around.

You should also be able to repro on this page:

https://shaka-player-demo.appspot.com/

STR:
1. Open https://shaka-player-demo.appspot.com/
2. Change "Test Manifest" to "Oops (modified YT EME Test) -MP4 multi DRM.
3. Click "Load Stream".

Expected result: Nothing happens (this page requires DRM that Firefox doesn't support)
Observed result: notification box drops down saying Firefox doesn't support required DRM.
I had this issue in Firefox 44.0.2 that started on or around March 1st.  It then stopped around the time of the last post.  But, it started again immediately after upgrading to Firefox 45.

This bug is listed a resolved as fixed so should I get the same eme notification banner in Firefox 45?  Or is this listed as fixed because that banner goes away as long as one checks the enable DRM box in options->content but will always appear if that enable DRM ox in unchecked (even though Hulu doesn't appear to offer HTML5)?
There are two variables here: EME is enabled/disabled, and DRM system being requested is supported/unsupported. We do the check for enabled/disabled before we do the check for supported/unsupported. So that's why you see the banner to enable EME.

We should move the enable/disable check to after the supported/unsupported check, so that users only see the banner in cases where they can click the "make it work" button and have the site work.

I filed bug 1256186 to fix this.
(In reply to b1883900 from comment #22)
> I had this issue in Firefox 44.0.2 that started on or around March 1st.  It
> then stopped around the time of the last post.  But, it started again
> immediately after upgrading to Firefox 45.

cpearce, does Hulu only ignore EME for FF <= 44? Should we ask them to always ignore Firefox EME until further notice?
Flags: needinfo?(cpearce)
I would guess the subset of users who have EME disabled and that are using Hulu is small. Also, clicking the "enable EME" button will make the notification box go away. So I think we can leave things as is for now.
Flags: needinfo?(cpearce)
^ Does that now mean bug 1256186 filed to fix the notification banner for those using Hulu and have EME disabled (via the enable DRM checkbox under options->content) will no longer happen?

Thanks.
(In reply to b1883900 from comment #26)
> ^ Does that now mean bug 1256186 filed to fix the notification banner for
> those using Hulu and have EME disabled (via the enable DRM checkbox under
> options->content) will no longer happen?

Sorry, I realise what I said was ambiguous. I'm still planning to fix bug 1256186, I just meant I don't think it's necessary for us to reach out to Hulu about it.
blocking-b2g: --- → 2.5+
Whiteboard: [ft:conndevices]
blocking-b2g: 2.5+ → ---
Whiteboard: [ft:conndevices]
Whatever Hulu is doing, it started causing this notification banner again yesterday.
(In reply to b1883900 from comment #28)
> Whatever Hulu is doing, it started causing this notification banner again
> yesterday.

We removed the banner... Do you have the latest version of Firefox?
47.0
(In reply to b1883900 from comment #30)
> 47.0

What operating system and version are you running? Windows XP?
Windows 7.
Can you double check this and provide a link to a video where this is happening? When I try to load Hulu on Windows 10, I'm getting prompted to install Flash.
It happens even when just visiting the main hulu.com page for me (other pages as well but just visiting hulu.com is enough for the banner to appear).  I tried it logged in or out in both regular or private windows with the same result.  

I don't think watching shows on Hulu works without Flash Player so one might need to have that installed to confirm first?
I don't see the banner when I browse to Hulu.com. Can you open the Browser Console (press keys CTRL + SHIFT + J), browse to Hulu.com, and then copy what gets logged to the Browser Console window and paste it here? That should log why Firefox thinks your browser is unsupported. Thanks!
navigator.requestMediaKeySystemAccess promise rejected 0x80530009 'EME has been preffed off'
(In reply to b1883900 from comment #36)
> navigator.requestMediaKeySystemAccess promise rejected 0x80530009 'EME has
> been preffed off'

You need to pref on EME. To do that, go: Hamburger menu ("☰") > Preferences > Content and check "Play DRM Content".
I thought that banner was not supposed to appear unless enabling DRM was actually required rather than the banner appearing all the time even if not needed?
You need to log in before you can comment on or make changes to this bug.