From bf4b576f84e1ce54ec886836bae7695738aa5a6c Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 15 Jan 2024 21:55:34 +0100 Subject: [PATCH] firefox: restore compatibility for extraPolicies This commit makes it possible to specify Firefox' extraPolicies through: programs.firefox.package = pkgs.firefox.override { extraPolicies = {... } } This was possible in the past but was broken by: 3feeb7715584fd45ed1389cec8fb15f6930e8dab firefox: add support for specifying policies (#4626) --- modules/programs/firefox.nix | 2 +- tests/modules/programs/firefox/policies.nix | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/programs/firefox.nix b/modules/programs/firefox.nix index 145a0334..2ce67776 100644 --- a/modules/programs/firefox.nix +++ b/modules/programs/firefox.nix @@ -172,7 +172,7 @@ let else if versionAtLeast config.home.stateVersion "19.09" then package.override (old: { cfg = old.cfg or { } // fcfg; - extraPolicies = cfg.policies; + extraPolicies = (old.extraPolicies or { }) // cfg.policies; }) else (pkgs.wrapFirefox.override { config = bcfg; }) package { }; diff --git a/tests/modules/programs/firefox/policies.nix b/tests/modules/programs/firefox/policies.nix index b855ee87..7b503d3d 100644 --- a/tests/modules/programs/firefox/policies.nix +++ b/tests/modules/programs/firefox/policies.nix @@ -9,6 +9,9 @@ programs.firefox = { enable = true; policies = { BlockAboutConfig = true; }; + package = pkgs.firefox.override { + extraPolicies = { DownloadDirectory = "/foo"; }; + }; }; nmt.script = '' @@ -16,11 +19,18 @@ config_file="${config.programs.firefox.finalPackage}/lib/firefox/distribution/policies.json" assertFileExists "$config_file" + blockAboutConfig_actual_value="$($jq ".policies.BlockAboutConfig" $config_file)" if [[ $blockAboutConfig_actual_value != "true" ]]; then fail "Expected '$config_file' to set 'policies.BlockAboutConfig' to true" fi + + downloadDirectory_actual_value="$($jq ".policies.DownloadDirectory" $config_file)" + + if [[ $downloadDirectory_actual_value != "\"/foo\"" ]]; then + fail "Expected '$config_file' to set 'policies.DownloadDirectory' to \"/foo\"" + fi ''; }; }