diff --git a/src/PluginContainer.tsx b/src/PluginContainer.tsx index d813d2b9b..14418475e 100644 --- a/src/PluginContainer.tsx +++ b/src/PluginContainer.tsx @@ -192,7 +192,7 @@ class PluginContainer extends PureComponent { pluginKey && pendingMessages?.length ) { - // this.setState({progress: {current: 0, total: 0}}); + const start = Date.now(); this.idler = new Idler(); processMessageQueue( activePlugin, @@ -202,7 +202,18 @@ class PluginContainer extends PureComponent { this.setState({progress}); }, this.idler, - ); + ).then(completed => { + const duration = Date.now() - start; + this.props.logger.track( + 'duration', + 'queue-processing-before-plugin-open', + { + completed, + duration, + }, + activePlugin.id, + ); + }); } } } diff --git a/src/utils/messageQueue.tsx b/src/utils/messageQueue.tsx index 0090d403b..79034e75d 100644 --- a/src/utils/messageQueue.tsx +++ b/src/utils/messageQueue.tsx @@ -204,9 +204,9 @@ export async function processMessageQueue( store: MiddlewareAPI, progressCallback?: (progress: {current: number; total: number}) => void, idler: BaseIdler = new Idler(), -) { +): Promise { if (!plugin.persistedStateReducer) { - return; + return true; } const total = getPendingMessages(store, pluginKey).length; let progress = 0; @@ -249,12 +249,13 @@ export async function processMessageQueue( } if (idler.isCancelled()) { - return; + return false; } await idler.idle(); // new messages might have arrived, so keep looping } while (getPendingMessages(store, pluginKey).length); + return true; } function getPendingMessages(