mozilla-mobile / focus-ios

⚠️ Firefox Focus (iOS) has moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-ios
Mozilla Public License 2.0
1.26k stars 263 forks source link

Open with Passcode after Failed FaceID/TouchID Resets App #1120

Closed oliviabrown9 closed 6 years ago

oliviabrown9 commented 6 years ago

After failing to unlock your session with a biometric login, we (or iOS?) give an option to unlock with passcode. If you tap this button, the app starts a new session.

sblatz commented 6 years ago

This is a default iOS behavior; FaceID does the same thing. I will look into this bug!

sblatz commented 6 years ago

This is an easy fix from an engineering standpoint (one line). However, it requires us to change the "Authentication reason" string. Formerly, it would only be displayed when the user was trying to unlock the app with Touch ID, but if we enable passcode entry (we should to follow Apple's conventions), that same string would be displayed when entering your passcode after Touch ID or Face ID have failed multiple times. I'd recommend something along the lines of "Authenticate to return to Firefox Focus."

The entire flow can be seen in this gif:

Here's a still of the page we'd need to update the string for:

oliviabrown9 commented 6 years ago

@BrianNJones Can we get an updated string that will work both for TouchID and for entering a passcode?

BrianNJones commented 6 years ago

@oliviabrown9, to be clear: the ask here is to update the "Enter iPhone password..." string? Assuming yes: Enter iPhone passcode to return to Firefox Focus

sblatz commented 6 years ago

@BrianNJones We're actually needing to replace the string that says "Use Touch ID to return to Firefox Focus." This string is used both when a user is authenticating with Touch ID OR entering their passcode (thus it doesn't make sense to say use Touch ID). Perhaps something along the lines of "Authenticate to return to Firefox Focus"?

BrianNJones commented 6 years ago

@sblatz,I want to specifically avoid using a word like "authenticate." We use "log in" instead, but that doesn't make sense in this context. If the user action required is to enter the iPhone's passcode, I don't understand why we can't use "Enter iPhone passcode to return to Firefox Focus"...why do we need the additional string when the hedline offers clear direction?

sblatz commented 6 years ago

@BrianNJones Unfortunately, the string we use for TouchID is the same string that gets displayed in this passcode view. We have to display the same one for Touch ID and when the user is on the passcode screen. This is because the string is the "authenticationReason" and thus is used in both places. We also don't get the choice of showing it in one place and not in the other (I agree that hiding the string altogether would be fine for the passcode view).

I will investigate further with @oliviabrown9 to ensure there's no engineering workaround for this and get back to you.

oliviabrown9 commented 6 years ago

@BrianNJones We confirmed that this string must be used in both places. We also must display the reason string to meet Apple's restrictions. Do you have any string options that would work work both for Touch ID and passcode?

BrianNJones commented 6 years ago

@sblatz, thanks for the context and explanation. much appreciated.

@oliviabrown9, given the constraints, let's use: Authenticate to return to Firefox Focus