| <!-- |
| Copyright 2020 The Chromium Authors |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <!-- |
| This file is used to generate a comprehensive list of Fingerprint histograms |
| along with a detailed description for each histogram. |
| |
| For best practices on writing histogram descriptions, see |
| https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md |
| |
| Please follow the instructions in the OWNERS file in this directory to find a |
| reviewer. If no OWNERS file exists, please consider signing up at |
| go/reviewing-metrics (Googlers only), as all subdirectories are expected to |
| have an OWNERS file. As a last resort you can send the CL to |
| chromium-metrics-reviews@google.com. |
| --> |
| |
| <histogram-configuration> |
| |
| <histograms> |
| |
| <histogram name="Fingerprint.Auth.Error" enum="FingerprintError" |
| expires_after="2024-04-10"> |
| <owner>patrykd@google.com</owner> |
| <owner>tomhughes@chromium.org</owner> |
| <owner>cros-lurs@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Tracks the error during fingerprint authentication session. It is recorded |
| every time authentication session (unlock screen, web auth, etc.) ends with |
| error. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Auth.ScanResult" enum="FingerprintScanResult" |
| expires_after="2023-10-22"> |
| <owner>emaamari@google.com</owner> |
| <owner>tomhughes@chromium.org</owner> |
| <owner>cros-lurs@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Tracks the scan result during fingerprint authentication session. It is |
| recorded every time user touches the fingerprint sensor while authenticating |
| (unlock screen, web auth, etc.) and session is not finished with error. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.AuthScanDoneSignal.UpgradeToFingerprintMessage" |
| enum="BooleanUpgraded" expires_after="2022-06-09"> |
| <obsolete> |
| Since transition to FingerprintMessage is completed, this histogram is no |
| longer used. Removed in 02/2022. |
| </obsolete> |
| <owner>patrykd@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Tracks AuthScanDone signal structure transition from ScanResult enum to |
| FingerprintMessage protobuf. The signal is upgraded when it contains the |
| protobuf and not upgraded when the enum is present. When the signal doesn't |
| contain any of these nothing is emitted. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Enroll.NumCaptures" units="captures" |
| expires_after="2024-01-10"> |
| <owner>agrandi@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Count the number of fingerprint sensor captures (i.e. touches) performed |
| during the enrollment session of a new fingerprint. This includes all |
| enrollment captures, including those resulting in errors, such as |
| "partial", "immobile", etc. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Enroll.ScanResult" enum="FingerprintScanResult" |
| expires_after="2023-09-10"> |
| <owner>emaamari@google.com</owner> |
| <owner>tomhughes@chromium.org</owner> |
| <owner>cros-lurs@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Tracks the scan result during fingerprint enrollment session. It is recorded |
| every time user touches the fingerprint sensor while enrolling fingerprints |
| (during onboarding or in Chrome OS settings). |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.FingerprintPowerButtonRace" units="units" |
| expires_after="2023-08-20"> |
| <owner>emaamari@google.com</owner> |
| <owner>chromeos-commercial-identity@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Tracks the event where a fingerprint scan and a power button press occured |
| within 1 second of each other. Recorded when FingerprintStorage and |
| PowerManagerClient notify FingerprintPowerButtonRaceDetector of a |
| fingerprint scan and power button press respectively, within 1 second. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.FingerprintScanDone" units="units" |
| expires_after="2023-09-03"> |
| <owner>emaamari@google.com</owner> |
| <owner>chromeos-commercial-identity@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Indicates a scan was recorded by the finperprint sensor. Recorded when an |
| AuthScanDone signal is received by FinperprintStorage from biod, and |
| notifies FingerprintPowerButtonRaceDetector. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.SensorError.BadHwid" enum="BooleanSuccess" |
| expires_after="2023-12-12"> |
| <owner>fsammoura@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Counts the number of times a bad Hardware ID is reported. This metric is |
| reported in biod during the sensor initialization phase. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.SensorError.InitializationFailure" |
| enum="BooleanSuccess" expires_after="2023-12-12"> |
| <owner>fsammoura@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Counts the number of times an initialization failure is reported. This |
| metric is reported in biod during the sensor initialization phase. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.SensorError.NoIrq" enum="BooleanSuccess" |
| expires_after="2023-12-12"> |
| <owner>fsammoura@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Counts the number of times no-IRQ hardware failure is reported. This metric |
| is reported in biod during the sensor initialization phase. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.SensorError.SpiCommunication" |
| enum="BooleanSuccess" expires_after="2023-12-12"> |
| <owner>fsammoura@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Counts the number of times an error in SPI communication is reported. This |
| metric is reported in biod during the sensor initialization phase. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Session.RetrievePrimarySessionDuration" units="ms" |
| expires_after="2024-04-17"> |
| <owner>patrykd@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Measures the time it took SessionManager to respond to |
| RetrievePrimarySession DBus method call. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Session.RetrievePrimarySessionResult" |
| enum="FingerprintRetrievePrimarySessionResult" expires_after="2023-10-01"> |
| <owner>patrykd@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| The result of retrieving primary session when Biometrics Daemon starts or |
| user logs in. |
| |
| Retrieving primary session is successful when Session Manager responds to |
| RetrievePrimarySession DBus method call and the response was successfully |
| parsed. It means that success is reported also when user is not logged in. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.SetContext.Success" enum="BooleanSuccess" |
| expires_after="2023-10-08"> |
| <owner>hesling@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary>Whether setting FPMCU mode succeeded.</summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.AttemptsCountBeforeSuccess" units="count" |
| expires_after="2023-10-08"> |
| <owner>emaamari@google.com</owner> |
| <owner>cros-lurs@google.com</owner> |
| <summary> |
| Counts the number of fingerprint attempts until successful screen unlock. |
| |
| A count of 0 means that the user unlocked the screen on the first attempt. |
| The maximum number of unlock attempts is governed by kMaximumUnlockAttempts, |
| such that this value must be less than the max. |
| |
| This is related to Fingerprint.Unlock.RecentAttemptsCountBeforeSuccess. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.AuthSuccessful" enum="BooleanSuccess" |
| expires_after="2023-10-08"> |
| <owner>emaamari@google.com</owner> |
| <owner>cros-lurs@google.com</owner> |
| <summary> |
| Counts the number of times that the fingerprint match successfully vs. |
| rejected. |
| |
| This is recorded in the same location as Fingerprint.Unlock.Result. When the |
| Fingerprint.Unlock.Result is success, AuthSuccessful reports true, otherwise |
| AuthSuccessful reports false. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.EnrolledFingerCount" units="count" |
| expires_after="2023-10-08"> |
| <owner>tomhughes@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Counts the number of fingers enrolled by the user. |
| |
| This metric is reported in biod when the first user logs in. It is not |
| reported when a secondary user logs in, nor when all users log-off, nor when |
| the primary user uses fingerprint unlock. It may be reported again if |
| session_manage crashes. |
| |
| This metric is emitted in SendStatsOnLogin() along with |
| Fingerprint.UnlockEnabled. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.Match.PositiveMatchSecretCorrect" |
| enum="BooleanCorrect" expires_after="2023-10-15"> |
| <owner>hesling@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Whether the hash of the positive match secret read from FPMCU matches the |
| record. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.MatchIgnoredDueToPowerButtonPress" |
| enum="BooleanIgnored" expires_after="2023-10-08"> |
| <owner>ravisadineni@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| ChromeOS only. Record when a fingerprint touch was ignored due to parallel |
| power button press. Fingerprint matches will be ignored for a duration of |
| kAuthIgnoreTimeoutmsecs (1000 ms) after each power button press. This only |
| applies to fingerprint sensors that reside on a power button. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.PartialAttemptsBeforeSuccess" |
| units="attempts" expires_after="2023-10-11"> |
| <owner>hcyang@google.com</owner> |
| <owner>tomhughes@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Counts the number of partial fingerprint attempts until successful result is |
| reported in biod. Partial attempts refers to the "low coverage" |
| error, which means that the sensor is only partially covered with a finger. |
| It often occurs when the user just dropped their finger onto the sensor. We |
| expect the user to adjust their finger position soon after that, so instead |
| of reporting an error biod silently allows up to 20 retries for this kind of |
| error. We want to observe in average how many partial attempts are needed |
| before successfully matching. |
| |
| A count of 0 means that the fingerprint match attempt is successful without |
| any preceding partial matches. The maximum number of partial attempts is |
| governed by kMaxPartialAttempts, such that this value must be less than the |
| max. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.ReadPositiveMatchSecret.Success" |
| enum="BooleanSuccess" expires_after="2024-04-05"> |
| <owner>hesling@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| ChromeOS Only. After a positive fingerprint match has been identified, |
| record when a positive match secret is read from FPMCU. Note that this does |
| not indicate that the match was was validated, only that the secret was |
| read. Fingerprint.Unlock.Match.PositiveMatchSecretCorrect may be used to |
| track validation. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.RecentAttemptsCountBeforeSuccess" |
| units="attempts" expires_after="2023-10-08"> |
| <owner>agrandi@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Counts the number of recent fingerprint attempts until successful screen |
| unlock. Recent attempts are defined as happening within 3 seconds from each |
| others. The goal is to count intentional attempt to unlock the device and |
| exclude incidental touches of the fingerprint sensor. |
| |
| A count of 0 means that the user unlocked the screen on the first attempt. |
| The maximum number of unlock attempts is governed by kMaximumUnlockAttempts, |
| such that this value must be less than the max. |
| |
| This is related to Fingerprint.Unlock.AttemptsCountBeforeSuccess. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.RecordFormatVersion" |
| enum="FingerprintRecordFormatVersion" expires_after="2023-10-08"> |
| <owner>hesling@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Format version of a fingerprint template record read from storage. ChromeOS |
| Only. Records the format version of each fingerprint template record prior |
| to uploading to the FPMCU. Format version will not be recorded if there are |
| no available record slots. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.Result" enum="FingerprintUnlockResult" |
| expires_after="2023-10-22"> |
| <owner>emaamari@google.com</owner> |
| <owner>tomhughes@chromium.org</owner> |
| <owner>cros-lurs@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Tracks the result of the fingerprint authentication attempt on the lock |
| screen. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Unlock.{Outcome}.Duration.{Interval}" units="ms" |
| expires_after="2024-04-05"> |
| <owner>bobbycasey@google.com</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Measures the time it took {Interval} in the '{Outcome}' case. |
| </summary> |
| <token key="Outcome"> |
| <variant name="Match" summary="match"/> |
| <variant name="NoMatch" summary="no-match"/> |
| </token> |
| <token key="Interval"> |
| <variant name="Capture" summary="to capture the fingerprint image"/> |
| <variant name="Matcher" summary="to run the matcher"/> |
| <variant name="Overall" |
| summary="between the detection of the finger and the match/no-match |
| event being sent to the Application Processor(AP)"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Fingerprint.UnlockEnabled" enum="BooleanEnabled" |
| expires_after="2023-10-08"> |
| <owner>tomhughes@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Indicates whether at least one finger is enrolled, which effectively permits |
| fingerprint unlock. |
| |
| This metric is reported in biod when the first user logs in. It is not |
| reported when a secondary user logs in, nor when all users log-off, nor when |
| the primary user uses fingerprint unlock. It may be reported again if |
| session_manage crashes. It does not take into account if policy has |
| subsequently disabled fingerprint unlock. |
| |
| This metric is emitted in SendStatsOnLogin() along with |
| Fingerprint.Unlock.EnrolledFingerCount. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Updater.Reason" enum="FingerprintUpdaterReason" |
| expires_after="2023-10-08"> |
| <owner>tomhughes@chromium.org</owner> |
| <owner>hesling@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Tracks the fingerprint firmware updater's reason(s) for re-flashing. |
| </summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Updater.Status" enum="FingerprintUpdaterStatus" |
| expires_after="2023-10-08"> |
| <owner>tomhughes@chromium.org</owner> |
| <owner>hesling@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary>Tracks the fingerprint firmware updater's overall status.</summary> |
| </histogram> |
| |
| <histogram name="Fingerprint.Updater.{Outcome}.Duration.Overall" units="ms" |
| expires_after="2024-04-05"> |
| <owner>tomhughes@chromium.org</owner> |
| <owner>hesling@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| Measures the total time it takes to run the fingerprint firmware updater |
| when an update was {Outcome}. |
| </summary> |
| <token key="Outcome"> |
| <variant name="NoUpdate" summary="not necessary"/> |
| <variant name="Update" summary="necessary"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Fingerprint.{ContextFunction}" enum="FingerprintSensorMode" |
| expires_after="2024-04-05"> |
| <owner>tomhughes@chromium.org</owner> |
| <owner>chromeos-fingerprint@google.com</owner> |
| <summary> |
| The mode the FPMCU was in when we {ContextFunction}. |
| |
| See the CrosFpDevice::SetContext and CrosFpDevice::ResetContext functions |
| for more information. |
| |
| Related metrics are Fingerprint.Reset.ResetContextMode, |
| Fingerprint.SetContext.SetContextMode, and Fingerprint.SetContext.Success. |
| </summary> |
| <token key="ContextFunction"> |
| <variant name="Reset.ResetContextMode" summary="reset context"/> |
| <variant name="SetContext.SetContextMode" summary="set its context"/> |
| </token> |
| </histogram> |
| |
| </histograms> |
| |
| </histogram-configuration> |