Bug 1382602 - update devtools/client/netmonitor to use new event emitter. r=honza
MozReview-Commit-ID: 6cEqHUGaMlM
--- 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"),