diff options
| -rw-r--r-- | fuzzyMode.js | 29 | ||||
| -rw-r--r-- | lib/completion.js | 16 | 
2 files changed, 19 insertions, 26 deletions
| diff --git a/fuzzyMode.js b/fuzzyMode.js index 31911c91..91fca8de 100644 --- a/fuzzyMode.js +++ b/fuzzyMode.js @@ -95,7 +95,7 @@ var fuzzyMode = (function() {          this.update(true, function() {            // Shift+Enter will open the result in a new tab instead of the current tab.            var openInNewTab = (event.shiftKey || isPrimaryModifierKey(event)); -          self.completions[self.selection].action(openInNewTab); +          self.completions[self.selection].performAction(openInNewTab);            self.hide();          });        } @@ -170,9 +170,7 @@ var fuzzyMode = (function() {     * Sends filter and refresh requests to a Vomnibar completer on the background page.     */    var BackgroundCompleter = Class.extend({ -    /* -     * - name: The name of the background page completer that you want to interface with. One of [omni, tabs]. -     */ +    /* - name: The background page completer that you want to interface with. Either "omni" or "tabs". */      init: function(name) {        this.name = name;        this.filterPort = chrome.extension.connect({ name: "filterCompleter" }); @@ -185,8 +183,8 @@ var fuzzyMode = (function() {        this.filterPort.onMessage.addListener(function(msg) {          if (msg.id != id) return;          callback(msg.results.map(function(result) { -          var action = result.action; -          result.action = eval(action.func).curry(action.args); +          var functionToCall = eval(result.action.func); +          result.performAction = functionToCall.curry(result.action.args);            return result;          }));        }); @@ -194,25 +192,20 @@ var fuzzyMode = (function() {      }    }); -  /** Creates an action that opens :url in the current tab by default or in a new tab as an alternative. */ -  function createActionOpenUrl(url, openInNewTab) { -    console.log("arguments:", arguments); -    // If the URL is a bookmarklet prefixed with javascript:, we don't need to open that in a new tab. +  /* Called when an item in the Vomnibar is chosen and requires navigating to a URL. */ +  function navigateToUrl(url, openInNewTab) { +    // If the URL is a bookmarklet prefixed with javascript:, we shouldn't open that in a new tab.      if (url.indexOf("javascript:") == 0)        openInNewTab = false; -    var selected = openInNewTab;      chrome.extension.sendRequest({ -      handler:  openInNewTab ? "openUrlInNewTab" : "openUrlInCurrentTab", -      url:      url, +      handler: openInNewTab ? "openUrlInNewTab" : "openUrlInCurrentTab", +      url: url,        selected: openInNewTab      });    } -  /** Returns an action that switches to the tab with the given :id. */ -  function createActionSwitchToTab(tabId) { -    chrome.extension.sendRequest({ handler: "selectSpecificTab", id: tabId }); -  } - +  /* Called when an item in the Vomnibar is chosen and requires switching to a tab. */ +  function switchToTab(tabId) { chrome.extension.sendRequest({ handler: "selectSpecificTab", id: tabId }); }    // public interface    return { diff --git a/lib/completion.js b/lib/completion.js index b608a2e5..00ae526f 100644 --- a/lib/completion.js +++ b/lib/completion.js @@ -20,8 +20,8 @@ var completion = (function() {      createInternalMatch: function(type, item, action) {        var url = item.url;        var parts = [type, url, item.title]; -      var str = parts.join(' '); -      action = action || {func: 'createActionOpenUrl', args: [url]}; +      var str = parts.join(" "); +      action = action || { func: "navigateToUrl", args: [url] };        function createLazyCompletion(query) {          return new LazyCompletion(url.length / fuzzyMatcher.calculateRelevancy(query, str), function() { @@ -87,7 +87,7 @@ var completion = (function() {          return new LazyCompletion(-2, function() {            return {              html:   createCompletionHtml(desc, term), -            action: {func: 'createActionOpenUrl', args: [utils.createFullUrl(url)]}, +            action: { func: "navigateToUrl", args: [utils.createFullUrl(url)] },            }})        }.proxy(this));      }, @@ -101,8 +101,8 @@ var completion = (function() {        return new LazyCompletion(-1, function() {          return {              html: createCompletionHtml(isUrl ? "goto" : "search", query), -            action: {func: "createActionOpenUrl", args: isUrl ? [utils.createFullUrl(query)] -                                                                         : [utils.createSearchUrl(query)]}, +            action: { func: "navigateToUrl", +                args: isUrl ? [utils.createFullUrl(query)] : [utils.createSearchUrl(query)] }          }});      }, @@ -175,7 +175,7 @@ var completion = (function() {        chrome.tabs.getAllInWindow(null, function(tabs) {          this.asyncCompleter.resultsReady(tabs.map(function(tab) {            return this.asyncCompleter.createInternalMatch("tab", tab, -              { func: "createActionSwitchToTab", args: [tab.id] }); +              { func: "switchToTab", args: [tab.id] });          }.proxy(this)));        }.proxy(this));      } @@ -244,8 +244,8 @@ var completion = (function() {            bestOffset = offset;            best = new LazyCompletion(-1.5, function() {              return { -              html:   createCompletionHtml('site', domain), -              action: {func: 'createActionOpenUrl', args: [protocol + '://' + domain]}, +              html:   createCompletionHtml("site", domain), +              action: { func: "navigateToUrl", args: [protocol + "://" + domain] },              }});          });        }); | 
