syncer::UserSelectableTypes returns the subset of Sync ModelTypes that directly map to a checkbox in settings. This is problematic for a number of reasons:
- Some Sync APIs take all model types, some take only user-selectable types, and this is not clear from the signature.
- The mapping isn't really obvious, e.g. why does TYPED_URLS equal the "History" checkbox?
- Redundant state in prefs: We currently store the full set of "preferred" data types, i.e. the actually selected ones plus any that are implied by them.
- There is a model type PROXY_TABS which is not an actual type, but just exists to back a checkbox in settings.
All of these could be solved by having a separate enum for user-selectable types.
Comment 1 by treib@chromium.org
, Nov 20