anchor.diff:  
   ## various stuff that can be plugged in
   , flashplayer, hal-flash
  -, MPlayerPlugin, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2, libglvnd
  -, jrePlugin, adoptopenjdk-icedtea-web
  -, bluejeans, djview4, adobe-reader
  -, google_talk_plugin, fribid, gnome3/*.gnome-shell*/
  +, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2, libglvnd
  +, gnome3/*.gnome-shell*/
   , browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow
   , tridactyl-native
   , fx_cast_bridge
  
positive.code:       (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName)
      , nameSuffix ? ""
      , icon ? browserName
      , extraPlugins ? []
      , extraNativeMessagingHosts ? []
      , gdkWayland ? false
      , cfg ? config.${browserName} or {}
  
negative.code:       enableAdobeFlash = cfg.enableAdobeFlash or false;
        ffmpegSupport = browser.ffmpegSupport or false;
        gssSupport = browser.gssSupport or false;
  
        plugins =
          let
            removed = lib.filter (a: builtins.hasAttr a cfg) [
              "enableVLC"
              "enableDjvu"
              "enableMPlayer"
              "jre"
              "icedtea"
              "enableGoogleTalkPlugin"
              "enableFriBIDPlugin"
              "enableGnomeExtensions"
              "enableBluejeans"
              "enableAdobeReader"
            ];
          in if removed != []
             then throw "Your configuration mentions ${lib.concatMapStringsSep ", " (p: browserName + "." + p) removed}. All plugin related options, except for the adobe flash player, have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins)."
             else lib.optional enableAdobeFlash flashplayer;
  
        nativeMessagingHosts =
          ([ ]
            ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass)
  