diff options
Diffstat (limited to 'content_scripts/mode_passkeys.coffee')
| -rw-r--r-- | content_scripts/mode_passkeys.coffee | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/content_scripts/mode_passkeys.coffee b/content_scripts/mode_passkeys.coffee index ce9f25d2..82f7596b 100644 --- a/content_scripts/mode_passkeys.coffee +++ b/content_scripts/mode_passkeys.coffee @@ -13,20 +13,31 @@ class PassKeysMode extends Mode for keyChar in [KeyboardUtils.getKeyChar(event), String.fromCharCode(event.charCode)] # A key is passed through to the underlying page by returning handlerStack.passDirectlyToPage. return handlerStack.passDirectlyToPage if keyChar and @isPassKey keyChar - true + Mode.propagate - setState: (response) -> - if response.isEnabledForUrl? - @passKeys = (response.isEnabledForUrl and response.passKeys) or "" - if response.keyQueue? - @keyQueue = response.keyQueue + # This is called to set the pass-keys state with various types of request from various sources, so we handle + # all of these. + # TODO(smblott) Rationalize this. + setState: (request) -> + if request.isEnabledForUrl? + @passKeys = (request.isEnabledForUrl and request.passKeys) or "" + if request.enabled? + @passKeys = (request.enabled and request.passKeys) or "" + if request.keyQueue? + @keyQueue = request.keyQueue + Mode.updateBadge() constructor: -> super name: "passkeys" keydown: (event) => @handlePassKeyEvent event keypress: (event) => @handlePassKeyEvent event - keyup: -> true # Allow event to propagate. + keyup: -> Mode.propagate + + # Overriding and re-using updateBadgeForMode() from Mode.updateBadgeForMode(). + updateBadgeForMode: (badge) -> + @badge = if @passKeys and not @keyQueue then "P" else "" + super badge root = exports ? window root.PassKeysMode = PassKeysMode |
