i-rinat / freshplayerplugin

ppapi2npapi compatibility layer
MIT License
727 stars 52 forks source link

Flash error code 3321 #359

Open rasmus-b opened 6 years ago

rasmus-b commented 6 years ago

Running Ubuntu 16.04 and Firefox 55 i installed freshplayer from webupd8 repository (ppa:nilarimogard/webupd8). I have then downloaded a chrome OS image to get the libpepflashplayer.so with DRM following these instructions https://ubuntuforums.org/showthread.php?t=2363550

libpepflashplayer.so from chrome OS image is 26.0.0.102 and it has DRM. strings -a libpepflashplayer.so | grep PPB_Flash_DRM returns PPB_Flash_DRM;1.1 PPB_Flash_DRM;1.0

When i test DRM at http://drmtest2.adobe.com:8080/SVP/SampleVideoPlayer_FP.html# with the video http://drmtest2.adobe.com:8080/Content/anonymous.f4v i get Flash error code 3321.

A quick Google search tells me it means the individualization step failed. I don't know it it has to do with Freshplayer, with Firefox, with the libpepflashplayer.so file from the Chrome OS image or something else.

Hitechcomputergeek commented 6 years ago

Firefox is removing NPAPI support from Firefox, see https://support.mozilla.org/en-US/kb/npapi-plugins. Send all hate to Mozilla for this.

i-rinat commented 6 years ago

Fails with error code 3321 for me too. There are no new PPAPI calls. It looks like Flash performing some validation internally, but I don't have any idea what kind of. In the web numerous resources mention error 3321, and say that it's related to some URL denying by Chrome browser. I don't have restrictions implemented in the code, since Flash always asked for unrestricted URL access. So that part is mysterious too.

i-rinat commented 6 years ago

Tested a little bit more, and noticed "i15n" in error message. I though it was i18n, which is shortened "internationalization". But it's "i15n", which is "individualization". As far as I understand it's a process of acquiring decryption key or something similar. It's done via POST request, which somehow fails.

Long story sort, I tried Firefox 52.4.0 esr and drm test page works there.

Something changed in Firefox since 52.0, and I don't know yet, what particularly. More debugging needed.

i-rinat commented 6 years ago

Should be fixed in 4a29ab58e28e31e0e8a92dfd65e45775e73dcb21, which is now pushed to the master branch.

i-rinat commented 6 years ago

v0.3.9 have the fix included.

rasmus-b commented 6 years ago

I would love to try it, but the newest compiled version of freshplayer i can find is 0.3.6, and I have never tried to compile from source code. Is v 0.3.9 around somewhere, or can somebody write a step by step guide to compiling it?

Many thanks in advance

i-rinat commented 6 years ago

write a step by step guide

There is an instruction on how to build and install the plugin: https://github.com/i-rinat/freshplayerplugin#install. It looks sufficient to me, but since I compile routinely, can't say whenever it's easy to follow.

rasmus-b commented 6 years ago

I finally managed to build the plugin and can confirm that everything works fine. Many thanks for all the help.

For anyone not used to building I can add that what took me a while to figure out was that the cmake command needed the directory of the project like this:

$ sudo cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. freshplayerplugin-0.3.9