diff options
| -rw-r--r-- | background_scripts/completion.coffee | 39 | 
1 files changed, 20 insertions, 19 deletions
| diff --git a/background_scripts/completion.coffee b/background_scripts/completion.coffee index 189929b4..fb5a6120 100644 --- a/background_scripts/completion.coffee +++ b/background_scripts/completion.coffee @@ -252,25 +252,26 @@ class BookmarkCompleter  class HistoryCompleter    filter: ({ queryTerms, seenTabToOpenCompletionList }, onComplete) -> -    @currentSearch = { queryTerms: @queryTerms, onComplete: @onComplete } -    results = [] -    HistoryCache.use (history) => -      results = -        if queryTerms.length > 0 -          history.filter (entry) -> RankingUtils.matches(queryTerms, entry.url, entry.title) -        else if seenTabToOpenCompletionList -          # <Tab> opens the completion list, even without a query. -          history -        else -          [] -      onComplete results.map (entry) => -        new Suggestion -          queryTerms: queryTerms -          type: "history" -          url: entry.url -          title: entry.title -          relevancyFunction: @computeRelevancy -          relevancyData: entry +    if queryTerms.length == 0 and not seenTabToOpenCompletionList +      onComplete [] +      # Prime the history cache so that it will (hopefully) be available on the user's next keystroke. +      Utils.nextTick -> HistoryCache.use -> +    else +      HistoryCache.use (history) => +        results = +          if 0 < queryTerms.length +            history.filter (entry) -> RankingUtils.matches queryTerms, entry.url, entry.title +          else +            # The user has typed <Tab> to open the entire history (sorted by recency). +            history +        onComplete results.map (entry) => +          new Suggestion +            queryTerms: queryTerms +            type: "history" +            url: entry.url +            title: entry.title +            relevancyFunction: @computeRelevancy +            relevancyData: entry    computeRelevancy: (suggestion) ->      historyEntry = suggestion.relevancyData | 
