import * as Mousetrap from "mousetrap" ; document . addEventListener ( "DOMContentLoaded" , ( event ) => { const isSafari = typeof safari !== "undefined" && navigator . userAgent . indexOf ( " Safari/" ) !== - 1 && navigator . userAgent . indexOf ( "Chrome" ) === - 1 ; const isVivaldi = ! isSafari && navigator . userAgent . indexOf ( " Vivaldi/" ) !== - 1 ; if ( ! isSafari && ! isVivaldi ) { return ; } if ( isSafari && ( window as any ) . __bitwardenFrameId == null ) { ( window as any ) . __bitwardenFrameId = Math . floor ( Math . random ( ) * Math . floor ( 99999999 ) ) ; } Mousetrap . prototype . stopCallback = ( ) => { return false ; } ; let autofillCommand = [ "mod+shift+l" ] ; if ( isSafari ) { autofillCommand = [ "mod+\\" , "mod+8" , "mod+shift+p" ] ; } Mousetrap . bind ( autofillCommand , ( ) => { sendMessage ( "autofill_login" ) ; } ) ; if ( isSafari ) { Mousetrap . bind ( "mod+shift+y" , ( ) => { sendMessage ( "open_popup" ) ; } ) ; Mousetrap . bind ( "mod+shift+s" , ( ) => { sendMessage ( "lock_vault" ) ; } ) ; } else { Mousetrap . bind ( "mod+shift+9" , ( ) => { sendMessage ( "generate_password" ) ; } ) ; } function sendMessage ( shortcut ) { const msg = { command : "keyboardShortcutTriggered" , shortcut : shortcut , } ; chrome . runtime . sendMessage ( msg ) ; } } ) ;