diff options
author | wolfbeast <mcwerewolf@gmail.com> | 2018-06-04 15:50:03 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-06-04 15:50:03 +0200 |
commit | e3b7744bee37c3d4a026d2193bed5e9439c40ff3 (patch) | |
tree | f3f7b07ca9bd78bf7ac2d76dd55b61b2a8bb549e /application/basilisk/components/webextensions/ext-c-omnibox.js | |
parent | cbce4f0b6a337f8250b62cae028f1c6d4cce51df (diff) | |
parent | 031afcafe288bf0f46c0c5caae20dd3db8bd0297 (diff) | |
download | UXP-e3b7744bee37c3d4a026d2193bed5e9439c40ff3.tar UXP-e3b7744bee37c3d4a026d2193bed5e9439c40ff3.tar.gz UXP-e3b7744bee37c3d4a026d2193bed5e9439c40ff3.tar.lz UXP-e3b7744bee37c3d4a026d2193bed5e9439c40ff3.tar.xz UXP-e3b7744bee37c3d4a026d2193bed5e9439c40ff3.zip |
Merge branch 'move-basilisk'
Diffstat (limited to 'application/basilisk/components/webextensions/ext-c-omnibox.js')
-rw-r--r-- | application/basilisk/components/webextensions/ext-c-omnibox.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/application/basilisk/components/webextensions/ext-c-omnibox.js b/application/basilisk/components/webextensions/ext-c-omnibox.js new file mode 100644 index 000000000..3b9b6e2f7 --- /dev/null +++ b/application/basilisk/components/webextensions/ext-c-omnibox.js @@ -0,0 +1,32 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +Cu.import("resource://gre/modules/ExtensionUtils.jsm"); + +var { + runSafeSyncWithoutClone, + SingletonEventManager, +} = ExtensionUtils; + +extensions.registerSchemaAPI("omnibox", "addon_child", context => { + return { + omnibox: { + onInputChanged: new SingletonEventManager(context, "omnibox.onInputChanged", fire => { + let listener = (text, id) => { + runSafeSyncWithoutClone(fire, text, suggestions => { + // TODO: Switch to using callParentFunctionNoReturn once bug 1314903 is fixed. + context.childManager.callParentAsyncFunction("omnibox_internal.addSuggestions", [ + id, + suggestions, + ]); + }); + }; + context.childManager.getParentEvent("omnibox_internal.onInputChanged").addListener(listener); + return () => { + context.childManager.getParentEvent("omnibox_internal.onInputChanged").removeListener(listener); + }; + }).api(), + }, + }; +}); |