diff --git a/doc/builders/packages/firefox.section.md b/doc/builders/packages/firefox.section.md index 6f7d39c8b5e..0dd786a599d 100644 --- a/doc/builders/packages/firefox.section.md +++ b/doc/builders/packages/firefox.section.md @@ -26,10 +26,14 @@ The `wrapFirefox` function allows to pass policies, preferences and extensions t Pocket = false; Snippets = false; }; - UserMessaging = { - ExtensionRecommendations = false; - SkipOnboarding = true; - }; + UserMessaging = { + ExtensionRecommendations = false; + SkipOnboarding = true; + }; + SecurityDevices = { + # Use a proxy module rather than `nixpkgs.config.firefox.smartcardSupport = true` + "PKCS#11 Proxy Module" = "${pkgs.p11-kit}/lib/p11-kit-proxy.so"; + }; }; extraPrefs = '' diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index 6d93629e718..153bd31a5e7 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -118,28 +118,27 @@ let lib.optionalAttrs usesNixExtensions { ExtensionSettings = { "*" = { - blocked_install_message = "You can't have manual extension mixed with nix extensions"; - installation_mode = "blocked"; - }; - + blocked_install_message = "You can't have manual extension mixed with nix extensions"; + installation_mode = "blocked"; + }; } // lib.foldr (e: ret: - ret // { - "${e.extid}" = { - installation_mode = "allowed"; - }; - } - ) {} extensions; - } // lib.optionalAttrs usesNixExtensions { - Extensions = { - Install = lib.foldr (e: ret: - ret ++ [ "${e.outPath}/${e.extid}.xpi" ] - ) [] extensions; - }; - } // lib.optionalAttrs smartcardSupport { - SecurityDevices = { - "OpenSC PKCS#11 Module" = "onepin-opensc-pkcs11.so"; - }; - } + ret // { + "${e.extid}" = { + installation_mode = "allowed"; + }; + } + ) {} extensions; + + Extensions = { + Install = lib.foldr (e: ret: + ret ++ [ "${e.outPath}/${e.extid}.xpi" ] + ) [] extensions; + }; + } // lib.optionalAttrs smartcardSupport { + SecurityDevices = { + "OpenSC PKCS#11 Module" = "opensc-pkcs11.so"; + }; + } // extraPolicies; };