diff options
| -rw-r--r-- | background_page.html | 56 | ||||
| -rw-r--r-- | commands.js | 99 |
2 files changed, 105 insertions, 50 deletions
diff --git a/background_page.html b/background_page.html index 10340019..faf1fa1b 100644 --- a/background_page.html +++ b/background_page.html @@ -1,5 +1,6 @@ <html> <head> +<script type="text/javascript" src="commands.js"/> <script type="text/javascript" charset="utf-8"> // Currently we need to remember to change this each time we push. Chromium #15242 will enable us // to retrieve this programmatically. @@ -274,51 +275,6 @@ } // End action functions - var keyToCommandRegistry = {}; - keyToCommandRegistry['j'] = 'scrollDown'; - keyToCommandRegistry['k'] = 'scrollUp'; - keyToCommandRegistry['h'] = 'scrollLeft'; - keyToCommandRegistry['l'] = 'scrollRight'; - keyToCommandRegistry['gg'] = 'scrollToTop'; - keyToCommandRegistry['G'] = 'scrollToBottom'; - keyToCommandRegistry['<c-e>'] = 'scrollDown'; - keyToCommandRegistry['<c-y>'] = 'scrollUp'; - keyToCommandRegistry['<c-d>'] = "scrollPageDown"; - keyToCommandRegistry['<c-u>'] = "scrollPageUp"; - keyToCommandRegistry['<c-f>'] = "scrollFullPageDown"; - keyToCommandRegistry['<c-b>'] = "scrollFullPageUp"; - keyToCommandRegistry['r'] = 'reload'; - keyToCommandRegistry['gf'] = 'toggleViewSource'; - - keyToCommandRegistry['i'] = 'enterInsertMode'; - - keyToCommandRegistry['ba'] = 'goBack'; - keyToCommandRegistry['H'] = 'goBack'; - keyToCommandRegistry['fw'] = 'goForward'; - keyToCommandRegistry['fo'] = 'goForward'; - keyToCommandRegistry['L'] = 'goForward'; - - keyToCommandRegistry['zi'] = 'zoomIn'; - keyToCommandRegistry['zo'] = 'zoomOut'; - - keyToCommandRegistry['f'] = 'activateLinkHintsMode'; - keyToCommandRegistry['F'] = 'activateLinkHintsModeToOpenInNewTab'; - - keyToCommandRegistry['/'] = 'enterFindMode'; - keyToCommandRegistry['n'] = 'performFind'; - keyToCommandRegistry['N'] = 'performBackwardsFind'; - - keyToCommandRegistry['yy'] = 'copyCurrentUrl'; - - keyToCommandRegistry['K'] = nextTab; - keyToCommandRegistry['J'] = previousTab; - keyToCommandRegistry['gt'] = nextTab; - keyToCommandRegistry['gT'] = previousTab; - - keyToCommandRegistry['t'] = createTab; - keyToCommandRegistry['d'] = removeTab; - keyToCommandRegistry['u'] = restoreTab; - function getActualKeyStrokeLength(key) { if (key.slice(0, 3) == "<c-" && key[key.length - 1] == ">") return 1; @@ -397,16 +353,16 @@ if (keyToCommandRegistry[command]) { registryEntry = keyToCommandRegistry[command]; - console.log("command found for [", keysToCheck, "],", registryEntry); + console.log("command found for [", keysToCheck, "],", registryEntry.command); - if (typeof(registryEntry) == "string") { + if (!registryEntry.isBackgroundCommand) { var port = chrome.tabs.connect(tabId, { name: "executePageCommand" }); - port.postMessage({ command: registryEntry, count: count, + port.postMessage({ command: registryEntry.command, count: count, completionKeys: generateCompletionKeys("") }); refreshedCompletionKeys = true; } else { - repeatFunction(registryEntry, count, 0); + repeatFunction(this[registryEntry.command], count, 0); } newKeyQueue = ""; @@ -478,4 +434,4 @@ init(); </script> </head> -</html>
\ No newline at end of file +</html> diff --git a/commands.js b/commands.js new file mode 100644 index 00000000..a2e53a18 --- /dev/null +++ b/commands.js @@ -0,0 +1,99 @@ +var availableCommands = {}; +var keyToCommandRegistry = {}; + +function addCommand(command, description, isBackgroundCommand) { + if (availableCommands[command]) + { + console.log(command, "is already defined! Check commands.js for duplicates."); + return; + } + + availableCommands[command] = { description: description, isBackgroundCommand: isBackgroundCommand }; +} + +function mapKeyToCommand(key, command) +{ + if (!availableCommands[command]) + { + console.log(command, "doesn't exist!"); + return; + } + + keyToCommandRegistry[key] = { command: command, isBackgroundCommand: availableCommands[command].isBackgroundCommand }; +} + +addCommand('scrollDown', ''); +addCommand('scrollUp', ''); +addCommand('scrollLeft', ''); +addCommand('scrollRight', ''); +addCommand('scrollToTop', ''); +addCommand('scrollToBottom', ''); +addCommand('scrollPageDown', ''); +addCommand('scrollPageUp', ''); +addCommand('scrollFullPageDown', ''); +addCommand('scrollFullPageUp', ''); +addCommand('reload', ''); +addCommand('toggleViewSource', ''); +addCommand('enterInsertMode', ''); +addCommand('goBack', ''); +addCommand('goBack', ''); +addCommand('goForward', ''); +addCommand('goForward', ''); +addCommand('goForward', ''); +addCommand('zoomIn', ''); +addCommand('zoomOut', ''); +addCommand('activateLinkHintsMode', ''); +addCommand('activateLinkHintsModeToOpenInNewTab', ''); +addCommand('enterFindMode', ''); +addCommand('performFind', ''); +addCommand('performBackwardsFind', ''); +addCommand('copyCurrentUrl', ''); +addCommand('nextTab', '', true); +addCommand('previousTab', '', true); +addCommand('createTab', '', true); +addCommand('removeTab', '', true); +addCommand('restoreTab', '', true); + +mapKeyToCommand('j', 'scrollDown'); +mapKeyToCommand('k', 'scrollUp'); +mapKeyToCommand('h', 'scrollLeft'); +mapKeyToCommand('l', 'scrollRight'); +mapKeyToCommand('gg', 'scrollToTop'); +mapKeyToCommand('G', 'scrollToBottom'); +mapKeyToCommand('<c-e>', 'scrollDown'); +mapKeyToCommand('<c-y>', 'scrollUp'); +mapKeyToCommand('<c-d>', 'scrollPageDown'); +mapKeyToCommand('<c-u>', 'scrollPageUp'); +mapKeyToCommand('<c-f>', 'scrollFullPageDown'); +mapKeyToCommand('<c-b>', 'scrollFullPageUp'); +mapKeyToCommand('r', 'reload'); +mapKeyToCommand('gf', 'toggleViewSource'); + +mapKeyToCommand('i', 'enterInsertMode'); + +mapKeyToCommand('ba', 'goBack'); +mapKeyToCommand('H', 'goBack'); +mapKeyToCommand('fw', 'goForward'); +mapKeyToCommand('fo', 'goForward'); +mapKeyToCommand('L', 'goForward'); + +mapKeyToCommand('zi', 'zoomIn'); +mapKeyToCommand('zo', 'zoomOut'); + +mapKeyToCommand('f', 'activateLinkHintsMode'); +mapKeyToCommand('F', 'activateLinkHintsModeToOpenInNewTab'); + +mapKeyToCommand('/', 'enterFindMode'); +mapKeyToCommand('n', 'performFind'); +mapKeyToCommand('N', 'performBackwardsFind'); + +mapKeyToCommand('yy', 'copyCurrentUrl'); + +mapKeyToCommand('K', 'nextTab'); +mapKeyToCommand('J', 'previousTab'); +mapKeyToCommand('gt', 'nextTab'); +mapKeyToCommand('gT', 'previousTab'); + +mapKeyToCommand('t', 'createTab'); +mapKeyToCommand('d', 'removeTab'); +mapKeyToCommand('u', 'restoreTab'); |
