diff options
| author | Stephen Blott | 2016-02-09 15:28:50 +0000 | 
|---|---|---|
| committer | Stephen Blott | 2016-02-09 15:31:09 +0000 | 
| commit | 4ada22e85dcd061fa806a5fe72a9dc3f1cfe0442 (patch) | |
| tree | 3147bb1ffd7d6b46d94141d8d6e51b2a88fe3efe /background_scripts/completion.coffee | |
| parent | b6a0cc82d138dd67a77d8e3298c6f56362e729be (diff) | |
| download | vimium-4ada22e85dcd061fa806a5fe72a9dc3f1cfe0442.tar.bz2 | |
BgUtils; move tabRecency to bg_tiles.coffee.
Certain background-page utilities are actually shared, and are therefore
best placed in place that reflects that.
Here, tabRecency is moved to the new gb_utils.coffee in preparation for
implementing a go-to-previous-tab command.  In particular, it is no
longer appropriate that tabRecency be embedded within the completion
code.
logMessage() from main.coffee is also a candidate for moving to
bg_utils.coffee.
Diffstat (limited to 'background_scripts/completion.coffee')
| -rw-r--r-- | background_scripts/completion.coffee | 44 | 
1 files changed, 1 insertions, 43 deletions
| diff --git a/background_scripts/completion.coffee b/background_scripts/completion.coffee index 2427bad8..c880a26c 100644 --- a/background_scripts/completion.coffee +++ b/background_scripts/completion.coffee @@ -351,47 +351,6 @@ class DomainCompleter    parseDomainAndScheme: (url) ->        Utils.hasFullUrlPrefix(url) and not Utils.hasChromePrefix(url) and url.split("/",3).join "/" -# TabRecency associates a logical timestamp with each tab id.  These are used to provide an initial -# recency-based ordering in the tabs vomnibar (which allows jumping quickly between recently-visited tabs). -class TabRecency -  timestamp: 1 -  current: -1 -  cache: {} -  lastVisited: null -  lastVisitedTime: null -  timeDelta: 500 # Milliseconds. - -  constructor: -> -    chrome.tabs.onActivated.addListener (activeInfo) => @register activeInfo.tabId -    chrome.tabs.onRemoved.addListener (tabId) => @deregister tabId - -    chrome.tabs.onReplaced.addListener (addedTabId, removedTabId) => -      @deregister removedTabId -      @register addedTabId - -  register: (tabId) -> -    currentTime = new Date() -    # Register tabId if it has been visited for at least @timeDelta ms.  Tabs which are visited only for a -    # very-short time (e.g. those passed through with `5J`) aren't registered as visited at all. -    if @lastVisitedTime? and @timeDelta <= currentTime - @lastVisitedTime -      @cache[@lastVisited] = ++@timestamp - -    @current = @lastVisited = tabId -    @lastVisitedTime = currentTime - -  deregister: (tabId) -> -    if tabId == @lastVisited -      # Ensure we don't register this tab, since it's going away. -      @lastVisited = @lastVisitedTime = null -    delete @cache[tabId] - -  # Recently-visited tabs get a higher score (except the current tab, which gets a low score). -  recencyScore: (tabId) -> -    @cache[tabId] ||= 1 -    if tabId == @current then 0.0 else @cache[tabId] / @timestamp - -tabRecency = new TabRecency() -  # Searches through all open tabs, matching on title and URL.  class TabCompleter    filter: ({ queryTerms }, onComplete) -> @@ -414,7 +373,7 @@ class TabCompleter      if suggestion.queryTerms.length        RankingUtils.wordRelevancy(suggestion.queryTerms, suggestion.url, suggestion.title)      else -      tabRecency.recencyScore(suggestion.tabId) +      BgUtils.tabRecency.recencyScore(suggestion.tabId)  class SearchEngineCompleter    @debug: false @@ -862,4 +821,3 @@ root.SearchEngineCompleter = SearchEngineCompleter  root.HistoryCache = HistoryCache  root.RankingUtils = RankingUtils  root.RegexpCache = RegexpCache -root.TabRecency = TabRecency | 
