From 02ca5eafb6aca5a9a09b3b592be76d3b834ccde6 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 1 May 2015 05:49:28 +0100 Subject: Avoid race comditions in background completer, change id handling. --- pages/vomnibar.coffee | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pages/vomnibar.coffee b/pages/vomnibar.coffee index 260b163f..f8ed0c78 100644 --- a/pages/vomnibar.coffee +++ b/pages/vomnibar.coffee @@ -219,10 +219,9 @@ class BackgroundCompleter chrome.runtime.sendMessage({ handler: "refreshCompleter", name: @name }) filter: (query, callback) -> - id = BackgroundCompleter.messageId += 1 @filterPort.onMessage.addListener (msg) => @filterPort.onMessage.removeListener(arguments.callee) - if id == BackgroundCompleter.messageId + if msg.id == BackgroundCompleter.messageId # The result objects coming from the background page will be of the form: # { html: "", type: "", url: "" } # type will be one of [tab, bookmark, history, domain]. @@ -235,7 +234,7 @@ class BackgroundCompleter result callback(results) - @filterPort.postMessage({ id: id, name: @name, query: query }) + @filterPort.postMessage({ id: ++BackgroundCompleter.messageId, name: @name, query: query }) extend BackgroundCompleter, # -- cgit v1.2.3