How to Configure the Latest Version of Flash on Firefox for Linux: by the Fresh Player Plugin

As you may know, Adobe stopped supporting the NPAPI version of Flash on Linux and the latest NPAPI version of Flash player at version 11.2 released back in 2012 will only receive security fixes. Even the security fixes to the 11.2 version of the Flash Plugin your Firefox is using will end on May 4, 2017, five years from the release date. I am sure your latest Firefox is complaining to you that your installed Flash plugin is outdated and Firefox is preventing it from running if you are using the NPAPI based 11.2 version of the Flash Plugin.

flash-plugin-outdated.png

Adobe points Linux users to the PPAPI or Pepper Plugin API version of Flash Plugin included in Chrome. The Pepper Flash plugin can also be installed in Chromium and Opera supporting the PPAPI. For various reasons, Firefox developers are not interested in implementing PPAPI in Firefox by current.

However, that does not mean Firefox users on Linux can not use latest versions of Flash. The open-source freshplayerplugin which is a PPAPI-host NPAPI-plugin adapter for the Flash plugin comes in and allows you to use the latest Flash plugin from Chrome in Firefox on Linux.

This post will introduce how to use the latest version of Flash Plugin on Firefox for Fedora Linux. For Ubuntu users, I also provide a quick note.

The very first step is, of course, to install Google Chrome as the Flash Plugin we will use is from Chrome. Please check How to install Chrome on Fedora Linux to install Chrome first.

Quick method: install pre-built Fresh Player Plugin

Get the pre-built freshplayerplugin library from this repository.

For Fedora 22 x86-64 users, you can download libfreshwrapper-flashplayer.so by this direct link.

Then save the downloaded libfreshwrapper-flashplayer.so to

~/.mozilla/plugins/

Restart Firefox and you will see that the latest version of Flaush Plugin is detected and used by Firefox by trying the Flash about page (version 19.0 as shown in the following picture).

firefox-flash-player-19.png

You can also check the version detected by Firefox by browsing “about:plugins”.

flash-plugin-latest-linux.png

Manual method: download source code of the Fresh Player Plugin and build it

Following is the instructions for those who would like to build the fresh player plugin by yourselves.

Install needed packages:

$ sudo dnf install cmake gcc gcc-c++ pkgconfig ragel alsa-lib-devel openssl-devel \
           glib2-devel pango-devel mesa-libGL-devel libevent-devel gtk2-devel         \
           libXrandr-devel libXrender-devel libXcursor-devel libv4l-devel             \
           mesa-libGLES-devel  ffmpeg-devel libva-devel libvdpau-devel libdrm-devel   \
           pulseaudio-libs-devel

Clonse the freshplayerplugin source code:

$ git clone https://github.com/i-rinat/freshplayerplugin
Cloning into 'freshplayerplugin'...
remote: Counting objects: 9977, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 9977 (delta 2), reused 0 (delta 0), pack-reused 9965
Receiving objects: 100% (9977/9977), 5.69 MiB | 77.00 KiB/s, done.
Resolving deltas: 100% (6819/6819), done.
Checking connectivity... done.

Prepare to build the freshplayerplugin:

$ cd freshplayerplugin/
$ mkdir build
$ cd build/
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
-- The C compiler identification is GNU 5.1.1
-- The CXX compiler identification is GNU 5.1.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28") 
-- checking for modules 'alsa;glib-2.0;gio-2.0;x11;xrandr;xrender;xcursor;gl;libdrm;libevent;libevent_pthreads;cairo;pango;pangocairo;pangoft2;freetype2;openssl'
--   found alsa, version 1.0.29
...
-- Looking for av_frame_free - found
-- Looking for avcodec_free_context
-- Looking for avcodec_free_context - found
-- checking for module 'libv4l2'
--   found libv4l2, version 1.6.2
-- Configuring done
-- Generating done
-- Build files have been written to: /home/zma/project/3rd-party/freshplayerplugin/build

Build the freshplayerplugin:

$ make
Scanning dependencies of target parson-obj
[  1%] Building C object 3rdparty/parson/CMakeFiles/parson-obj.dir/parson.c.o
[  1%] Built target parson-obj
Scanning dependencies of target stringify_images
[  2%] Building C object resources/CMakeFiles/stringify_images.dir/stringify_images.c.o
[  4%] Linking C executable stringify_images
[  4%] Built target stringify_images
Scanning dependencies of target img-resource-srcs
[  5%] Generating img_resources.h, img_resources.c
[  5%] Built target img-resource-srcs
Scanning dependencies of target img-resources
[  6%] Building C object resources/CMakeFiles/img-resources.dir/img_resources.c.o
[  8%] Linking C static library libimg-resources.a
[  8%] Built target img-resources
Scanning dependencies of target stringify_text
...
[ 97%] Building C object src/CMakeFiles/freshwrapper-flashplayer.dir/config_pepperflash.c.o
[ 97%] Linking C shared library ../libfreshwrapper-flashplayer.so
[ 97%] Built target freshwrapper-flashplayer
Scanning dependencies of target dep_check
[ 98%] Building C object src/CMakeFiles/dep_check.dir/dep_check.c.o
[100%] Linking C executable dep_check
[100%] Built target dep_check

The libfreshwrapper-flashplayer.so file is built successfully. And you can copy it to your plugin directory:

$ cp libfreshwrapper-flashplayer.so ~/.mozilla/plugins/

Restart Firefox and you will see that the latest version of Flaush Plugin is detected by the Flash about page.

Quick note for installing freshplayerplugin for Ubuntu Users

You may check the pre-compiled freshplayerplug from third party PPA by following commands.

$ sudo add-apt-repository ppa:nilarimogard/webupd8
$ sudo apt-get update
$ sudo apt-get install freshplayerplugin

Eric Zhiqiang Ma

Eric is interested in building high-performance and scalable distributed systems and related technologies. The views or opinions expressed here are solely Eric's own and do not necessarily represent those of any third parties.

3 comments:

  1. That’s nice and all, but Google has stopped supporting Chrome for 32-bit systems. Those of us still using 32-bit are left in the dark because there is no available downloads for Chrome. Chromium is an alternative; however, I don’t believe Flash works in Chromium for Ubuntu 16.04 “Xenial” based OS’s (i.e. Linux Mint 18). I know that Silverlight doesn’t work for streaming Netflix in Chromium. It takes manipulation of Firefox to get Silverlight to work for the 32-bit systems (Netflix streams fine in Chrome on my 64-bit machine).

    There is a very easy workaround, which also works for 64-bit machines (and is a lot simpler than your method above). Install pipelight-plugin, which incorporates Flash, Silverlight, and modifications of Firefox to emulate running in other modes (Win IE11, Win Edge, Mac OSX Safari, Android, iOS etc). No offense, but your way is incredibly complex. Installing Pipelight and then typing “sudo pipelight-plugin –enable flash” will enable Firefox to install the most up to date Flash for Windows on your Linux machine the first time you visit a page that uses Flash. Quick, easy, and painless. No need to install Google Chrome or do anything else (other than enter command lines). As I am typing this, my machine has Adobe Flash 22.0.0.209 and I don’t have Chrome installed. Not only that, but it keeps itself up-to-date. No need to constantly run upgrades or anything of the sort. Set and forget. :) I know it works for Facebook games that didn’t work prior to me installing Pipelight that require an up-to-date Flash Player. http://pipelight.net/cms/

  2. I like the way suggested by Jeff. But please how is possible to keep pipelight plugins updated? Cheers

Leave a Reply

Your email address will not be published. Required fields are marked *