Skip to content

Add EngineChoicesModel, replacing enabled_changes, for per-device sync engine choices - #7638

Open
mhammond wants to merge 1 commit into
mozilla:mainfrom
mhammond:push-psxrrxxoklrt
Open

mhammond wants to merge 1 commit into
mozilla:mainfrom
mhammond:push-psxrrxxoklrt

Conversation

@mhammond

@mhammond mhammond commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

This is towards allowing per-device or per-account settings, driven by the app - a replacement for #7611. This is a breaking change:

@mhammond

Copy link
Copy Markdown
Member Author

pushing a new version of this:

  • the new enum type EngineChoicesModel is in sync15 crate, import might change.
  • EngineChoicesModel::Device variant no longer has the enabled engines.
  • SyncParams::device_settings has a new enabled_engines with that info, should be filled unconditionally in all worlds.

@lougeniaC64

Copy link
Copy Markdown
Contributor

pushing a new version of this:

* the new enum type `EngineChoicesModel` is in sync15 crate, import might change.

* `EngineChoicesModel::Device` variant no longer has the enabled engines.

* `SyncParams::device_settings` has a new `enabled_engines` with that info, should be filled unconditionally in all worlds.

@mhammond Do you expect you'll need to make additional changes to this PR? If so it might make sense for Robin and I to pivot to other work in the meantime. @bytesized

@mhammond
mhammond force-pushed the push-psxrrxxoklrt branch 3 times, most recently from 59d90d8 to 4bcfa7f Compare October 15, 2026 12:02
@mhammond

Copy link
Copy Markdown
Member Author

oops, I think I pushed a badly rebased version of this; updated to just be simple type changes and no logic - I think it's looking good to land. I linked an Android fix, and iOS will need to update where current options are listed. Once we have r+ everywhere we can talk to relman and land them all 🤞

…c engine choices

SyncParams.enabled_changes becomes SyncParams.engine_choices_model:
EngineChoicesModel::Account { enabled_changes } keeps today's behaviour, and
EngineChoicesModel::Device selects per-device engine choices.

DeviceSettings gains enabled_engines, the engines this device syncs, which is
passed through to the clients engine's Settings so it can later be published
for other devices on the account.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants