fune/browser/components/extensions/ext-c-omnibox.js
Kris Maglione 7156840ed7 Bug 1375002: Get rid of the omnibox_internal namespace. r=me
This namespace has schema definitions which spuriously expose it to extension
callers, and does not support lazy loading correctly, which breaks certain
usage patterns.
2017-07-04 15:17:45 -07:00

29 lines
989 B
JavaScript

/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";
// The ext-* files are imported into the same scopes.
/* import-globals-from ../../../toolkit/components/extensions/ext-c-toolkit.js */
this.omnibox = class extends ExtensionAPI {
getAPI(context) {
return {
omnibox: {
onInputChanged: new EventManager(context, "omnibox.onInputChanged", fire => {
let listener = (text, id) => {
fire.asyncWithoutClone(text, suggestions => {
context.childManager.callParentFunctionNoReturn("omnibox.addSuggestions", [
id,
suggestions,
]);
});
};
context.childManager.getParentEvent("omnibox.onInputChanged").addListener(listener);
return () => {
context.childManager.getParentEvent("omnibox.onInputChanged").removeListener(listener);
};
}).api(),
},
};
}
};