aboutsummaryrefslogtreecommitdiffstats
path: root/background_scripts
diff options
context:
space:
mode:
authorStephen Blott2015-05-06 05:18:59 +0100
committerStephen Blott2015-05-06 05:46:20 +0100
commit1f97221aef5cfe28200df81a68a139a3f2b07784 (patch)
tree62b6031f5d384d69d353976b6eb5e3a246c4fd81 /background_scripts
parent7d11b1699454366bf99e8e5033ba39b127687fcb (diff)
downloadvimium-1f97221aef5cfe28200df81a68a139a3f2b07784.tar.bz2
Search completion; move all filter messages to a single port.
Diffstat (limited to 'background_scripts')
-rw-r--r--background_scripts/completion.coffee2
-rw-r--r--background_scripts/main.coffee26
2 files changed, 13 insertions, 15 deletions
diff --git a/background_scripts/completion.coffee b/background_scripts/completion.coffee
index c91825b5..8a69b645 100644
--- a/background_scripts/completion.coffee
+++ b/background_scripts/completion.coffee
@@ -331,7 +331,7 @@ class SearchEngineCompleter
searchEngines: {}
userIsTyping: ->
- SearchEngines.userIsTyping()
+ CompletionEngines.userIsTyping()
filter: (queryTerms, onComplete) ->
{ keyword: keyword, url: url, description: description } = @getSearchEngineMatches queryTerms
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee
index 09a6b89f..066e4cb6 100644
--- a/background_scripts/main.coffee
+++ b/background_scripts/main.coffee
@@ -60,6 +60,17 @@ completers =
bookmarks: new MultiCompleter([completionSources.bookmarks])
tabs: new MultiCompleter([completionSources.tabs])
+completionHandlers =
+ filter: (completer, args, port) ->
+ queryTerms = args.query.split(/\s+/).filter (s) -> 0 < s.length
+ completer.filter queryTerms, (results) -> port.postMessage id: args.id, results: results
+
+ refreshCompleter: (completer) -> completer.refresh()
+ userIsTyping: (completer) -> completer.userIsTyping()
+
+handleCompletions = (args, port) ->
+ completionHandlers[args.handler] completers[args.name], args, port
+
chrome.runtime.onConnect.addListener (port, name) ->
senderTabId = if port.sender.tab then port.sender.tab.id else null
# If this is a tab we've been waiting to open, execute any "tab loaded" handlers, e.g. to restore
@@ -217,18 +228,6 @@ handleSettings = (request, port) ->
values[key] = Settings.get key for own key of values
port.postMessage { values }
-refreshCompleter = (request) -> completers[request.name].refresh()
-
-whitespaceRegexp = /\s+/
-filterCompleter = (args, port) ->
- if args.name? and args.userIsTyping
- completers[args.name].userIsTyping?()
-
- if args.id? and args.name? and args.query?
- queryTerms = if (args.query == "") then [] else args.query.split(whitespaceRegexp)
- completers[args.name].filter queryTerms, (results) ->
- port.postMessage id: args.id, results: results
-
chrome.tabs.onSelectionChanged.addListener (tabId, selectionInfo) ->
if (selectionChangedHandlers.length > 0)
selectionChangedHandlers.pop().call()
@@ -643,7 +642,7 @@ bgLog = (request, sender) ->
portHandlers =
keyDown: handleKeyDown,
settings: handleSettings,
- filterCompleter: filterCompleter
+ completions: handleCompletions
sendRequestHandlers =
getCompletionKeys: getCompletionKeysRequest
@@ -661,7 +660,6 @@ sendRequestHandlers =
pasteFromClipboard: pasteFromClipboard
isEnabledForUrl: isEnabledForUrl
selectSpecificTab: selectSpecificTab
- refreshCompleter: refreshCompleter
createMark: Marks.create.bind(Marks)
gotoMark: Marks.goto.bind(Marks)
setIcon: setIcon