Bug 1350597 fix reload/upgrade of sidebar addon, r?kmag draft
authorShane Caraveo <scaraveo@mozilla.com>
Fri, 14 Apr 2017 17:01:23 -0700
changeset 563106 5123eba44195d728914e25f6eca3a67c35d94059
parent 563105 13436fdaf4bf4a1175a2eb59b338e847962ad5ad
child 624391 b338483ae79734f580533c35ff4fa411d48ccee3
push id54207
push usermixedpuppy@gmail.com
push dateSat, 15 Apr 2017 00:01:47 +0000
reviewerskmag
bugs1350597
milestone55.0a1
Bug 1350597 fix reload/upgrade of sidebar addon, r?kmag MozReview-Commit-ID: FcC7zJn1ka5
browser/base/content/browser-sidebar.js
browser/components/extensions/ext-sidebarAction.js
--- a/browser/base/content/browser-sidebar.js
+++ b/browser/base/content/browser-sidebar.js
@@ -218,16 +218,17 @@ var SidebarUI = {
           sidebarBroadcaster.setAttribute("checked", "true");
         }
       }
 
       this._box.hidden = false;
       this._splitter.hidden = false;
 
       this._box.setAttribute("sidebarcommand", sidebarBroadcaster.id);
+      this.lastOpenedId = sidebarBroadcaster.id;
 
       let title = sidebarBroadcaster.getAttribute("sidebartitle");
       if (!title) {
         title = sidebarBroadcaster.getAttribute("label");
       }
       this._title.value = title;
 
       let url = sidebarBroadcaster.getAttribute("sidebarurl");
--- a/browser/components/extensions/ext-sidebarAction.js
+++ b/browser/components/extensions/ext-sidebarAction.js
@@ -96,20 +96,21 @@ this.sidebarAction = class extends Exten
     windowTracker.removeOpenListener(this.windowOpenListener);
   }
 
   build() {
     this.tabContext.on("tab-select", // eslint-disable-line mozilla/balanced-listeners
                        (evt, tab) => { this.updateWindow(tab.ownerGlobal); });
 
     let install = this.extension.startupReason === "ADDON_INSTALL";
+    let upgrade = ["ADDON_UPGRADE", "ADDON_DOWNGRADE"].includes(this.extension.startupReason);
     for (let window of windowTracker.browserWindows()) {
       this.updateWindow(window);
-      if (install) {
-        let {SidebarUI} = window;
+      let {SidebarUI} = window;
+      if (install || (upgrade && SidebarUI.lastOpenedId == this.id)) {
         SidebarUI.show(this.id);
       }
     }
 
     if (install && !Services.prefs.prefHasUserValue("extensions.sidebar-button.shown")) {
       Services.prefs.setBoolPref("extensions.sidebar-button.shown", true);
       // If the sidebar button has never been moved to the toolbar, move it now
       // so the user can see/access the sidebars.