3 { classes: Cc, interfaces: Ci, utils: Cu } = Components
5 utils = require 'utils'
6 { addHints, removeHints, hasHints } = require 'hints'
13 window.scrollTo(0, window.document.body.scrollHeight)
16 window.scrollBy(0, SCROLL_AMOUNT)
19 window.scrollBy(0, -SCROLL_AMOUNT)
22 window.scrollBy(0, window.innerHeight)
25 window.scrollBy(0, -window.innerHeight)
28 if rootWindow = utils.getRootWindow window
29 rootWindow.gBrowser.tabContainer.advanceSelectedTab(1, true);
32 if rootWindow = utils.getRootWindow window
33 rootWindow.gBrowser.tabContainer.advanceSelectedTab(-1, true);
36 if rootWindow = utils.getRootWindow window
37 rootWindow.gBrowser.removeCurrentTab()
40 if rootWindow = utils.getRootWindow window
41 ss = utils.getSessionStore()
42 if ss and ss.getClosedTabCount(rootWindow) > 0
43 ss.undoCloseTab rootWindow, 0
46 addHints window.top.document, (el) ->
47 console.log 'f hint', el
50 window.document.activeElement?.blur()
51 if hasHints window.top.document
52 removeHints window.top.document
55 getCommand = (keys) ->
56 sequence = [key.toString() for key in keys].join(',')
57 if command = commands[sequence]
59 else if keys.length > 0
60 return getCommand keys.slice(1)
64 maybeCommand = (keys) ->
68 sequence = [key.toString() for key in keys].join(',')
69 for s in Object.keys(commands)
70 if s.search(sequence) == 0
73 return maybeCommand keys.slice(1)
75 exports.getCommand = getCommand
76 exports.maybeCommand = maybeCommand