     @linkHintsMode = new LinkHintsMode hints, mode
 
   postKeyState: (request) ->
-    @linkHintsMode.updateVisibleMarkersFromCoordinator request
+    @linkHintsMode.postKeyState request
 
   activateActiveHintMarker: ->
     @linkHintsMode.activateLink @linkHintsMode.markerMatcher.activeHintMarker

      suppressTrailingKeyEvents: true
      exitOnEscape: true
      exitOnClick: true
      keydown: @onKeyDownInMode.bind this, @hintMarkers
      keypress: @onKeyPressInMode.bind this, @hintMarkers

    @setOpenLinkMode mode
    @hintMode.onExit (event) =>
      HintCoordinator.sendMessage "exitFailure" if @isExitFailureEvent event

    # Note(philc): Append these markers as top level children instead of as child nodes to the link itself,
    # because some clickable elements cannot contain children, e.g. submit buttons.
    @hintMarkerContainingDiv = DomUtils.addElementList @hintMarkers,
      id: "vimiumHintMarkerContainer", className: "vimiumReset"
    # Hide markers from other frames.
    @hideMarker marker for marker in @hintMarkers when marker.hint.frameId != frameId

  setOpenLinkMode: (@mode) ->
    @hintMode.setIndicator @mode.indicator if DomUtils.isTopFrame()

  # This tests whether this event is an event which indicates that we're exiting wthout selecting a link.
  isExitFailureEvent: (event) ->
    (event?.type == "keydown" and KeyboardUtils.isEscape event) or
      (event?.type == "keydown" and event.keyCode in [ keyCodes.backspace, keyCodes.deleteKey ])

  #
  # Creates a link marker for the given link.


    else if event.keyCode in [ keyCodes.backspace, keyCodes.deleteKey ]
      if @markerMatcher.popKeyChar()
        @updateVisibleMarkers hintMarkers
      else
        # Exit via @hintMode.exit(), so that the LinkHints.activate() "onExit" callback sees the key event and
        # knows not to restart hints mode.
