[Widevine] Playback on Netflix and Amazon Failing on macOS Nightly with the fix for bug 1827747
Categories
(Core :: Audio/Video: GMP, defect, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr102 | --- | unaffected |
| firefox113 | --- | unaffected |
| firefox114 | --- | unaffected |
| firefox115 | + | verified |
| firefox116 | --- | verified |
People
(Reporter: haik, Assigned: haik)
References
(Regression)
Details
(Keywords: regression)
Attachments
(1 file, 1 obsolete file)
With the fix for bug 1827747 "Use a new executable for the macOS GMP process", Widevine video playback on Amazon.com and Netflix.com no longer works.
As a workaround set media.plugin_helper_process.enabled to false in about:config.
I'll use this bug to pref off the change until the problem is resolved.
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Comment 1•2 years ago
|
||
Pref off the new Media Plugin Helper executable and revert to using plugin-container for GMP child processes.
| Assignee | ||
Comment 2•2 years ago
•
|
||
While I haven't verified what is causing the problem yet, I suspect we need to make a change related to VerifyCdmHost_0 in gmp-clearkey code.
The codepaths used in production builds with Widevine differ compared to local builds which might explain why this wasn't detected in testing.
@Jim, do you know who would be the best person to ask about the CDM/gmp-clearkey code?
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Updated•2 years ago
|
Comment 3•2 years ago
•
|
||
https://hg.mozilla.org/integration/autoland/rev/7ad6a3ad9db7
Use a new executable for the GMP process named "<App Name> Media Plugin Helper" so that the content processes (using the plugin-container executable) and the GMP process can be signed with different entitlements allowing for the use of more secure entitlements.
To get the benefits of using a new executable for GMP, additional changes are needed in the codesigning infrastructure repo to enable signing plugin-container and the new executable with a reduced set of entitlements.
The executable is built as media-plugin-helper and then renamed to "<App Name> Media Plugin Helper" so it appears with a user friendly name in Activity Monitor. For example, "Firefox Media Plugin Helper". (The GMP process runs with limited privileges preventing it from setting its own "nice" process name.)
Naive question: Does MacOS need to differ from Linux?
On Linux (I'm using Mozilla's new debian package: bug 1751153 comment 45),
- the firefox binary is spawned for content processes (bug 1277968):
e.g. /usr/lib/firefox-nightly/firefox-bin -contentproc -childID 59 -isForBrowser -prefsLen 32893 -prefMapSize 243437 -jsInitLen 243676 -parentBuildID 20230520092140 -appDir /usr/lib/firefox-nightly/browser {99ed8a0f-7eae-4d20-b50a-22d7e1e430d4} 4149 true tab- At the moment, updates done by package managers replace the firefox binary which makes it impossible to open further tabs (about:restartrequired is displayed then).
But with bug 1609882 (dom.ipc.forkserver.enable=true), the old and still running firefox binary can be cloned to avoid about:restartrequired warnings.
- At the moment, updates done by package managers replace the firefox binary which makes it impossible to open further tabs (about:restartrequired is displayed then).
- plugin-container is for GMP:
e.g. /usr/lib/firefox-nightly/plugin-container /home/darkspirit/.mozilla/firefox/fay7j5mf.default-nightly/gmp-gmpopenh264/2.3.2 {726a96ac-7c28-488e-a485-c29e5b1c5cd6} 4149 true gmplugin
| Assignee | ||
Comment 4•2 years ago
|
||
(In reply to Darkspirit from comment #3)
Naive question: Does MacOS need to differ from Linux?
To clarify the question, do you mean to ask if Linux should also adopt this change (bug 1827747) to help with about:restartrequired?
Updated•2 years ago
|
Comment 5•2 years ago
•
|
||
(In reply to Haik Aftandilian [:haik] from comment #4)
(In reply to Darkspirit from comment #3)
Naive question: Does MacOS need to differ from Linux?
To clarify the question, do you mean to ask if Linux should also adopt this change (bug 1827747) [...]
Yes - at the time of writing my comment. (I'm not a developer, just a user/tester).
Sorry, I was confused about this MacOS special casing and the meaning of plugin-container.
I was not aware
- that Linux' firefox-bin and Mac's new gmp process also just contain plugin-container,
- that Mac can't use firefox-bin for content processes as it would cause a Dock icon per content process (bug 1827486 comment 24).
Now I have found bug 1532782 which is about removing the plugin-container binary from Linux. Currently it's only used for GMP.
bug 1470591/bug 1609882 (dom.ipc.forkserver.enable) would fix the about:restartrequired problem on Linux and allegedly also speed up content process launches. (Should it therefore also be enabled on macOS and could browser.tabs.remote.warmup.enabled be disabled then? Shouldn't it also cover RDD/utility/socket processes and maybe even GMP?)
Linux:
- current default:
- firefox-bin as main process
- firefox-bin as content/RDD/socket/utility/webextension/privileged processes
- plugin-container as GMP process
- firefox-bin as main process
- with manually enabled dom.ipc.forkserver.enable (bug 1470591/bug 1609882):
- firefox-bin as main process
- firefox-bin as forkserver
- firefox-bin as content/webextension/privileged processes
(RDD/socket/utility/GMP are not below forkserver - should they? Do they currently fail to re-launch in case firefox-bin has been replaced?)
- firefox-bin as content/webextension/privileged processes
- firefox-bin as socket/utility process
- plugin-container as GMP process
- firefox-bin as forkserver
- firefox-bin as main process
Comment 7•2 years ago
|
||
| bugherder | ||
Comment 8•2 years ago
|
||
Backed out for breaking local artifacts
Backout link: https://hg.mozilla.org/mozilla-central/rev/3df3c012f9c77b849d7b1f85ea0f54f9ffecc949
Comment 9•2 years ago
|
||
Fixed by backout in bug 1827747 comment 8.
Comment 10•2 years ago
|
||
Backed out changeset 0ceb457743b4 (bug 1834172)
Backed out changeset 7ad6a3ad9db7 (bug 1827747)
Updated•2 years ago
|
Updated•2 years ago
|
Reproducible on a 2023-05-20 Nightly build on macOS 12.
Verified as fixed on Firefox 115.0b4(build ID: 20230611180300) and Nightly 116.0a1(build ID: 20230612211509) on macOS 12.
Description
•