summaryrefslogtreecommitdiffstats
path: root/toolkit/components/autocomplete/AutoCompleteSimpleSearch.sys.mjs
blob: b57d290cfbd9356d601fa52b305ab458239a5c4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */

/**
 * See nsIAutoCompleteSimpleSearch
 */
export class AutoCompleteSimpleSearch {
  constructor() {
    this.classID = Components.ID("{dc185a77-ba88-4caa-8f16-465253f7599a}");
    this.QueryInterface = ChromeUtils.generateQI([
      "nsIAutoCompleteSimpleSearch",
    ]);

    let initialState = Cc[
      "@mozilla.org/autocomplete/simple-result;1"
    ].createInstance(Ci.nsIAutoCompleteSimpleResult);
    initialState.setDefaultIndex(0);
    initialState.setSearchResult(Ci.nsIAutoCompleteResult.RESULT_NOMATCH);
    this.overrideNextResult(initialState);
  }

  _result = null;

  /**
   * See nsIAutoCompleteSimpleSearch
   */
  overrideNextResult(result) {
    this._result = result;
  }

  /**
   * See nsIAutoCompleteSearch
   */
  startSearch(searchString, searchParam, previousResult, listener) {
    let result = this._result;
    result.setSearchString(searchString);
    listener.onSearchResult(this, result);
  }

  /**
   * See nsIAutoCompleteSearch
   */
  stopSearch() {}
}