aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--background_page.html56
-rw-r--r--commands.js99
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');