Bug 1382602 - update devtools/client/netmonitor to use new event emitter. r=honza draft
authoryulia <ystartsev@mozilla.com>
Wed, 14 Mar 2018 14:58:24 +0100
changeset 768484 c1f92e965e2121e5457e85b876a5cec4d516af80
parent 766824 8f1b2f872f0ea358a0412eb8b8687f08d47f6621
push id102874
push userbmo:ystartsev@mozilla.com
push dateFri, 16 Mar 2018 10:31:24 +0000
reviewershonza
bugs1382602
milestone61.0a1
Bug 1382602 - update devtools/client/netmonitor to use new event emitter. r=honza MozReview-Commit-ID: 6cEqHUGaMlM
devtools/client/netmonitor/initializer.js
devtools/client/netmonitor/src/har/toolbox-overlay.js
devtools/client/netmonitor/test/browser_net_pause.js
devtools/client/netmonitor/test/head.js
devtools/client/netmonitor/webpack.config.js
--- a/devtools/client/netmonitor/initializer.js
+++ b/devtools/client/netmonitor/initializer.js
@@ -11,17 +11,17 @@
 const { BrowserLoader } = ChromeUtils.import(
   "resource://devtools/client/shared/browser-loader.js", {});
 
 const require = window.windowRequire = BrowserLoader({
   baseURI: "resource://devtools/client/netmonitor/",
   window,
 }).require;
 
-const EventEmitter = require("devtools/shared/old-event-emitter");
+const EventEmitter = require("devtools/shared/event-emitter");
 const { createFactory } = require("devtools/client/shared/vendor/react");
 const { render, unmountComponentAtNode } = require("devtools/client/shared/vendor/react-dom");
 const Provider = createFactory(require("devtools/client/shared/vendor/react-redux").Provider);
 const { bindActionCreators } = require("devtools/client/shared/vendor/redux");
 const { Connector } = require("./src/connector/index");
 const { configureStore } = require("./src/create-store");
 const App = createFactory(require("./src/components/App"));
 const { EVENTS } = require("./src/constants");
@@ -114,17 +114,17 @@ window.Netmonitor = {
 
     return HarExporter.getHar(options);
   },
 
   /**
    * Support for `devtools.network.onRequestFinished`. A hook for
    * every finished HTTP request used by WebExtensions API.
    */
-  onRequestAdded(event, requestId) {
+  onRequestAdded(requestId) {
     let listeners = this.toolbox.getRequestFinishedListeners();
     if (!listeners.size) {
       return;
     }
 
     let { HarExporter } = require("devtools/client/netmonitor/src/har/har-exporter");
     let options = {
       connector,
--- a/devtools/client/netmonitor/src/har/toolbox-overlay.js
+++ b/devtools/client/netmonitor/src/har/toolbox-overlay.js
@@ -44,17 +44,17 @@ ToolboxOverlay.prototype = {
     }
 
     this.initAutomation();
   },
 
   /**
    * Executed when the toolbox is destroyed.
    */
-  onDestroy: function(eventId, toolbox) {
+  onDestroy: function(toolbox) {
     this.destroyAutomation();
   },
 
   // Automation
 
   initAutomation: function() {
     this.automation = new HarAutomation(this.toolbox);
   },
--- a/devtools/client/netmonitor/test/browser_net_pause.js
+++ b/devtools/client/netmonitor/test/browser_net_pause.js
@@ -72,26 +72,14 @@ async function performRequestAndWait(tab
   });
   await wait;
 }
 
 /**
  * Execute simple GET request
  */
 async function performPausedRequest(connector, tab, monitor) {
-  let wait = waitForWebConsoleNetworkEvent(connector);
+  let wait = connector.connector.webConsoleClient.once("networkEvent");
   await ContentTask.spawn(tab.linkedBrowser, SIMPLE_SJS, async function(url) {
     await content.wrappedJSObject.performRequests(url);
   });
   await wait;
 }
-
-/**
- * Listen for events fired by the console client since the Firefox
- * connector (data provider) is paused.
- */
-function waitForWebConsoleNetworkEvent(connector) {
-  return new Promise(resolve => {
-    connector.connector.webConsoleClient.once("networkEvent", (type, networkInfo) => {
-      resolve();
-    });
-  });
-}
--- a/devtools/client/netmonitor/test/head.js
+++ b/devtools/client/netmonitor/test/head.js
@@ -140,17 +140,17 @@ function toggleCache(target, disabled) {
 
 /**
  * Wait for 2 markers during document load.
  */
 function waitForTimelineMarkers(monitor) {
   return new Promise(resolve => {
     let markers = [];
 
-    function handleTimelineEvent(_, marker) {
+    function handleTimelineEvent(marker) {
       info(`Got marker: ${marker.name}`);
       markers.push(marker);
       if (markers.length == 2) {
         monitor.panelWin.off(EVENTS.TIMELINE_EVENT, handleTimelineEvent);
         info("Got two timeline markers, done waiting");
         resolve(markers);
       }
     }
@@ -179,24 +179,24 @@ function waitForAllRequestsFinished(moni
   let window = monitor.panelWin;
   let { connector } = window;
   let { getNetworkRequest } = connector;
 
   return new Promise(resolve => {
     // Key is the request id, value is a boolean - is request finished or not?
     let requests = new Map();
 
-    function onRequest(_, id) {
+    function onRequest(id) {
       let networkInfo = getNetworkRequest(id);
       let { url } = networkInfo.request;
       info(`Request ${id} for ${url} not yet done, keep waiting...`);
       requests.set(id, false);
     }
 
-    function onTimings(_, id) {
+    function onTimings(id) {
       let networkInfo = getNetworkRequest(id);
       let { url } = networkInfo.request;
       info(`Request ${id} for ${url} done`);
       requests.set(id, true);
       maybeResolve();
     }
 
     function maybeResolve() {
@@ -237,23 +237,23 @@ let updatedTypes = [
   "NetMonitor:NetworkEventUpdated:ResponseContent",
   "NetMonitor:NetworkEventUpdated:SecurityInfo",
   "NetMonitor:NetworkEventUpdated:EventTimings",
 ];
 
 // Start collecting all networkEventUpdate event when panel is opened.
 // removeTab() should be called once all corresponded RECEIVED_* events finished.
 function startNetworkEventUpdateObserver(panelWin) {
-  updatingTypes.forEach((type) => panelWin.on(type, (event, actor) => {
-    let key = actor + "-" + updatedTypes[updatingTypes.indexOf(event)];
+  updatingTypes.forEach((type) => panelWin.on(type, actor => {
+    let key = actor + "-" + updatedTypes[updatingTypes.indexOf(type)];
     finishedQueue[key] = finishedQueue[key] ? finishedQueue[key] + 1 : 1;
   }));
 
-  updatedTypes.forEach((type) => panelWin.on(type, (event, actor) => {
-    let key = actor + "-" + event;
+  updatedTypes.forEach((type) => panelWin.on(type, actor => {
+    let key = actor + "-" + type;
     finishedQueue[key] = finishedQueue[key] ? finishedQueue[key] - 1 : -1;
   }));
 }
 
 async function waitForAllNetworkUpdateEvents() {
   function checkNetworkEventUpdateState() {
     for (let key in finishedQueue) {
       if (finishedQueue[key] > 0) {
@@ -348,36 +348,36 @@ function teardown(monitor) {
 
 function waitForNetworkEvents(monitor, getRequests) {
   return new Promise((resolve) => {
     let panel = monitor.panelWin;
     let { getNetworkRequest } = panel.connector;
     let networkEvent = 0;
     let payloadReady = 0;
 
-    function onNetworkEvent(event, actor) {
+    function onNetworkEvent(actor) {
       let networkInfo = getNetworkRequest(actor);
       if (!networkInfo) {
         // Must have been related to reloading document to disable cache.
         // Ignore the event.
         return;
       }
       networkEvent++;
-      maybeResolve(event, actor, networkInfo);
+      maybeResolve(EVENTS.NETWORK_EVENT, actor, networkInfo);
     }
 
-    function onPayloadReady(event, actor) {
+    function onPayloadReady(actor) {
       let networkInfo = getNetworkRequest(actor);
       if (!networkInfo) {
         // Must have been related to reloading document to disable cache.
         // Ignore the event.
         return;
       }
       payloadReady++;
-      maybeResolve(event, actor, networkInfo);
+      maybeResolve(EVENTS.PAYLOAD_READY, actor, networkInfo);
     }
 
     function maybeResolve(event, actor, networkInfo) {
       info("> Network event progress: " +
         "NetworkEvent: " + networkEvent + "/" + getRequests + ", " +
         "PayloadReady: " + payloadReady + "/" + getRequests + ", " +
         "got " + event + " for " + actor);
 
--- a/devtools/client/netmonitor/webpack.config.js
+++ b/devtools/client/netmonitor/webpack.config.js
@@ -79,17 +79,17 @@ let webpackConfig = {
       "devtools/client/shared/vendor/react-dom": "react-dom",
       "devtools/client/shared/vendor/react-redux": "react-redux",
       "devtools/client/shared/vendor/redux": "redux",
       "devtools/client/shared/vendor/reselect": "reselect",
       "devtools/client/shared/vendor/jszip": "jszip",
 
       "devtools/client/sourceeditor/editor": "devtools-source-editor/src/source-editor",
 
-      "devtools/shared/old-event-emitter": "devtools-modules/src/utils/event-emitter",
+      "devtools/shared/event-emitter": "devtools-modules/src/utils/event-emitter",
       "devtools/shared/fronts/timeline": path.join(__dirname, "../../client/shared/webpack/shims/fronts-timeline-shim"),
       "devtools/shared/platform/clipboard": path.join(__dirname, "../../client/shared/webpack/shims/platform-clipboard-stub"),
       "devtools/client/netmonitor/src/utils/firefox/open-request-in-tab": path.join(__dirname, "src/utils/open-request-in-tab"),
 
       // Locales need to be explicitly mapped to the en-US subfolder
       "devtools/client/locales": path.join(__dirname, "../../client/locales/en-US"),
       "devtools/shared/locales": path.join(__dirname, "../../shared/locales/en-US"),
       "devtools/shim/locales": path.join(__dirname, "../../shared/locales/en-US"),