From 1baacd82dbedab04a1716292f40b3a7ec4de7d94 Mon Sep 17 00:00:00 2001
From: Kris Maglione <maglione.k@gmail.com>
Date: Fri, 4 Aug 2017 13:20:58 -0700
Subject: [PATCH] Bug 1385880: Part 3 - Wait for add-on startup before showing
 inline options browser. r=aswan

MozReview-Commit-ID: JPPUjIGPRvs

--HG--
extra : rebase_source : 82081628ce5ee1af6ad5e0cbbed4221518e55191
extra : histedit_source : 03cafbcfbaefb40a15b8b50af4b5010c96407bcc
---
 .../mozapps/extensions/content/extensions.js  | 22 ++++++++++---------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/toolkit/mozapps/extensions/content/extensions.js b/toolkit/mozapps/extensions/content/extensions.js
index 2238db70258a5..0a9a930806faa 100644
--- a/toolkit/mozapps/extensions/content/extensions.js
+++ b/toolkit/mozapps/extensions/content/extensions.js
@@ -3643,16 +3643,18 @@ var gDetailView = {
 
     try {
       if (this._addon.optionsType == AddonManager.OPTIONS_TYPE_INLINE_BROWSER) {
-        whenViewLoaded(() => {
-          this.createOptionsBrowser(rows).then(browser => {
-            // Make sure the browser is unloaded as soon as we change views,
-            // rather than waiting for the next detail view to load.
-            document.addEventListener("ViewChanged", function() {
-              browser.remove();
-            }, {once: true});
-
-            finish(browser);
-          });
+        whenViewLoaded(async () => {
+          await this._addon.startupPromise;
+
+          let browser = await this.createOptionsBrowser(rows);
+
+          // Make sure the browser is unloaded as soon as we change views,
+          // rather than waiting for the next detail view to load.
+          document.addEventListener("ViewChanged", function() {
+            browser.remove();
+          }, {once: true});
+
+          finish(browser);
         });
 
         if (aCallback)
-- 
GitLab