diff options
author | Lassulus <github@lassul.us> | 2020-12-15 22:16:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-15 22:16:48 +0100 |
commit | 00b8fa792b2d39ef1b42848059ff15d50341decc (patch) | |
tree | 351bdd6d9d78e76a0bd07fbdd9c4fe9605e818f2 /pkgs/applications/networking/browsers | |
parent | de8205f8bb2c6ca14730b00ba3a280db1d364b40 (diff) | |
parent | 1c8c134972b64aa31ceddc2b5054ff664e396910 (diff) | |
download | nixlib-00b8fa792b2d39ef1b42848059ff15d50341decc.tar nixlib-00b8fa792b2d39ef1b42848059ff15d50341decc.tar.gz nixlib-00b8fa792b2d39ef1b42848059ff15d50341decc.tar.bz2 nixlib-00b8fa792b2d39ef1b42848059ff15d50341decc.tar.lz nixlib-00b8fa792b2d39ef1b42848059ff15d50341decc.tar.xz nixlib-00b8fa792b2d39ef1b42848059ff15d50341decc.tar.zst nixlib-00b8fa792b2d39ef1b42848059ff15d50341decc.zip |
Merge pull request #106000 from Luis-Hebendanz/firefoxWrapperAddonSettings
firefox: wrapper updating an addon perserves addon settings
Diffstat (limited to 'pkgs/applications/networking/browsers')
-rw-r--r-- | pkgs/applications/networking/browsers/firefox/wrapper.nix | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index a9888c3c47be..88fb6af4b016 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -1,5 +1,5 @@ { stdenv, lib, makeDesktopItem, makeWrapper, lndir, config -, replace, fetchurl, zip, unzip, jq, xdg_utils +, replace, fetchurl, zip, unzip, jq, xdg_utils, writeText ## various stuff that can be plugged in , flashplayer, hal-flash @@ -97,12 +97,17 @@ let # EXTRA PREF CHANGES # # # ######################### - policiesJson = builtins.toFile "policies.json" - (builtins.toJSON enterprisePolicies); + policiesJson = writeText "policies.json" (builtins.toJSON enterprisePolicies); usesNixExtensions = nixExtensions != null; - extensions = builtins.map (a: + nameArray = builtins.map(a: a.name) (if usesNixExtensions then nixExtensions else []); + + # Check that every extension has a unqiue .name attribute + # and an extid attribute + extensions = if nameArray != (lib.unique nameArray) then + throw "Firefox addon name needs to be unique" + else builtins.map (a: if ! (builtins.hasAttr "extid" a) then throw "nixExtensions has an invalid entry. Missing extid attribute. Please use fetchfirefoxaddon" else @@ -128,12 +133,19 @@ let }; } ) {} extensions; - } + } // + { + Extensions = { + Install = lib.foldr (e: ret: + ret ++ [ "${e.outPath}/${e.extid}.xpi" ] + ) [] extensions; + }; + } // extraPolicies; }; - mozillaCfg = builtins.toFile "mozilla.cfg" '' -// First line must be a comment + mozillaCfg = writeText "mozilla.cfg" '' + // First line must be a comment // Disables addon signature checking // to be able to install addons that do not have an extid @@ -320,18 +332,13 @@ let # preparing for autoconfig mkdir -p "$out/lib/${firefoxLibName}/defaults/pref" - cat > "$out/lib/${firefoxLibName}/defaults/pref/autoconfig.js" <<EOF - pref("general.config.filename", "mozilla.cfg"); - pref("general.config.obscure_value", 0); - EOF + echo 'pref("general.config.filename", "mozilla.cfg");' > "$out/lib/${firefoxLibName}/defaults/pref/autoconfig.js" + echo 'pref("general.config.obscure_value", 0);' >> "$out/lib/${firefoxLibName}/defaults/pref/autoconfig.js" cat > "$out/lib/${firefoxLibName}/mozilla.cfg" < ${mozillaCfg} mkdir -p $out/lib/${firefoxLibName}/distribution/extensions - for i in ${toString extensions}; do - ln -s -t $out/lib/${firefoxLibName}/distribution/extensions $i/* - done ############################# # # # END EXTRA PREF CHANGES # |