2cfa029a7a49d52bf6e56b7992ddb916d993c5c7
CRITICAL FIX: Extensions now properly reset lockout activity timer - Pause button extensions now reset lockoutActivityTime when selected - Manual site timeout extensions now reset lockoutActivityTime when selected - Prevents lockout from counting idle time accumulated BEFORE extension - Lockout timer now truly starts fresh when user selects an extension ROOT CAUSE (v0.9.5-7 was incomplete): In v0.9.5-7, I added code to checkLockoutTimer() to SKIP lockout checks during active extensions. This prevented lockout from triggering during the extension period. However, the extension handlers themselves didn't reset lockoutActivityTime. TWO PLACES WERE MISSING lockoutActivityTime reset: 1. showInactivityPrompt() - Manual site timeout extensions (line 4632) When user selects "15 minutes" on manual site inactivity prompt: ✓ Set inactivityExtensionUntil = now + 15min ✓ Set lastUserInteraction = now ✓ Set siteStartTime = now ✗ Did NOT set lockoutActivityTime = now 2. showPauseDialog() - Pause button extensions (line 4680) When user clicks pause button and selects "15 minutes": ✓ Set inactivityExtensionUntil = now + 15min ✓ Set lastUserInteraction = now ✓ Set siteStartTime = now ✗ Did NOT set lockoutActivityTime = now BROKEN SCENARIO IN v0.9.5-7: - Lockout configured for 30 minutes of inactivity - User is idle for 10 minutes - User clicks "15 minutes" extension - lockoutActivityTime still shows 10 minutes ago (NOT reset) - Extension blocks lockout for 15 minutes (v0.9.5-7 fix working) - After 15 minutes, extension expires - v0.9.5-7 code resets lockoutActivityTime to now - Lockout would happen 30 minutes later The problem: This means lockout NEVER enforced the configured timeout if users kept selecting extensions, because each extension expiration reset the lockout timer. FIX IN v0.9.5-8: Added lockoutActivityTime = now to BOTH extension handlers: - Lines 4637-4641: Manual site inactivity prompt extension handler - Lines 4684-4688: Pause button extension handler NEW BEHAVIOR: - User idle for 10 minutes - User clicks "15 minutes" extension - lockoutActivityTime = now (RESET on extension selection) - User is now considered "active" (selected extension = user interaction) - Extension blocks lockout for 15 minutes - After 15 minutes, lockoutActivityTime shows 15 minutes ago - Lockout happens 30 minutes after extension selected (at 15 + 30 = 45 min total) This is more intuitive: selecting an extension is a user interaction that proves the user is present, so lockout timer should start fresh. Includes all fixes from v0.9.5-7 (checkLockoutTimer respects extensions)
Languages
Shell
94.1%
JavaScript
4.7%
HTML
0.9%
CSS
0.3%