Closed Bug 959693 Opened 7 years ago Closed 7 years ago

Settings app needs UX for "unknown" state for Firefox Accounts


(Firefox OS Graveyard :: FxA, defect)

Not set


(Not tracked)



(Reporter: _6a68, Unassigned)



(Whiteboard: [qa+][ucid:FxA48, 1.4:p1, ft:FirefoxAccounts])

The UX for firefox accounts in settings shows the current fxa state in the settings main menu entry for fxa, and shows the current fxa state in the fxa sub-app.

It's not clear to me what we want to show if the fxa state is unknown, meaning the gecko layer does not have any state yet (and perhaps the network call to fetch state hasn't returned).

I can think of several options, but I'd really prefer UX/product to make the call here on what to display.
Question for ferjm: If gecko has no locally-cached fxa state, we still want it to send something back synchronously, and ping the fxa server async for the state. Is there a specific response the FxAccountsIACHelper.getAccounts call returns if there's no local info?
Flags: needinfo?(ferjmoreno)
Actually, it looks like FxAccountsIACHelper.getAccounts doesn't return right away, it is just a passthru to a sendMessage call further down which returns later.

So, it seems like the answer is that the gaia UI needs to

  1. ask the FxAccountsIACHelper for state synchronously (wrap a fallback call inside setTimeout(0) maybe?)
  2. if FxAccountsIACHelper.getAccounts didn't return right away, show indeterminate state
  3. when getAccounts returns, transition to the correct state
Flags: needinfo?(ferjmoreno)
Component: Gaia → FxA
Whiteboard: [qa+]
Whiteboard: [qa+] → [qa+][ucid:FxA48, 1.4:p1, ft:FirefoxAccounts]
"Logged out" and "unknown/no local data" are indistinguishable, so we can close this bug, at least for the 1.4 release.

Ferjm explained in [1] that, when "logout" occurs on the device, all state is removed--there is no way to distinguish between "user X just logged out" and "no one has ever used fxa on this device before/the cache is empty."

Good news: this simplifies the Settings app UX and removes the need for new "unknown state" panels.
Bad news: if we haven't hit the server yet to check state, users might be logged-in but see the logged-out state.
  * In such a situation, users would first see a logged-out state, then see some transition UI (spinner + dark overlay + TBD text), then see the panel update with the correct info.

I think this is the way to go for 1.4, jgruen and sam to offer concerns. Sam, please reopen if we should keep this for a different release.

Closed: 7 years ago
Flags: needinfo?(spenrose)
Flags: needinfo?(jgruen)
Resolution: --- → WONTFIX
Deferring to Adam (and John) on the UX. Adam, please let us know if the engineering issue is unclear.
Flags: needinfo?(spenrose) → needinfo?(arogers)
I concur with comment 3.  Further 'unknown state' is not meaningful to the user so on that basis we shouldn't be displaying it.
Flags: needinfo?(arogers)
Blocks: 965492
No longer blocks: 965492
re-closing, this was a misunderstanding on my part of the set of states visible to gaia
Flags: needinfo?(jgruen)
You need to log in before you can comment on or make changes to this bug.