FxA currently shows a special "choose what to sync" screen (henceforth abbreviated "CWTS") for users who are creating an account and accessing the sync service. This is the user's main opportunity to choose what datatypes to sync before Firefox starts syncing anything; they can still change their datatype selections at any time via Firefox native UI, but they have to go into the settings page to find it, and Firefox may have synced other data in the meantime.
As we get more users who create a Firefox Account through some other service, and then later choose to sign in to Firefox and enable sync, we're going to have more and more users missing out on this important early opportunity to control what data they store in the cloud. Instead, we should show CWTS to users who are access the sync service for the first time, regardless of whether they're a new or existing user.
I started a google doc with some initial thoughts on how we might implement this, but it's only one approach of many. I think we have two broad options:
- Have FxA remember which services a user has and hasn't used. I suspect we may want this for other reasons, but it could lead to false-positives since we don't have historical data.
- Have FxA ask the sync servers whether a user is an active sync user as part of the signin process. This would mean FxA grows more special-case logic about sync, but then again the whole CWTS screen falls into the category, and at least we know we'll get an accurate result.
Shane, before I get any further into the weeds here, do you have a preference for which of these to pursue, or any other general comments/concerns about the direction we're heading here?