gdm/util: Start fingerprint verification once it's available
If fingerprint service is not replying fast enough to our async request, authentication is started but the fingerprint service is never started. So, in case the fingerprint type information is received after that the authentication has been started, let's start the service. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2267>
This commit is contained in:
parent
0d24563296
commit
d5ca108a65
@ -366,6 +366,13 @@ export class ShellUserVerifier extends Signals.EventEmitter {
|
||||
? FingerprintReaderType.SWIPE
|
||||
: FingerprintReaderType.PRESS;
|
||||
this._updateDefaultService();
|
||||
|
||||
if (this._userVerifier &&
|
||||
!this._activeServices.has(FINGERPRINT_SERVICE_NAME)) {
|
||||
if (!this._hold?.isAcquired())
|
||||
this._hold = new Batch.Hold();
|
||||
await this._maybeStartFingerprintVerification();
|
||||
}
|
||||
}
|
||||
|
||||
_onCredentialManagerAuthenticated(credentialManager, _token) {
|
||||
@ -617,11 +624,14 @@ export class ShellUserVerifier extends Signals.EventEmitter {
|
||||
|
||||
_beginVerification() {
|
||||
this._startService(this._getForegroundService());
|
||||
this._maybeStartFingerprintVerification().catch(logError);
|
||||
}
|
||||
|
||||
async _maybeStartFingerprintVerification() {
|
||||
if (this._userName &&
|
||||
this._fingerprintReaderType !== FingerprintReaderType.NONE &&
|
||||
!this.serviceIsForeground(FINGERPRINT_SERVICE_NAME))
|
||||
this._startService(FINGERPRINT_SERVICE_NAME);
|
||||
await this._startService(FINGERPRINT_SERVICE_NAME);
|
||||
}
|
||||
|
||||
_onChoiceListQuery(client, serviceName, promptMessage, list) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user