Closed
Bug 1476080
Opened 6 years ago
Closed 6 years ago
ASan build cannot install/run GMP plugins (e.g. EME Widevine)
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: petcuandrei, Unassigned)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
(deleted),
image/png
|
Details |
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Build ID: 20180716100102
Steps to reproduce:
Grab the latest ASan build from here https://developer.mozilla.org/en-US/docs/Mozilla/Testing/ASan_Nightly_Project
Make sure no other Firefox process is running then start the ASan build.
Create a new profile in about:profiles then launch the profile
Go to this page or any other Netflix page https://www.netflix.com/es-en/title/80216752
Click the "Activate DRM" in the top right corner of the page.
Wait a bit and refresh the Netflix page
Actual results:
The DRM never gets installed.
Expected results:
I should be able to install the DRM and see the Netflix video. If I do the exact thing in normal Nightly it works fine.
Reporter | ||
Comment 1•6 years ago
|
||
Comment 2•6 years ago
|
||
Thanks for your report! I have only recently noticed that no plugins seem to work in the ASan builds, at all. I tried to test with Flash and it seems that the plugin-container process does not start up properly. I guess it is also used for the DRM module.
Status: UNCONFIRMED → NEW
Component: Untriaged → Plug-ins
Ever confirmed: true
OS: Unspecified → Linux
Product: Firefox → Core
Hardware: Unspecified → x86_64
Summary: ASan build cannot install EME Widevine plugin → ASan build cannot install/run plugins (e.g. EME Widevine or Flash plugin)
Version: 63 Branch → Trunk
Updated•6 years ago
|
Blocks: asan-nightly-project
Comment 4•6 years ago
|
||
The problem here is that we don't have a Balrog rule to serve a list of plugins for ASan builds to download.
If you set media.gmp.log.dump=true and media.gmp.log.level=0 you see the following logging in the browser console (Ubuntu18.04) when you poll for GMP updates:
1531866648262 Toolkit.GMP INFO GMPInstallManager._getURL Using url: https://aus5.mozilla.org/update/3/GMP/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml
1531866648282 Toolkit.GMP INFO GMPInstallManager._getURL Using url (with replacement): https://aus5.mozilla.org/update/3/GMP/63.0a1/20180717100216/Linux_x86_64-gcc3-asan/en-US/nightly/Linux%204.15.0-23-generic%20(GTK%203.22.30%2Clibpulse%2011.1.0)/default/default/update.xml
So %BUILD_TARGET% is being substituted as "Linux_x86_64-gcc3-asan", and we don't have a balrog rule for that. If you remove the '-asan" from the URL with replacement above and view source, you see the expected XML document with valid plugin locations.
Whereas for my distro built Ubuntu Firefox release, for the same I get:
1531866897211 Toolkit.GMP INFO GMPInstallManager._getURL Using url: https://aus5.mozilla.org/update/3/GMP/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml
1531866897212 Toolkit.GMP INFO GMPInstallManager._getURL Using url (with replacement): https://aus5.mozilla.org/update/3/GMP/61.0.1/20180704192850/Linux_x86_64-gcc3/null/release-cck-ubuntu/Linux%204.15.0-23-generic%20(GTK%203.22.30%2Clibpulse%2011.1.0)/canonical/1.0/update.xml
So to solve this, we either need to add a balrog rule for the ASan BUILD_TARGET or we need to change the BUILD_TARGET (or substitution thereof) for ASan builds to match normal Linux.
Flags: needinfo?(cpearce)
Comment 5•6 years ago
|
||
Note that ASan Nightly builds disable sandboxing, so the DRM won't be sandboxed as it normally is.
(That wouldn't be related to why it's not working: normally we disallow EME on Linux when the OS doesn't support sandboxing, but it's allowed if sandboxing was turned off in the build configuration.)
Comment 6•6 years ago
|
||
(In reply to Christian Holler (:decoder) from comment #2)
> Thanks for your report! I have only recently noticed that no plugins seem to
> work in the ASan builds, at all. I tried to test with Flash and it seems
> that the plugin-container process does not start up properly. I guess it is
> also used for the DRM module.
As I understand it, NPAPI plugins and media plugins don't share much common infrastructure that isn't also used by content processes, except that they use the plugin-container executable and not the firefox executable.
Reporter | ||
Comment 7•6 years ago
|
||
This makes it really hard for me to use the ASan build as the default browser. That means no more new bug reports from me until it gets fixed :(
Can I somehow do a workaround for this so that I can carry on using the ASan build as default and nag you with new bugs as I find them? :)
Comment 8•6 years ago
|
||
So, I tried to see if I can work around this, and it worked:
I set the following pref: media.gmp-manager.url;https://aus5.mozilla.org/update/3/GMP/%VERSION%/20180717100216/Linux_x86_64-gcc3/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml
(I replaced the BUILD_ID and BUILD_TARGET in the URL).
This probably doesn't scale, and might blow up if the ABI changes... but still :)
Comment 9•6 years ago
|
||
(In reply to Valentin Gosu [:valentin] from comment #8)
> So, I tried to see if I can work around this, and it worked:
> I set the following pref:
> media.gmp-manager.url;https://aus5.mozilla.org/update/3/GMP/%VERSION%/
> 20180717100216/Linux_x86_64-gcc3/%LOCALE%/%CHANNEL%/%OS_VERSION%/
> %DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml
> (I replaced the BUILD_ID and BUILD_TARGET in the URL).
>
> This probably doesn't scale, and might blow up if the ABI changes... but
> still :)
Actually, after doing this and getting the plugin, you can reset the pref and the plugin will stick around.
It seems like it would be simpler add a balrog rule for ASAN.
Otherwise, the ASAN builds would have to hardcode the build_id of the last nightly channel build :)
Comment 10•6 years ago
|
||
Ben, can we make this happen in Balrog? That would be awesome. Thanks!
Flags: needinfo?(bhearsum)
Reporter | ||
Comment 11•6 years ago
|
||
I do have the EME plugin downloaded.... or I think I have.... I use the same profile in Nightly and ASan Nightly.
Will try your proposal.
Comment 12•6 years ago
|
||
(In reply to Christian Holler (:decoder) from comment #10)
> Ben, can we make this happen in Balrog? That would be awesome. Thanks!
Sure. Can they use the same bits as non-ASan 64-bit builds (eg: https://redirector.gvt1.com/edgedl/widevine-cdm/1.4.8.1008-linux-x64.zip).
Flags: needinfo?(bhearsum)
Reporter | ||
Comment 13•6 years ago
|
||
Uhu!!! I set to https://aus5.mozilla.org/update/3/GMP/%VERSION%/20180716100102/Linux_x86_64-gcc3/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml and now it works :D Got the target from the original value and the ID from about:support
Thank you, Valentin!
Comment 14•6 years ago
|
||
BTW, here's a trivial testcase for this bug which uses WideVine & doesn't require login or anything:
https://bitmovin.com/demos/drm
In affected ASAN nightly builds:
- I get the yellow "Nightly is installing components [etc] Please try again later" bar every time I load.
- The page says "Detected [firefox-logo] No DRM"
In normal Nightly:
- I end up not seeing that yellow bar after a minute or so.
- and then the page says "Detected [firefox-logo] using widevine" and a chain-link icon shows up at the left end of my URL bar to indicate a DRM plugin is in use.
Comment 15•6 years ago
|
||
(In reply to Ben Hearsum (:bhearsum) from comment #12)
> (In reply to Christian Holler (:decoder) from comment #10)
> > Ben, can we make this happen in Balrog? That would be awesome. Thanks!
>
> Sure. Can they use the same bits as non-ASan 64-bit builds (eg:
> https://redirector.gvt1.com/edgedl/widevine-cdm/1.4.8.1008-linux-x64.zip).
Judging from previous comments, using the same CDM seems to work. Mixing ASan and non-ASan code also isn't generally a problem.
Comment 16•6 years ago
|
||
(In reply to Christian Holler (:decoder) from comment #15)
> (In reply to Ben Hearsum (:bhearsum) from comment #12)
> > (In reply to Christian Holler (:decoder) from comment #10)
> > > Ben, can we make this happen in Balrog? That would be awesome. Thanks!
> >
> > Sure. Can they use the same bits as non-ASan 64-bit builds (eg:
> > https://redirector.gvt1.com/edgedl/widevine-cdm/1.4.8.1008-linux-x64.zip).
>
> Judging from previous comments, using the same CDM seems to work. Mixing
> ASan and non-ASan code also isn't generally a problem.
This should be done now - I see Widevine in https://aus5.mozilla.org/update/3/GMP/63.0a1/20180717100216/Linux_x86_64-gcc3-asan/en-US/nightly/Linux%204.15.0-23-generic%20(GTK%203.22.30%2Clibpulse%2011.1.0)/default/default/update.xml. I haven't been able to verify on Netflix because I don't have an account.
Comment 17•6 years ago
|
||
This was broken for me about an hour ago (using Spotify [account required] as well as the demo page from comment 14) but it's working now.
I don't have Netflix credentials, but I can confirm that these two use-cases are fixed at least.
Reporter | ||
Comment 18•6 years ago
|
||
Tested with the Netflix link. It's fixed in the latest build. I tested on a new profile.
Comment 19•6 years ago
|
||
I'm going to mark this FIXED based on comment 17 and comment 18. Thanks :bhearsum for fixing this server-side!
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Summary: ASan build cannot install/run plugins (e.g. EME Widevine or Flash plugin) → ASan build cannot install/run GMP plugins (e.g. EME Widevine)
Updated•3 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•