Skip to content

[Feature Request] Machine-Specific Profiles for Synchronized Settings #245

@Makishima

Description

@Makishima

Feature Request: Machine-Specific Profiles for Synchronized Settings

Summary

Add support for machine profiles that allow users to maintain different active proxy configurations on different computers while still benefiting from browser sync for the proxy list itself.

Problem Statement

Currently, FoxyProxy synchronizes all settings across devices when browser sync (Firefox Sync or Chrome Sync) is enabled. While this is convenient for keeping the proxy list consistent, it creates a problem for users who need different proxy configurations on different machines.

Use Case Example

A user has:

  • Work laptop — needs to use corporate proxy for internal resources
  • Home desktop — needs direct connection or a different proxy for personal use
  • Travel laptop — needs VPN/proxy for security on public networks

With the current implementation, changing the active proxy mode or settings on one machine immediately affects all other synced machines. This forces users to either:

  1. Disable sync entirely (losing the benefit of a shared proxy list)
  2. Manually switch settings every time they change machines
  3. Use different browser profiles (inconvenient for users who want their browsing data synced)

Proposed Solution

Introduce a Profile system with the following characteristics:

Core Concept

  • Profiles are machine-specific configurations that determine which proxies are active and in what mode
  • Proxy definitions (server addresses, credentials, patterns) continue to sync across all machines
  • Each machine can select which profile to use, and this selection is stored locally (not synced)

Suggested Implementation

  1. Profile Management

    • Add a "Profiles" tab or section in Options
    • Allow users to create named profiles (e.g., "Work", "Home", "Travel")
    • Each profile stores:
      • Active mode (disabled, single proxy, pattern-based, etc.)
      • Which proxy/proxies are enabled
      • Profile-specific pattern overrides (optional)
      • Global exclude overrides (optional)
  2. Profile Selection

    • Add a profile selector in the toolbar popup
    • Store the currently selected profile in storage.local (not storage.sync)
    • This ensures each machine remembers its own profile selection
  3. Sync Behavior

    • Profile definitions sync across machines (so the same profiles are available everywhere)
    • Profile selection stays local to each machine
    • Proxy server definitions continue to sync as they do now

UI Mockup Concept

Toolbar Popup:

┌─────────────────────────────┐
│ Profile: [Work      ▼]     │
├─────────────────────────────┤
│ ○ Disable FoxyProxy        │
│ ● Corporate Proxy          │
│ ○ VPN Server               │
│ ○ Proxy by Patterns        │
└─────────────────────────────┘

Options → Profiles Tab:

Profiles:
┌──────────┬─────────────────────────┬─────────┐
│ Name     │ Default Mode            │ Actions │
├──────────┼─────────────────────────┼─────────┤
│ Work     │ Corporate Proxy         │ ✏️ 🗑️   │
│ Home     │ Disable                 │ ✏️ 🗑️   │
│ Travel   │ Proxy by Patterns       │ ✏️ 🗑️   │
└──────────┴─────────────────────────┴─────────┘
                              [+ Add Profile]

Benefits

  1. Best of both worlds — shared proxy list with machine-specific behavior
  2. No manual switching — each machine remembers its preferred configuration
  3. Backward compatible — users who don't need profiles can ignore the feature
  4. Clean separation — synced data (proxy definitions) vs. local data (active profile)

Alternative Considered

Per-proxy "enabled on this machine" flag — simpler but less flexible; doesn't allow different modes per machine.

Technical Notes

  • Profile selection should use browser.storage.local
  • Profile definitions can use browser.storage.sync alongside existing proxy data
  • Consider adding a "Default Profile" for new machines that haven't selected one yet
  • Migration: existing users get a single "Default" profile with their current settings

Related

This feature would complement existing functionality like:

  • Container/Incognito proxy settings
  • Tab Proxy feature
  • Pattern-based switching

Environment: FoxyProxy 9.x, Firefox/Chrome with browser sync enabled

Thank you for considering this feature request!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions