Closed Bug 1180610 Opened 9 years ago Closed 9 years ago

[EME] EME plugin voucher disappearing after launch not handled

Categories

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

defect

Tracking

()

VERIFIED FIXED
mozilla42
Tracking Status
firefox39 --- wontfix
firefox40 + verified
firefox41 + fixed
firefox42 + verified

People

(Reporter: cpearce, Assigned: cpearce)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

I missed a case in bug 1177461; if the EME plugin voucher disappears after we've started up, or right after we installed the plugin, *and* the site requesting EME does not specify a version number in the keySystem string, we'll not trigger the check to see if the plugin voucher is on disk before advertising that Adobe EME is available.

This means if something is interfering with the EME plugin download/installation, we'll not properly fallback to Silverlight.
If the EME plugin voucher is removed (or fails to write, or quarantined by anti-virus) *after* installation but before we've restart, *and* if the site accessing EME doesn't specify a CDM version in the keysystem string, we will bail out of EnsureMinCDMVersion() with a success code before we hit the check to verify that the plugin voucher is on disk. So we need to move version check down to the end of EnsureMinCDMVersion().
Comment on attachment 8629864 [details] [diff] [review]
Patch: Handle EME plugin voucher disappearing after installation before restart

Review of attachment 8629864 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/media/eme/MediaKeySystemAccess.cpp
@@ +185,5 @@
>      }
>    }
>  #endif
>  
> +  if (aMinCdmVersion == NO_CDM_VERSION) {

I think we can get rid of this if block for we also return MediaKeySystemStatus::Available at the bottom.
Attachment #8629864 - Flags: review+
Comment on attachment 8629864 [details] [diff] [review]
Patch: Handle EME plugin voucher disappearing after installation before restart

Approval Request Comment
[Feature/regressing bug #]: EME

[User impact if declined]: Without this patch, some users who have their EME plugin installation being interfered with by some unknown actor, won't be able to fallback to Silverlight, so their premium video won't work.

We're seeing Adobe's EME plugin files disappearing from disk. My previous checks to detect this wouldn't trigger if script called the API to query for Adobe EME in a certain way, so we need to cover that as well.

[Describe test coverage new/current, TreeHerder]: Local testing. We can't test this case with automation as it's specific to Adobe. We have a lot of other mochitests for the EME feature in general however.

[Risks and why]: Low; we're just changing the order of some conditionals.

[String/UUID change made/needed]: None.
Attachment #8629864 - Flags: approval-mozilla-beta?
Attachment #8629864 - Flags: approval-mozilla-aurora?
Flags: needinfo?(cpearce)
[Tracking Requested - why for this release]: We need this in 40; it fixes a contributor to our EME error rate.
Comment on attachment 8629864 [details] [diff] [review]
Patch: Handle EME plugin voucher disappearing after installation before restart

Although this has no yet hit m-c, it is an ordering change the Chris has tested to the best of his ability. We need to get this tested with an audience to know if it is effective. Aurora+ Beta+
Attachment #8629864 - Flags: approval-mozilla-beta?
Attachment #8629864 - Flags: approval-mozilla-beta+
Attachment #8629864 - Flags: approval-mozilla-aurora?
Attachment #8629864 - Flags: approval-mozilla-aurora+
Chris, this is one of the bugs you wanted in 40 Beta2 but the fix was backed out due to bustage.
Flags: needinfo?(cpearce)
https://hg.mozilla.org/mozilla-central/rev/9dbcee65bcee
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
Flags: qe-verify+
(In reply to Edwin Flores [:eflores] [:edwin] from comment #12)
> Nuked the offending line.
> 
> https://hg.mozilla.org/releases/mozilla-beta/rev/53763147728b

FYI, this missed the cut-off for 40.0b2. It'll be in b3 at the end of the week.
I used old Nightly from 2015-06-20 on Windows 7 64-bit to reproduce the initial issue, in order to verify the fix.

- I started old Nightly, I waited for EME plugin to install, connected to a US proxy in order to access Netflix (for some reason plugin does not install using proxy, or maybe I did not wait more then 10 minutes), accessed some videos from Netflix, no files were missing from eme-adobe folder. Restarted the browser, crashed it, files are still there and videos are played normally.
- Using new profile I deleted .voucher file, played a few videos from Netflix and they worked as expected using EME plugin. After I restarted all files .voucher, .info, .dll files were gone but videos still worked as expected using EME plugin. Shouldn`t videos use Silverlight in this case?

Same behavior using Firefox 40 beta 2. I know this fix will enter 40 beta 3, but I was wondering if I`m testing this correctly. Any guidance for manual verification, demo pages would be appreciated.
Flags: needinfo?(cpearce)
(In reply to Bogdan Maris, QA [:bogdan_maris] from comment #15)
>(for some reason plugin does not install
> using proxy, or maybe I did not wait more then 10 minutes)

Really?? That's really interesting! What proxy are you using??
Flags: needinfo?(bogdan.maris)
(In reply to Bogdan Maris, QA [:bogdan_maris] from comment #15)
> I used old Nightly from 2015-06-20 on Windows 7 64-bit to reproduce the
> initial issue, in order to verify the fix.
> 
> - I started old Nightly, I waited for EME plugin to install, connected to a
> US proxy in order to access Netflix (for some reason plugin does not install
> using proxy, or maybe I did not wait more then 10 minutes), accessed some
> videos from Netflix, no files were missing from eme-adobe folder. Restarted
> the browser, crashed it, files are still there and videos are played
> normally.
> - Using new profile I deleted .voucher file, played a few videos from
> Netflix and they worked as expected using EME plugin. After I restarted all
> files .voucher, .info, .dll files were gone but videos still worked as
> expected using EME plugin. Shouldn`t videos use Silverlight in this case?

What us happening in this case is at startup we check to ensure all files are there, and if not we delete them and the next time you try to use Netflix the EME plugin will re-download. So you should see the EME plugin files reappear in the profile dir.

So we should not fallback to Silverlight, we should re-install the EME plugin, and EME should work.

> Any guidance for manual
> verification, demo pages would be appreciated.

The problem is that we think something is deleting the voucher file after install.

So STR is:
* Wait for EME plugin to install, or otherwise ensure it's installed.
* Delete the voucher file.
* Try to use Netflix. The EME plugin should re-install, and it should play.

Without this fix (i.e. in Firefox 38 or 39), with the above STR you should see an error on Netflix.
Flags: needinfo?(cpearce)
(In reply to Chris Pearce (:cpearce) from comment #16)
> (In reply to Bogdan Maris, QA [:bogdan_maris] from comment #15)
> >(for some reason plugin does not install
> > using proxy, or maybe I did not wait more then 10 minutes)
> 
> Really?? That's really interesting! What proxy are you using??

I used some found online, from: http://www.us-proxy.org/. 
I did tried now with other IPs and I think that the bad connection may have caused the installation of EME plugin to fail, since now the plugin installs in 2 - 20 minutes with some IPs and fail with others.
Flags: needinfo?(bogdan.maris)
Reproduced with Nightly 2015-06-19, under Windows 7 64-bit: with STR from comment 17, I can see the error on Netflix -> http://i.imgur.com/0zDrCHs.png
Verified fixed with Firefox 40 beta 3 (Build ID: 20150709163524), under Windows 7 64-bit and Windows 10 32-bit.
Confirming this fix with 42.0b5 (Build ID: 20151008162217) too, under Windows 7 64-bit and Windows 10 32-bit.
Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: