Part 2 - Bug 1246044 - Fix issue where context menu items show up after extension is uninstalled. r=kmag draft
authorMatthew Wein <mwein@mozilla.com>
Tue, 05 Jul 2016 17:11:21 -0700
changeset 385192 b27a1821e102f149e442a3c3c6e866268a7b6252
parent 385191 12fadecd5d09eeffe6e006e86c0f61df59ef9473
child 385193 1aa41d6399714a571aa2f3bd9e756281616b7b0a
push id22438
push usermwein@mozilla.com
push dateThu, 07 Jul 2016 18:51:28 +0000
reviewerskmag
bugs1246044
milestone50.0a1
Part 2 - Bug 1246044 - Fix issue where context menu items show up after extension is uninstalled. r=kmag MozReview-Commit-ID: 9eGwSkY8PWo
browser/components/extensions/ext-contextMenus.js
--- a/browser/components/extensions/ext-contextMenus.js
+++ b/browser/components/extensions/ext-contextMenus.js
@@ -449,26 +449,26 @@ MenuItem.prototype = {
     return true;
   },
 };
 
 var gExtensionCount = 0;
 /* eslint-disable mozilla/balanced-listeners */
 extensions.on("startup", (type, extension) => {
   gContextMenuMap.set(extension, new Map());
-  gRootItems.delete(extension);
   if (++gExtensionCount == 1) {
     Services.obs.addObserver(contextMenuObserver,
                              "on-build-contextmenu",
                              false);
   }
 });
 
 extensions.on("shutdown", (type, extension) => {
   gContextMenuMap.delete(extension);
+  gRootItems.delete(extension);
   if (--gExtensionCount == 0) {
     Services.obs.removeObserver(contextMenuObserver,
                                 "on-build-contextmenu");
   }
 });
 /* eslint-enable mozilla/balanced-listeners */
 
 extensions.registerSchemaAPI("contextMenus", (extension, context) => {