From 5d04270889aefb257e6fbfc35e2853c117dff51f Mon Sep 17 00:00:00 2001 From: Romain Vigier Date: Tue, 8 Dec 2020 11:13:27 +0100 Subject: [PATCH] Use Promise to wait for the extension manager --- src/extension.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/extension.js b/src/extension.js index ad6a5bc..77f8ff7 100644 --- a/src/extension.js +++ b/src/extension.js @@ -60,7 +60,7 @@ function init() { * initialized before starting. */ function enable() { - GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => _waitForExtensionManager(start)); + _waitForExtensionManager().then(() => start()); } /** @@ -118,16 +118,17 @@ function disable() { } /** - * Wait for the Extension Manager to be initialized and run a callback function. - * - * @param {Function} callback The function to run when the Extension Manager - * is initialized. + * Wait for the Extension Manager to be initialized. Returns a Promise. */ -function _waitForExtensionManager(callback) { - logDebug('Waiting for Extension Manager initialization...'); - while (!compat.extensionManagerInitialized()) - continue; - logDebug('Extension Manager initialized.'); - callback(); - return false; +function _waitForExtensionManager() { + return new Promise(resolve => { + logDebug('Waiting for Extension Manager initialization...'); + GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => { + while (!compat.extensionManagerInitialized()) + continue; + return false; + }); + logDebug('Extension Manager initialized.'); + resolve(); + }); }