       return
     @isActive = true
 
-    @setOpenLinkMode(openInNewTab, withQueue, copyLinkUrl)
+    @setOpenLinkMode(mode)
     hintMarkers = @markerMatcher.fillInMarkers(@createMarkerFor(el) for el in @getVisibleClickableElements())
 
     DomUtils.addCssToPage(settings.get("userDefinedLinkHintCss"), "vimiumLinkHintCss")

  onKeyDownInMode: (hintMarkers, event) ->
    return if @delayMode

    if (event.keyCode == keyCodes.shiftKey && @shouldOpenInNewTab != null)
      # Toggle whether to open link in a new or current tab.
      @setOpenLinkMode(!@shouldOpenInNewTab, @shouldOpenWithQueue, false)
      handlerStack.push({
        keyup: (event) =>
          return if (event.keyCode != keyCodes.shiftKey)
          @setOpenLinkMode(!@shouldOpenInNewTab, @shouldOpenWithQueue, false) if @isActive
          @remove()
      })


     "@contenteditable='' or translate(@contenteditable, 'TRUE', 'true')='true']"])

  # We need this as a top-level function because our command system doesn't yet support arguments.
  activateModeToOpenInNewTab: -> @activateMode(OPEN_IN_NEW_TAB)
  activateModeToCopyLinkUrl: -> @activateMode(COPY_LINK_URL)
  activateModeWithQueue: -> @activateMode(OPEN_WITH_QUEUE)

  activateMode: (mode = OPEN_IN_CURRENT_TAB) ->
    # we need documentElement to be ready in order to append links
    return unless document.documentElement

