Bug 1320939 - Lazy load tooltip event helpers. r=jdescottes draft
authorAlexandre Poirot <poirot.alex@gmail.com>
Tue, 06 Dec 2016 03:50:57 -0800
changeset 561301 6cde13bbe50685a486a735d0060acf0e57a573c5
parent 560921 f40e24f40b4c4556944c762d4764eace261297f5
child 561302 5335eacc8d7cf2660352db403aa70387558f13b2
push id53696
push userbmo:poirot.alex@gmail.com
push dateWed, 12 Apr 2017 13:40:01 +0000
reviewersjdescottes
bugs1320939
milestone55.0a1
Bug 1320939 - Lazy load tooltip event helpers. r=jdescottes MozReview-Commit-ID: 1FXSUprpCN7
devtools/client/inspector/markup/views/element-container.js
--- a/devtools/client/inspector/markup/views/element-container.js
+++ b/devtools/client/inspector/markup/views/element-container.js
@@ -9,20 +9,23 @@ const PREVIEW_MAX_DIM_PREF = "devtools.i
 const promise = require("promise");
 const Services = require("Services");
 const Heritage = require("sdk/core/heritage");
 const {Task} = require("devtools/shared/task");
 const nodeConstants = require("devtools/shared/dom-node-constants");
 const clipboardHelper = require("devtools/shared/platform/clipboard");
 const {setImageTooltip, setBrokenImageTooltip} =
       require("devtools/client/shared/widgets/tooltip/ImageTooltipHelper");
-const {setEventTooltip} = require("devtools/client/shared/widgets/tooltip/EventTooltipHelper");
 const MarkupContainer = require("devtools/client/inspector/markup/views/markup-container");
 const ElementEditor = require("devtools/client/inspector/markup/views/element-editor");
 
+// Lazy load this module as _buildEventTooltipContent is only called on click
+loader.lazyRequireGetter(this, "setEventTooltip",
+  "devtools/client/shared/widgets/tooltip/EventTooltipHelper", true);
+
 /**
  * An implementation of MarkupContainer for Elements that can contain
  * child nodes.
  * Allows editing of tag name, attributes, expanding / collapsing.
  *
  * @param  {MarkupView} markupView
  *         The markup view that owns this container.
  * @param  {NodeFront} node
@@ -44,16 +47,17 @@ function MarkupElementContainer(markupVi
 MarkupElementContainer.prototype = Heritage.extend(MarkupContainer.prototype, {
   _buildEventTooltipContent: Task.async(function* (target, tooltip) {
     if (target.hasAttribute("data-event")) {
       yield tooltip.hide();
 
       let listenerInfo = yield this.node.getEventListenerInfo();
 
       let toolbox = this.markup.toolbox;
+
       setEventTooltip(tooltip, listenerInfo, toolbox);
       // Disable the image preview tooltip while we display the event details
       this.markup._disableImagePreviewTooltip();
       tooltip.once("hidden", () => {
         // Enable the image preview tooltip after closing the event details
         this.markup._enableImagePreviewTooltip();
       });
       tooltip.show(target);