Bug 1362445 - Fix _action context menus when module is not loaded r?bsilverberg draft
authorTomislav Jovanovic <tomica@gmail.com>
Sun, 07 May 2017 21:38:01 +0200
changeset 573805 828672c75b5894e8e767d8e416a7c0f45c80ede2
parent 573737 c21bd752dc66ae708019a4156bbee69123bec4e8
child 627409 ee35f2bbc995a38b14a4489537cbf58f348b0475
push id57509
push userbmo:tomica@gmail.com
push dateSun, 07 May 2017 19:38:53 +0000
reviewersbsilverberg
bugs1362445
milestone55.0a1
Bug 1362445 - Fix _action context menus when module is not loaded r?bsilverberg MozReview-Commit-ID: AOzcpXSgy8d
browser/components/extensions/ext-browserAction.js
browser/components/extensions/ext-pageAction.js
--- a/browser/components/extensions/ext-browserAction.js
+++ b/browser/components/extensions/ext-browserAction.js
@@ -280,16 +280,20 @@ this.browserAction = class extends Exten
       case "mouseout":
         if (this.pendingPopup) {
           this.clearPopup();
         }
         break;
 
 
       case "popupshowing":
+        if (!global.actionContextMenu) {
+          break;
+        }
+
         const menu = event.target;
         const trigger = menu.triggerNode;
         const node = window.document.getElementById(this.id);
         const contexts = ["toolbar-context-menu", "customizationPanelItemContextMenu"];
 
         if (contexts.includes(menu.id) && node && isAncestorOrSelf(node, trigger)) {
           global.actionContextMenu({
             extension: this.extension,
@@ -596,9 +600,8 @@ this.browserAction = class extends Exten
           return Promise.resolve(color || [0xd9, 0, 0, 255]);
         },
       },
     };
   }
 };
 
 global.browserActionFor = this.browserAction.for;
-
--- a/browser/components/extensions/ext-pageAction.js
+++ b/browser/components/extensions/ext-pageAction.js
@@ -192,16 +192,20 @@ this.pageAction = class extends Extensio
     switch (event.type) {
       case "click":
         if (event.button === 0) {
           this.handleClick(window);
         }
         break;
 
       case "popupshowing":
+        if (!global.actionContextMenu) {
+          break;
+        }
+
         const menu = event.target;
         const trigger = menu.triggerNode;
 
         if (menu.id === "toolbar-context-menu" && trigger && trigger.id === this.id) {
           global.actionContextMenu({
             extension: this.extension,
             onPageAction: true,
             menu: menu,