     # Enter insert mode when the user enables the native find interface.
     if (keyChar == "f" && KeyboardUtils.isPrimaryModifierKey(event))
       enterInsertModeWithoutShowingIndicator()
-      return Mode.propagate
+      return true
 
     if (keyChar)
       if (findMode)
         handleKeyCharForFindMode(keyChar)
-        return Mode.suppressPropagation
+        DomUtils.suppressEvent(event)
       else if (!isInsertMode() && !findMode)
         if (isPassKey keyChar)
-          return Mode.propagate
+          return handlerStack.passThrough
         if (currentCompletionKeys.indexOf(keyChar) != -1 or isValidFirstKey(keyChar))
-          keyPort.postMessage({ keyChar:keyChar, frameId:frameId })
-          return Mode.suppressPropagation
+          DomUtils.suppressEvent(event)
 
         keyPort.postMessage({ keyChar:keyChar, frameId:frameId })
 
-  return Mode.propagate
+  return true
 
 onKeydown = (event) ->
   keyChar = ""

      keyPort.postMessage({ keyChar:"<ESC>", frameId:frameId })

    else if isPassKey KeyboardUtils.getKeyChar(event)
      return Mode.propagate

  # Added to prevent propagating this event to other listeners if it's one that'll trigger a Vimium command.
  # The goal is to avoid the scenario where Google Instant Search uses every keydown event to dump us

#
# Note that some keys will only register keydown events and not keystroke events, e.g. ESC.
#

onKeypress = (event) ->
  keyChar = ""

