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)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: petcuandrei, Unassigned)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

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.
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
Chris, does it ring a bell?
Flags: needinfo?(cpearce)
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)
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.)
(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.
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? :)
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 :)
(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 :)
Ben, can we make this happen in Balrog? That would be awesome. Thanks!
Flags: needinfo?(bhearsum)
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.
(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)
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!
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.
(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.
(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.
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.
Tested with the Netflix link. It's fixed in the latest build. I tested on a new profile.
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)
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: