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.
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
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).
You can also check the version detected by Firefox by browsing “about:plugins”.
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