diff options
| author | jez | 2010-12-29 18:08:43 +0800 | 
|---|---|---|
| committer | jez | 2010-12-31 05:45:11 +0800 | 
| commit | b782ecae479bac9fe3d587bf1bdcaf51aca143af (patch) | |
| tree | 741336f0acad4144e95a56416685c3adef570c49 /vimiumFrontend.js | |
| parent | fe136a0d5c02c70364c265ae16e38a1041e98fb3 (diff) | |
| download | vimium-b782ecae479bac9fe3d587bf1bdcaf51aca143af.tar.bz2 | |
Object-ify linkHints.js
Diffstat (limited to 'vimiumFrontend.js')
| -rw-r--r-- | vimiumFrontend.js | 21 | 
1 files changed, 16 insertions, 5 deletions
diff --git a/vimiumFrontend.js b/vimiumFrontend.js index 30c87153..35781b51 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -79,14 +79,25 @@ function initializePreDomReady() {      sendResponse({}); // Free up the resources used by this open connection.    }); +  // takes a dot-notation object string and returns the member it points to +  function resolveCommandString(str) { +    var components = str.split('.'); +    var component; +    var func = this[components.shift()]; +    while ((component = components.shift()) && func) +      func = func[component]; +    return func; +  } +    chrome.extension.onConnect.addListener(function(port, name) {      if (port.name == "executePageCommand") {        port.onMessage.addListener(function(args) { -        if (this[args.command] && frameId == args.frameId) { +        func = resolveCommandString(args.command); +        if (func && frameId == args.frameId) {            if (args.passCountToFunction) { -            this[args.command].call(null, args.count); +            func.call(null, args.count);            } else { -            for (var i = 0; i < args.count; i++) { this[args.command].call(); } +            for (var i = 0; i < args.count; i++) { func(); }            }          } @@ -306,7 +317,7 @@ function toggleViewSourceCallback(url) {  function onKeypress(event) {    var keyChar = ""; -  if (linkHintsModeActivated) +  if (linkHints.linkHintsModeActivated)      return;    // Ignore modifier keys by themselves. @@ -341,7 +352,7 @@ function onKeypress(event) {  function onKeydown(event) {    var keyChar = ""; -  if (linkHintsModeActivated) +  if (linkHints.linkHintsModeActivated)      return;    // handle modifiers being pressed.don't handle shiftKey alone (to avoid / being interpreted as ?  | 
