diff options
| author | Stephen Blott | 2017-04-13 14:57:26 +0100 | 
|---|---|---|
| committer | Stephen Blott | 2017-04-18 05:50:51 +0100 | 
| commit | d03845e3151babbd63cf13e9e3d74d98351671f9 (patch) | |
| tree | 64b5c0d3a94638fb5b41092495354906715c68ed | |
| parent | 8e4119f84bbde748eb595e6766dbb47a6cd0133c (diff) | |
| download | vimium-d03845e3151babbd63cf13e9e3d74d98351671f9.tar.bz2 | |
Remove use of keyCodes entirely.
event.keyCode` is depricated:
  - https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
| -rw-r--r-- | content_scripts/link_hints.coffee | 28 | ||||
| -rw-r--r-- | content_scripts/mode_visual.coffee | 2 | ||||
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 4 | ||||
| -rw-r--r-- | lib/keyboard_utils.coffee | 15 | ||||
| -rw-r--r-- | pages/hud.coffee | 10 | ||||
| -rw-r--r-- | pages/vomnibar.coffee | 8 | ||||
| -rw-r--r-- | tests/dom_tests/dom_tests.coffee | 32 | 
7 files changed, 47 insertions, 52 deletions
| diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 4d9bbd1f..4481ae92 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -175,7 +175,7 @@ class LinkHintsMode      @hintMode.onExit (event) =>        if event?.type == "click" or (event?.type == "keydown" and -        (KeyboardUtils.isEscape(event) or event.keyCode in [keyCodes.backspace, keyCodes.deleteKey])) +        (KeyboardUtils.isEscape(event) or event.key in ["Backspace", "Delete"]))            HintCoordinator.sendMessage "exit", isSuccess: false      # Note(philc): Append these markers as top level children instead of as child nodes to the link itself, @@ -239,25 +239,25 @@ class LinkHintsMode      # NOTE(smblott) As of 1.54, the Ctrl modifier doesn't work for filtered link hints; therefore we only      # offer the control modifier for alphabet hints.  It is not clear whether we should fix this.  As of      # 16-03-28, nobody has complained. -    modifiers = [keyCodes.shiftKey] -    modifiers.push keyCodes.ctrlKey unless Settings.get "filterLinkHints" +    modifiers = ["Shift"] +    modifiers.push "Control" unless Settings.get "filterLinkHints" -    if event.keyCode in modifiers and +    if event.key in modifiers and        @mode in [ OPEN_IN_CURRENT_TAB, OPEN_WITH_QUEUE, OPEN_IN_NEW_BG_TAB, OPEN_IN_NEW_FG_TAB ]          @tabCount = previousTabCount          # Toggle whether to open the link in a new or current tab.          previousMode = @mode -        keyCode = event.keyCode +        key = event.key -        switch keyCode -          when keyCodes.shiftKey +        switch key +          when "Shift"              @setOpenLinkMode(if @mode is OPEN_IN_CURRENT_TAB then OPEN_IN_NEW_BG_TAB else OPEN_IN_CURRENT_TAB) -          when keyCodes.ctrlKey +          when "Control"              @setOpenLinkMode(if @mode is OPEN_IN_NEW_FG_TAB then OPEN_IN_NEW_BG_TAB else OPEN_IN_NEW_FG_TAB)          handlerId = handlerStack.push            keyup: (event) => -            if event.keyCode == keyCode +            if event.key == key                handlerStack.remove()                @setOpenLinkMode previousMode              true # Continue bubbling the event. @@ -266,7 +266,7 @@ class LinkHintsMode          # Therefore, we ensure that it's always removed when hint mode exits.  See #1911 and #1926.          @hintMode.onExit -> handlerStack.remove handlerId -    else if event.keyCode in [ keyCodes.backspace, keyCodes.deleteKey ] +    else if event.key in [ "Backspace", "Delete" ]        if @markerMatcher.popKeyChar()          @updateVisibleMarkers()        else @@ -274,15 +274,15 @@ class LinkHintsMode          # knows not to restart hints mode.          @hintMode.exit event -    else if event.keyCode == keyCodes.enter +    else if event.key == "Enter"        # Activate the active hint, if there is one.  Only FilterHints uses an active hint.        HintCoordinator.sendMessage "activateActiveHintMarker" if @markerMatcher.activeHintMarker -    else if event.keyCode == keyCodes.tab +    else if event.key == "Tab"        @tabCount = previousTabCount + (if event.shiftKey then -1 else 1)        @updateVisibleMarkers @tabCount -    else if event.keyCode == keyCodes.space and @markerMatcher.shouldRotateHints event +    else if event.key == " " and @markerMatcher.shouldRotateHints event        @tabCount = previousTabCount        HintCoordinator.sendMessage "rotateHints" @@ -884,7 +884,7 @@ class WaitForEnter extends Mode      @push        keydown: (event) => -        if event.keyCode == keyCodes.enter +        if event.key == "Enter"            @exit()            callback true # true -> isSuccess.          else if KeyboardUtils.isEscape event diff --git a/content_scripts/mode_visual.coffee b/content_scripts/mode_visual.coffee index e4e4f541..cc1baf34 100644 --- a/content_scripts/mode_visual.coffee +++ b/content_scripts/mode_visual.coffee @@ -258,7 +258,7 @@ class VisualMode extends KeyHandlerMode        _name: "#{@id}/enter/click"        # Yank on <Enter>.        keypress: (event) => -        if event.keyCode == keyCodes.enter +        if event.key == "Enter"            unless event.metaKey or event.ctrlKey or event.altKey or event.shiftKey              @yank()              return @suppressEvent diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index b3a85bfb..cdb23352 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -451,14 +451,14 @@ extend window,              name: "focus-selector"              exitOnClick: true              keydown: (event) => -              if event.keyCode == KeyboardUtils.keyCodes.tab +              if event.key == "Tab"                  hints[selectedInputIndex].classList.remove 'internalVimiumSelectedInputHint'                  selectedInputIndex += hints.length + (if event.shiftKey then -1 else 1)                  selectedInputIndex %= hints.length                  hints[selectedInputIndex].classList.add 'internalVimiumSelectedInputHint'                  DomUtils.simulateSelect visibleInputs[selectedInputIndex].element                  @suppressEvent -              else unless event.keyCode == KeyboardUtils.keyCodes.shiftKey +              else unless event.key == "Shift"                  @exit()                  # Give the new mode the opportunity to handle the event.                  @restartBubbling diff --git a/lib/keyboard_utils.coffee b/lib/keyboard_utils.coffee index 97fd8a75..1a1524af 100644 --- a/lib/keyboard_utils.coffee +++ b/lib/keyboard_utils.coffee @@ -3,12 +3,9 @@ mapKeyRegistry = {}  Utils?.monitorChromeStorage "mapKeyRegistry", (value) => mapKeyRegistry = value  KeyboardUtils = -  keyCodes: -    { ESC: 27, backspace: 8, deleteKey: 46, enter: 13, ctrlEnter: 10, space: 32, shiftKey: 16, ctrlKey: 17, f1: 112, -    f12: 123, tab: 9, downArrow: 40, upArrow: 38 } - +  # This maps event.key key names to Vimium key names.    keyNames: -    { 37: "left", 38: "up", 39: "right", 40: "down", 32: "space", 8: "backspace" } +    "ArrowLeft": "left", "ArrowUp": "up", "ArrowRight": "right", "ArrowDown": "down", " ": "space", "Backspace": "backspace"    init: ->      if (navigator.userAgent.indexOf("Mac") != -1) @@ -19,8 +16,8 @@ KeyboardUtils =        @platform = "Windows"    getKeyChar: (event) -> -    if event.keyCode of @keyNames -      @keyNames[event.keyCode] +    if event.key of @keyNames +      @keyNames[event.key]      # It appears that event.key is not always defined (see #2453).      else if not event.key?        "" @@ -50,7 +47,7 @@ KeyboardUtils =    isEscape: (event) ->      # <c-[> is mapped to Escape in Vim by default. -    event.keyCode == @keyCodes.ESC || @getKeyCharString(event) == "<c-[>" +    event.key == "Escape" || @getKeyCharString(event) == "<c-[>"    isPrintable: (event) ->      return false if event.metaKey or event.ctrlKey or event.altKey @@ -65,5 +62,3 @@ KeyboardUtils.init()  root = exports ? window  root.KeyboardUtils = KeyboardUtils -# TODO(philc): A lot of code uses this keyCodes hash... maybe we shouldn't export it as a global. -root.keyCodes = KeyboardUtils.keyCodes diff --git a/pages/hud.coffee b/pages/hud.coffee index af528203..98801930 100644 --- a/pages/hud.coffee +++ b/pages/hud.coffee @@ -16,21 +16,21 @@ document.addEventListener "keydown", (event) ->    inputElement = document.getElementById "hud-find-input"    return unless inputElement? # Don't do anything if we're not in find mode. -  if (event.keyCode in [keyCodes.backspace, keyCodes.deleteKey] and inputElement.textContent.length == 0) or -     event.keyCode == keyCodes.enter or KeyboardUtils.isEscape event +  if (event.key in ["Backspace", "Delete"] and inputElement.textContent.length == 0) or +     event.key == "Enter" or KeyboardUtils.isEscape event      UIComponentServer.postMessage        name: "hideFindMode" -      exitEventIsEnter: event.keyCode == keyCodes.enter +      exitEventIsEnter: event.key == "Enter"        exitEventIsEscape: KeyboardUtils.isEscape event -  else if event.keyCode == keyCodes.upArrow +  else if event.key == "ArrowUp"      if rawQuery = FindModeHistory.getQuery findMode.historyIndex + 1        findMode.historyIndex += 1        findMode.partialQuery = findMode.rawQuery if findMode.historyIndex == 0        setTextInInputElement inputElement, rawQuery        findMode.executeQuery() -  else if event.keyCode == keyCodes.downArrow +  else if event.key == "ArrowDown"      findMode.historyIndex = Math.max -1, findMode.historyIndex - 1      rawQuery = if 0 <= findMode.historyIndex then FindModeHistory.getQuery findMode.historyIndex else findMode.partialQuery      setTextInInputElement inputElement, rawQuery diff --git a/pages/vomnibar.coffee b/pages/vomnibar.coffee index 43db90c9..edd5fbc9 100644 --- a/pages/vomnibar.coffee +++ b/pages/vomnibar.coffee @@ -106,17 +106,17 @@ class VomnibarUI      if (KeyboardUtils.isEscape(event))        return "dismiss"      else if (key == "up" || -        (event.shiftKey && event.keyCode == keyCodes.tab) || +        (event.shiftKey && event.key == "Tab") ||          (event.ctrlKey && (key == "k" || key == "p")))        return "up" -    else if (event.keyCode == keyCodes.tab && !event.shiftKey) +    else if (event.key == "Tab" && !event.shiftKey)        return "tab"      else if (key == "down" ||          (event.ctrlKey && (key == "j" || key == "n")))        return "down" -    else if (event.keyCode == keyCodes.enter) +    else if (event.key == "Enter")        return "enter" -    else if event.keyCode == keyCodes.backspace || event.keyCode == keyCodes.deleteKey +    else if event.key in ["Backspace", "Delete"]        return "delete"      null diff --git a/tests/dom_tests/dom_tests.coffee b/tests/dom_tests/dom_tests.coffee index cbf60532..5439e119 100644 --- a/tests/dom_tests/dom_tests.coffee +++ b/tests/dom_tests/dom_tests.coffee @@ -215,16 +215,16 @@ context "Test link hints for changing mode",    should "change mode on shift", ->      assert.equal "curr-tab", @linkHints.mode.name -    sendKeyboardEvent "Shift", "keydown", keyCode: keyCodes.shiftKey +    sendKeyboardEvent "Shift", "keydown"      assert.equal "bg-tab", @linkHints.mode.name -    sendKeyboardEvent "Shift", "keyup", keyCode: keyCodes.shiftKey +    sendKeyboardEvent "Shift", "keyup"      assert.equal "curr-tab", @linkHints.mode.name    should "change mode on ctrl", ->      assert.equal "curr-tab", @linkHints.mode.name -    sendKeyboardEvent "Control", "keydown", keyCode: keyCodes.ctrlKey +    sendKeyboardEvent "Control", "keydown"      assert.equal "fg-tab", @linkHints.mode.name -    sendKeyboardEvent "Control", "keyup", keyCode: keyCodes.ctrlKey +    sendKeyboardEvent "Control", "keyup"      assert.equal "curr-tab", @linkHints.mode.name  context "Alphabetical link hints", @@ -419,9 +419,9 @@ context "Filtered link hints",      should "use tab to select the active hint", ->        sendKeyboardEvents "abc"        assert.equal "8", @getActiveHintMarker() -      sendKeyboardEvent "Tab", "keydown", keyCode: keyCodes.tab +      sendKeyboardEvent "Tab", "keydown"        assert.equal "7", @getActiveHintMarker() -      sendKeyboardEvent "Tab", "keydown", keyCode: keyCodes.tab +      sendKeyboardEvent "Tab", "keydown"        assert.equal "9", @getActiveHintMarker()  context "Input focus", @@ -608,7 +608,7 @@ context "Key mapping",    should "cancel a prefix key on escape", ->      sendKeyboardEvent "z" -    sendKeyboardEvent "Escape", "keydown", keyCode: keyCodes.ESC +    sendKeyboardEvent "Escape", "keydown"      sendKeyboardEvent "p"      assert.equal 0, @handlerCalledCount @@ -718,7 +718,7 @@ context "Insert mode",    should "exit on escape", ->      assert.isTrue @insertMode.modeIsActive -    sendKeyboardEvent "Escape", "keydown", keyCode: keyCodes.ESC +    sendKeyboardEvent "Escape", "keydown"      assert.isFalse @insertMode.modeIsActive    should "resume normal mode after leaving insert mode", -> @@ -783,7 +783,7 @@ context "Caret mode",      assert.equal "I", getSelection()    should "exit caret mode on escape", -> -    sendKeyboardEvent "Escape", "keydown", keyCode: keyCodes.ESC +    sendKeyboardEvent "Escape", "keydown"      assert.equal "", getSelection()    should "move caret with l and h", -> @@ -818,7 +818,7 @@ context "Caret mode",      assert.equal "I", getSelection()      sendKeyboardEvents "ww"      assert.equal "a", getSelection() -    sendKeyboardEvent "Escape", "keydown", keyCode: keyCodes.ESC +    sendKeyboardEvent "Escape", "keydown"      new VisualMode      assert.equal "a", getSelection() @@ -933,14 +933,14 @@ context "Mode utilities",      test = new Mode exitOnEscape: true      assert.isTrue test.modeIsActive -    sendKeyboardEvent "Escape", "keydown", keyCode: keyCodes.ESC +    sendKeyboardEvent "Escape", "keydown"      assert.isFalse test.modeIsActive    should "not exit on escape if not enabled", ->      test = new Mode exitOnEscape: false      assert.isTrue test.modeIsActive -    sendKeyboardEvent "Escape", "keydown", keyCode: keyCodes.ESC +    sendKeyboardEvent "Escape", "keydown"      assert.isTrue test.modeIsActive    should "exit on blur", -> @@ -987,13 +987,13 @@ context "PostFindMode",      assert.isFalse @postFindMode.modeIsActive    should "enter insert mode on immediate escape", -> -    sendKeyboardEvent "Escape", "keydown", keyCode: keyCodes.ESC +    sendKeyboardEvent "Escape", "keydown"      assert.equal null, commandCount      assert.isFalse @postFindMode.modeIsActive    should "not enter insert mode on subsequent escapes", ->      sendKeyboardEvent "a" -    sendKeyboardEvent "Escape", "keydown", keyCode: keyCodes.ESC +    sendKeyboardEvent "Escape", "keydown"      assert.isTrue @postFindMode.modeIsActive  context "WaitForEnter", @@ -1005,14 +1005,14 @@ context "WaitForEnter",    should "exit with success on Enter", ->      assert.isTrue @waitForEnter.modeIsActive      assert.isFalse @isSuccess? -    sendKeyboardEvent "Enter", "keydown", keyCode: keyCodes.enter +    sendKeyboardEvent "Enter", "keydown"      assert.isFalse @waitForEnter.modeIsActive      assert.isTrue @isSuccess? and @isSuccess == true    should "exit without success on Escape", ->      assert.isTrue @waitForEnter.modeIsActive      assert.isFalse @isSuccess? -    sendKeyboardEvent "Escape", "keydown", keyCode: keyCodes.ESC +    sendKeyboardEvent "Escape", "keydown"      assert.isFalse @waitForEnter.modeIsActive      assert.isTrue @isSuccess? and @isSuccess == false | 
