-
Notifications
You must be signed in to change notification settings - Fork 15
/
track-password-manager-usage.js
43 lines (38 loc) · 1013 Bytes
/
track-password-manager-usage.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
module.exports = function trackPasswordManagerUsage() {
var fireGAEvent = require( 'helpers/fire-ga-event' );
var passwordField = document.getElementById( 'field-password' );
var form = document.getElementById( 'nlx-form' );
var start = 0;
var end = 0;
var time_spent_typing;
passwordField.addEventListener( 'keypress', watchKeyTiming );
form.addEventListener( 'submit', function() {
if ( form.getAttribute( 'lock-state' ) === 'ldap' ) {
report();
}
});
function watchKeyTiming(event) {
if ( start === 0 && event.target.value.length > 0 ) {
start = Date.now();
}
if ( event.which !== 13 ) {
end = Date.now();
}
}
function report() {
if ( start !== 0 ) {
time_spent_typing = end - start;
}
else {
time_spent_typing = 0;
}
if ( time_spent_typing < 200 ) {
fireGAEvent( 'Password entry', 'Machine' );
}
else {
fireGAEvent( 'Password entry', 'Human' );
}
start = 0;
end = 0;
}
};