Closed Bug 1173144 Opened 4 years ago Closed 4 years ago

[EME] Plugin voucher sometimes disappears

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla41
Tracking Status
firefox39 + fixed
firefox40 --- fixed
firefox41 --- fixed

People

(Reporter: cpearce, Assigned: cpearce)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

Adobe have reported errors where the plugin voucher is not available at runtime. The .info and .dll files are available, we check they're there before starting up the GMP process, and the plugin-container voucher must be there too, but at runtime Adobe's GMP is unable to read their plugin voucher.
I have no idea how the voucher could be missing from disk but the CDM DLL not be, so add a work around; ensure that the EME Plugin Voucher is present before adding the Adobe EME plugin dir to the GMPService. Basically this is the same tests we do for the DLL and .info files.
Assignee: nobody → cpearce
Status: NEW → ASSIGNED
Attachment #8621348 - Flags: review?(spohl.mozilla.bugs)
Can we also verify that the .info file is present? It would be awkward if the CDM still loads in that case but does not have the supplemental DLLs it needs to run correctly.
(In reply to Joe Steele from comment #2)
> Can we also verify that the .info file is present? It would be awkward if
> the CDM still loads in that case but does not have the supplemental DLLs it
> needs to run correctly.

We already do that. :)
Comment on attachment 8621348 [details] [diff] [review]
Patch: Ensure Adobe EME plugin voucher is present before adding GMP dir to GMPService.

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

I wonder about things like "shouldn't this use async file IO" [.exists() can cause jank] and "should we have more specific telemetry for each case", but this looks like a trivial improvement to the status quo.
Attachment #8621348 - Flags: review?(spohl.mozilla.bugs) → review+
Comment on attachment 8621348 [details] [diff] [review]
Patch: Ensure Adobe EME plugin voucher is present before adding GMP dir to GMPService.

Approval Request Comment
[Feature/regressing bug #]: n/a
[User impact if declined]: May help with reducing CDM error rates, where a broken local install causes breakage. This should catch such abnormal conditions, and allow a site to fallback to other mechanisms.
[Describe test coverage new/current, TreeHerder]: AFAIK there's other general coverage of this feature, but the change here is highly specific to the Adobe CDM.
[Risks and why]: Seems very low risk to me, and is just extending an existing check to cover more abnormal conditions.
[String/UUID change made/needed]: n/a
Attachment #8621348 - Flags: approval-mozilla-beta?
Attachment #8621348 - Flags: approval-mozilla-aurora?
TEST-UNEXPECTED-FAIL | all-test-dirs.list:toolkit/mozapps/extensions/test/xpcshell/test_gmpProvider.js | xpcshell return code: 0
TEST-UNEXPECTED-FAIL | all-test-dirs.list:toolkit/mozapps/extensions/test/xpcshell/test_gmpProvider.js | test_pluginRegistration - [test_pluginRegistration : 316] -1 != -1 

This is failing on Linux and Windows (and locally on OS X)...

308     // Create dummy GMP library/info files, and test that plugin registration
309     // succeeds during startup, now that we've added GMP info/lib files.
310     createMockPluginFilesIfNeeded(file, addon.id);
311 
312     gPrefs.setCharPref(gGetKey(GMPScope.GMPPrefs.KEY_PLUGIN_VERSION, addon.id),
313                        TEST_VERSION);
314     clearPaths();
315     yield promiseRestartManager();
316     Assert.notEqual(addedPaths.indexOf(file.path), -1);

file.path == [...]/xpc-profile-pbbBM4/gmp-eme-adobe/1.2.3.4
addedPaths == [...]xpc-profile-pbbBM4/gmp-gmpopenh264/1.2.3.4,/Users/dolske/build/mozilla-central/obj/dist/FirefoxDebug.app/Contents/Resources/gmp-clearkey/0.1

The Adobe CDM shouldn't even be on OS X, so I guess our tests are simulating it? Looks like createMockPluginFilesIfNeeded() probably needs to create a .voucher file too?
Attached patch With test fixSplinter Review
Test passes locally for me with this test fix to create a dummy .voucher file.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=32d0293e45be
Try looks good, thanks for helping out dolske!
https://hg.mozilla.org/mozilla-central/rev/51be9af6ca00
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
Comment on attachment 8621348 [details] [diff] [review]
Patch: Ensure Adobe EME plugin voucher is present before adding GMP dir to GMPService.

Approved for uplift to aurora and beta.
Attachment #8621348 - Flags: approval-mozilla-beta?
Attachment #8621348 - Flags: approval-mozilla-beta+
Attachment #8621348 - Flags: approval-mozilla-aurora?
Attachment #8621348 - Flags: approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.