# taken from the NixOS Firefox module: https://github.com/NixOS/nixpkgs/blob/7c9cc5a6e5d38010801741ac830a3f8fd667a7a0/nixos/modules/programs/firefox.nix { config, lib, pkgs, # options autoConfig ? "", extraNativeMessagingHosts ? [], wrapperConfig ? {}, extraPolicies ? {}, base_package ? pkgs.firefox, }: let pkg = base_package.override (old: { extraPrefsFiles = (old.extraPrefsFiles or []) ++ [ (pkgs.writeText "autoConfig.js" autoConfig) ]; nativeMessagingHosts = old.nativeMessagingHosts or [] ++ extraNativeMessagingHosts; cfg = (old.cfg or {}) // wrapperConfig; extraPoliciesFiles = (old.extraPoliciesFiles or []) ++ [ ( pkgs.writeText "policies.json" (builtins.toJSON extraPolicies) ) ]; }); in pkg