Skip to content

Firefox profile routing silently fails in v4.2.2 #513

@xrl

Description

@xrl

Describe the bug

Firefox profile routing doesn't work in v4.2.2 because browsers.json (embedded in the binary) doesn't include Firefox entries. The profile property is silently ignored — resolveBrowserProfileArgs can't find Firefox in the browser list and returns false, so the -P flag is never added to the command.

Firefox was added to browsers.json on main but hasn't shipped in a release yet.

Even once Firefox is in browsers.json, there's a second issue: the generated command open -a Firefox -n --args -P ProfileName URL triggers Firefox's profile chooser dialog instead of directly opening the named profile. The only approach that works reliably is --profile /full/path/to/directory instead of -P ProfileName.

Additionally, the Configuration (v4) wiki only documents the profile property for Chromium browsers and doesn't mention the args property at all, leaving Firefox users without guidance.

I wrote up a detailed gist documenting the working solution and all the dead ends: https://gist.github.com/xrl/c07ab302cfefe4a94b91c16c99c55f93

Your configuration

What you'd expect to work (doesn't):

export default {
  defaultBrowser: "Firefox",
  handlers: [
    {
      match: ["github.com/orgA*"],
      browser: {
        name: "Firefox",
        profile: "Work",
      },
    },
  ],
};

What actually works (using args to bypass the broken profile support):

export default {
  defaultBrowser: "Firefox",
  handlers: [
    {
      match: ["github.com/orgA*"],
      browser: (url) => ({
        name: "/Applications/Firefox.app",
        appType: "path",
        args: [
          "-n",
          "--args",
          "--profile",
          "/Users/USERNAME/Library/Application Support/Firefox/Profiles/abc12345.Profile 1",
          url.href,
        ],
      }),
    },
  ],
};

To Reproduce

  1. Create multiple Firefox profiles (via Firefox's new profile UI)
  2. Configure Finicky with browser: { name: "Firefox", profile: "MyProfile" }
  3. Run open "https://example.com" from terminal
  4. Enable logRequests: true and check ~/Library/Logs/Finicky/ — the debug log shows profile: "MyProfile" in "Final browser options" but the "Run command" line is just open -a Firefox https://example.com with no profile flag

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions