enum RemoveTokenAction {
// Leave it to IdentityManager to decide what to do. Like SigninManager,
// it will decide differently based on internal signin::AccountConsistencyMethod state.
Default,
// Equivalent to SigninManager::SignOutAndRemoveAllAccounts()
RemoveAll,
// Equivalent to SigninManager::SignOutAndKeepAllAccounts()
KeepAll,
};
Then all the callers will need to do something like:
if (IsDiceEnabledForProfile(profile_))
identity_manager-> ClearPrimaryAccount(KEEP_ACCOUNTS)
else
identity_manager-> ClearPrimaryAccount(REMOVE_ACCOUNTS)
I find that would be a poor solution if a lot of clients need to do this.
--
You received this message because you are subscribed to the Google Groups "identity-service-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to identity-service...@chromium.org.
To post to this group, send email to identity-s...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/identity-service-dev/4c90d0b7-6a50-46f4-a5f2-b73609a95816%40chromium.org.
Thanks Mihai,Then all the callers will need to do something like:if (IsDiceEnabledForProfile(profile_))
identity_manager-> ClearPrimaryAccount(KEEP_ACCOUNTS)
else
identity_manager-> ClearPrimaryAccount(REMOVE_ACCOUNTS)I actually really like the way that looks. It puts the dice business logic in the desktop-browser-layer, which is the logical scope of the DICE feature (e.g. DICE has no role in ChromeOS and the IdentityManager API will serve both ChromeOS and the desktop browser code).I find that would be a poor solution if a lot of clients need to do this.Here's a list of current callers for SignOut and its overloads.Of these, only SignOut() currently has behavior conditioned on DICE state. I'm not sure if all current SignOut() callers actually care about DICE, but assuming they do, they represent just 5 calls (and 50% of total signout calls). Do you think those 5 can make this check without too much pain? Are there any of those I can exempt?
Colin, Mihai and I spoke f2f. The outcome is to implement the with the Default enum value that will condition behavior on DICE status.The argument I made about DICE being desktop specific is a little flawed. SigninManager is constructed with a signin::AccountConsistencyMethod enum member, for which one of the possible inputs is DICE, alongside other possibilities like Mirror (which are also used to decide other behaviors of SigninManager). While DICE is desktop specific, "account consistency" is a cross platform browser/content idea (you signed in to chrome, so you shouldn't have to re-signin to gmail).Their is an even higher level ambition for the IdentityService to one day serve users outside of the browser/content world (e.g. on ChromeOS) where "account consistency" between browser/content doesn't fit. But that feels a long way off and may not actually take the shape we envisioned - its premature to design for it now.