Closed Bug 1858546 Opened 1 year ago Closed 1 year ago

[wmfme] load external Widevine L1 CDM library

Categories

(Core :: Audio/Video: Playback, task, P2)

task

Tracking

()

RESOLVED FIXED
122 Branch
Tracking Status
firefox122 --- fixed

People

(Reporter: alwu, Assigned: alwu)

References

(Blocks 1 open bug)

Details

Attachments

(3 files, 2 obsolete files)

Currently we haven't figured out a way to deploy Widevine L1 library on Firefox, this bug is used to handle that and assign the correct library path. In addition, we also need to figure the sandbox restriction for loading the external library.

After landing bug 1862051, we will be able to get Widevine L1 dll by adding following prefs to all.js

pref("media.gmp-widevinecdm-l1.visible", true);
pref("media.gmp-widevinecdm-l1.enabled", true);
pref("media.gmp-widevinecdm-l1.forceInstall", true);
pref("media.gmp.log.dump", true);
pref("media.gmp.log.level", 0);

Then there will be a gmp-widevinecdm-l1 folder under the $PROFILE. Eg. My Widevine dll is put in C:\mozilla-source\mozilla-unified\obj-x86_64-pc-windows-msvc\tmp\profile-default\gmp-widevinecdm-l1\1.0.2512.1.

Then we need to

  1. pass the path of L1 dll to here
  2. disable Cig for the CDM process, Widevine L1 can't work with this mitigation enabled.
  3. add dll path to mAllowedFilesRead when starting the CDM process (in my testing, I added the code here)
  4. add dll path to LPAC to get the permission, like this

In my own testing, I can confirm that Firefox can play Widevine L1 when LPAC is enabled.

Group: mozilla-employee-confidential
Depends on: 1862051

(In reply to Alastor Wu [:alwu] from comment #1)
...

Then we need to

  1. pass the path of L1 dll to here
  2. disable Cig for the CDM process, Widevine L1 can't work with this mitigation enabled.
  3. add dll path to mAllowedFilesRead when starting the CDM process (in my testing, I added the code here)
  4. add dll path to LPAC to get the permission, like this

In my own testing, I can confirm that Firefox can play Widevine L1 when LPAC is enabled.

I think that if we do 4 (which seems like the better option), we won't need 3.

Depends on D192888

Depends on D192889

Attachment #9362234 - Attachment is obsolete: true
Blocks: 1863800
Attachment #9362232 - Attachment description: WIP: Bug 1858546 - part1 : load Widevine L1 dll. → Bug 1858546 - part1 : load Widevine L1 dll.
Attachment #9362233 - Attachment description: WIP: Bug 1858546 - part2 : diable Cig for MFCDM process. → Bug 1858546 - part2 : diable Cig for MFCDM process.
Attachment #9362237 - Attachment description: WIP: Bug 1858546 - part3 : ensure LPAC permission on Widevine L1 path. → Bug 1858546 - part3 : ensure LPAC permission on Widevine L1 path.
Attachment #9362232 - Attachment description: Bug 1858546 - part1 : load Widevine L1 dll. → Bug 1858546 - part1 : store L1 path in gfx variable.

Depends on D192889

Attachment #9362237 - Attachment is obsolete: true
Attachment #9362232 - Attachment description: Bug 1858546 - part1 : store L1 path in gfx variable. → Bug 1858546 - part1 : ensure LPAC permission on Widevine L1 path.
Pushed by alwu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8d7666c29292 part1 : ensure LPAC permission on Widevine L1 path. r=bobowen,aosmond https://hg.mozilla.org/integration/autoland/rev/8db74f3b7aa2 part2 : diable Cig for MFCDM process. r=bobowen https://hg.mozilla.org/integration/autoland/rev/dde990208a4f part3 : load Wideinve L1 dll. r=aosmond
Flags: needinfo?(alwu)
Pushed by alwu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/241391f4d50f part1 : ensure LPAC permission on Widevine L1 path. r=bobowen,aosmond https://hg.mozilla.org/integration/autoland/rev/7b58ee78cfcd part2 : diable Cig for MFCDM process. r=bobowen https://hg.mozilla.org/integration/autoland/rev/c76357a03d76 part3 : load Wideinve L1 dll. r=aosmond
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: