Bug 1307892 - Add support for network event update message r=nchevobbe

MozReview-Commit-ID: 4lat3RYa4YN

--HG--
extra : rebase_source : 2980fbb9286c0557973deb74ff1c2e3ef988ca5e
This commit is contained in:
Ricky Chien 2017-01-29 13:07:58 +08:00
parent 6a7758630c
commit 6cee666c54
15 changed files with 343 additions and 191 deletions

View File

@ -744,6 +744,10 @@ a.learn-more-link.webconsole-learn-more-link {
margin-inline-end: 5px;
}
.network .message-flex-body > .message-body {
display: flex;
}
.webconsole-output-wrapper .message .indent {
display: inline-block;
border-inline-end: solid 1px var(--theme-splitter-color);
@ -757,7 +761,7 @@ a.learn-more-link.webconsole-learn-more-link {
.message.startGroup .icon,
.message.startGroupCollapsed .icon {
display: none;
display: none;
}
/* console.table() */

View File

@ -13,6 +13,7 @@ const { IdGenerator } = require("devtools/client/webconsole/new-console-output/u
const { batchActions } = require("devtools/client/webconsole/new-console-output/actions/enhancers");
const {
MESSAGE_ADD,
NETWORK_MESSAGE_UPDATE,
MESSAGES_CLEAR,
MESSAGE_OPEN,
MESSAGE_CLOSE,
@ -90,10 +91,25 @@ function messageTableDataReceive(id, data) {
};
}
function networkMessageUpdate(packet, idGenerator = null) {
if (idGenerator == null) {
idGenerator = defaultIdGenerator;
}
let message = prepareMessage(packet, idGenerator);
return {
type: NETWORK_MESSAGE_UPDATE,
message,
};
}
module.exports = {
messageAdd,
messagesClear,
messageOpen,
messageClose,
messageTableDataGet,
networkMessageUpdate,
};

View File

@ -50,7 +50,10 @@ const MessageContainer = createClass({
const repeatChanged = this.props.message.repeat !== nextProps.message.repeat;
const openChanged = this.props.open !== nextProps.open;
const tableDataChanged = this.props.tableData !== nextProps.tableData;
return repeatChanged || openChanged || tableDataChanged;
const responseChanged = this.props.message.response !== nextProps.message.response;
const totalTimeChanged = this.props.message.totalTime !== nextProps.message.totalTime;
return repeatChanged || openChanged || tableDataChanged || responseChanged ||
totalTimeChanged;
},
render() {

View File

@ -29,13 +29,35 @@ NetworkEventMessage.defaultProps = {
indent: 0,
};
function NetworkEventMessage(props) {
const { message, serviceContainer, indent } = props;
const { actor, source, type, level, request, isXHR, timeStamp } = message;
function NetworkEventMessage({
indent,
message = {},
serviceContainer,
}) {
const {
actor,
source,
type,
level,
request,
response: {
httpVersion,
status,
statusText,
},
isXHR,
timeStamp,
totalTime,
} = message;
const topLevelClasses = [ "cm-s-mozilla" ];
let statusInfo;
function onUrlClick() {
if (httpVersion && status && statusText && totalTime !== undefined) {
statusInfo = `[${httpVersion} ${status} ${statusText} ${totalTime}ms]`;
}
function openNetworkMonitor() {
serviceContainer.openNetworkPanel(actor);
}
@ -43,10 +65,13 @@ function NetworkEventMessage(props) {
const xhr = isXHR
? dom.span({ className: "xhr" }, l10n.getStr("webConsoleXhrIndicator"))
: null;
const url = dom.a({ className: "url", title: request.url, onClick: onUrlClick },
request.url.replace(/\?.+/, ""));
const url = dom.a({ className: "url", title: request.url, onClick: openNetworkMonitor },
request.url.replace(/\?.+/, ""));
const statusBody = statusInfo
? dom.a({ className: "status", onClick: openNetworkMonitor }, statusInfo)
: null;
const messageBody = dom.span({}, method, xhr, url);
const messageBody = [method, xhr, url, statusBody];
const childProps = {
source,

View File

@ -11,6 +11,7 @@ const actionTypes = {
MESSAGES_CLEAR: "MESSAGES_CLEAR",
MESSAGE_OPEN: "MESSAGE_OPEN",
MESSAGE_CLOSE: "MESSAGE_CLOSE",
NETWORK_MESSAGE_UPDATE: "NETWORK_MESSAGE_UPDATE",
MESSAGE_TABLE_RECEIVE: "MESSAGE_TABLE_RECEIVE",
TIMESTAMPS_TOGGLE: "TIMESTAMPS_TOGGLE",
FILTER_TOGGLE: "FILTER_TOGGLE",

View File

@ -134,7 +134,7 @@ NewConsoleOutputWrapper.prototype = {
let jsterm = this.jsterm;
jsterm.hud.on("new-messages", function onThisMessage(e, messages) {
for (let m of messages) {
if (m.messageId == messageId) {
if (m.messageId === messageId) {
resolve(m.node);
jsterm.hud.off("new-messages", onThisMessage);
return;
@ -160,6 +160,16 @@ NewConsoleOutputWrapper.prototype = {
store.dispatch(actions.timestampsToggle(enabled));
},
dispatchMessageUpdate: function (message, res) {
batchedMessageAdd(actions.networkMessageUpdate(message));
// network-message-updated will emit when eventTimings message arrives
// which is the last one of 8 updates happening on network message update.
if (res.packet.updateType === "eventTimings") {
this.jsterm.hud.emit("network-message-updated", res);
}
},
// Should be used for test purpose only.
getStore: function () {
return store;

View File

@ -98,6 +98,11 @@ function messages(state = new MessageState(), action) {
case constants.MESSAGE_TABLE_RECEIVE:
const {id, data} = action;
return state.set("messagesTableDataById", messagesTableDataById.set(id, data));
case constants.NETWORK_MESSAGE_UPDATE:
let updateMessage = action.message;
return state.set("messagesById", messagesById.map((message) =>
(message.id === updateMessage.id) ? updateMessage : message
));
}
return state;

View File

@ -18,11 +18,12 @@ const { stubPreparedMessages } = require("devtools/client/webconsole/new-console
const serviceContainer = require("devtools/client/webconsole/new-console-output/test/fixtures/serviceContainer");
const EXPECTED_URL = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html";
const EXPECTED_STATUS = /\[HTTP\/\d\.\d \d+ [A-Za-z ]+ \d+ms\]/;
describe("NetworkEventMessage component:", () => {
describe("GET request", () => {
it("renders as expected", () => {
const message = stubPreparedMessages.get("GET request");
const message = stubPreparedMessages.get("GET request eventTimings");
const wrapper = render(NetworkEventMessage({ message, serviceContainer }));
const L10n = require("devtools/client/webconsole/new-console-output/test/fixtures/L10n");
const { timestampString } = new L10n();
@ -32,9 +33,8 @@ describe("NetworkEventMessage component:", () => {
expect(wrapper.find(".message-body .xhr").length).toBe(0);
expect(wrapper.find(".message-body .url").length).toBe(1);
expect(wrapper.find(".message-body .url").text()).toBe(EXPECTED_URL);
expect(wrapper
.find("div.message.cm-s-mozilla span.message-body.devtools-monospace").length
).toBe(1);
expect(wrapper.find(".message-body .status").length).toBe(1);
expect(wrapper.find(".message-body .status").text()).toMatch(EXPECTED_STATUS);
});
it("has the expected indent", () => {
@ -52,21 +52,20 @@ describe("NetworkEventMessage component:", () => {
describe("XHR GET request", () => {
it("renders as expected", () => {
const message = stubPreparedMessages.get("XHR GET request");
const message = stubPreparedMessages.get("XHR GET request eventTimings");
const wrapper = render(NetworkEventMessage({ message, serviceContainer }));
expect(wrapper.find(".message-body .method").text()).toBe("GET");
expect(wrapper.find(".message-body .xhr").length).toBe(1);
expect(wrapper.find(".message-body .xhr").text()).toBe("XHR");
expect(wrapper.find(".message-body .url").text()).toBe(EXPECTED_URL);
let selector = "div.message.cm-s-mozilla span.message-body.devtools-monospace";
expect(wrapper.find(selector).length).toBe(1);
expect(wrapper.find(".message-body .status").text()).toMatch(EXPECTED_STATUS);
});
});
describe("XHR POST request", () => {
it("renders as expected", () => {
const message = stubPreparedMessages.get("XHR POST request");
const message = stubPreparedMessages.get("XHR POST request eventTimings");
const wrapper = render(NetworkEventMessage({ message, serviceContainer }));
expect(wrapper.find(".message-body .method").text()).toBe("POST");
@ -74,8 +73,8 @@ describe("NetworkEventMessage component:", () => {
expect(wrapper.find(".message-body .xhr").text()).toBe("XHR");
expect(wrapper.find(".message-body .url").length).toBe(1);
expect(wrapper.find(".message-body .url").text()).toBe(EXPECTED_URL);
let selector = "div.message.cm-s-mozilla span.message-body.devtools-monospace";
expect(wrapper.find(selector).length);
expect(wrapper.find(".message-body .status").length).toBe(1);
expect(wrapper.find(".message-body .status").text()).toMatch(EXPECTED_STATUS);
});
});
});

View File

@ -24,22 +24,34 @@ add_task(function* () {
ok(ui.jsterm, "jsterm exists");
ok(ui.newConsoleOutput, "newConsoleOutput exists");
let received = new Promise(resolve => {
let networkEvent = new Promise(resolve => {
let i = 0;
toolbox.target.client.addListener(TARGET, (type, res) => {
toolbox.target.activeConsole.on(TARGET, (type, res) => {
stubs.packets.push(formatPacket(keys[i], res));
stubs.preparedMessages.push(formatNetworkStub(keys[i], res));
stubs.preparedMessages.push(formatNetworkEventStub(keys[i], res));
if (++i === keys.length) {
resolve();
}
});
});
let networkEventUpdate = new Promise(resolve => {
let i = 0;
ui.jsterm.hud.on("network-message-updated", function onNetworkUpdated(event, res) {
ui.jsterm.hud.off("network-message-updated", onNetworkUpdated);
stubs.preparedMessages.push(
formatNetworkEventStub(`${keys[i++]} ${res.packet.updateType}`, res));
if (i === keys.length) {
resolve();
}
});
});
yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function () {
content.wrappedJSObject.triggerPacket();
});
yield received;
yield Promise.all([networkEvent, networkEventUpdate]);
}
let filePath = OS.Path.join(`${BASE_PATH}/stubs/${TARGET}.js`);
OS.File.writeAtomic(filePath, formatFile(stubs, "NetworkEventMessage"));

View File

@ -4,7 +4,7 @@
* http://creativecommons.org/publicdomain/zero/1.0/ */
/* import-globals-from ../../../../../framework/test/shared-head.js */
/* exported TEMP_FILE_PATH, TEMP_CSS_FILE_PATH, formatPacket, formatStub,
formatNetworkStub, formatFile */
formatNetworkEventStub, formatFile */
"use strict";
// shared-head.js handles imports, constants, and utility functions
@ -133,31 +133,9 @@ function formatStub(key, packet) {
return `stubPreparedMessages.set("${key}", new ConsoleMessage(${stringifiedMessage}));`;
}
function formatNetworkStub(key, packet) {
let actor = packet.eventActor;
let networkInfo = {
_type: "NetworkEvent",
timeStamp: actor.timeStamp,
node: null,
actor: actor.actor,
discardRequestBody: true,
discardResponseBody: true,
startedDateTime: actor.startedDateTime,
request: {
url: actor.url,
method: actor.method,
},
isXHR: actor.isXHR,
cause: actor.cause,
response: {},
timings: {},
// track the list of network event updates
updates: [],
private: actor.private,
fromCache: actor.fromCache,
fromServiceWorker: actor.fromServiceWorker
};
let prepared = prepareMessage(networkInfo, {getNextId: () => "1"});
function formatNetworkEventStub(key, packet) {
let networkInfo = packet.actor ? packet : packet.networkInfo;
let prepared = prepareMessage(networkInfo, {getNextId: () => networkInfo.actor});
let stringifiedMessage = JSON.stringify(prepared, null, 2);
return `stubPreparedMessages.set("${key}", ` +
`new NetworkEventMessage(${stringifiedMessage}));`;

View File

@ -14,8 +14,8 @@ const { NetworkEventMessage } =
let stubPreparedMessages = new Map();
let stubPackets = new Map();
stubPreparedMessages.set("GET request", new NetworkEventMessage({
"id": "1",
"actor": "server1.conn0.child1/netEvent29",
"id": "server1.conn0.child1/netEvent30",
"actor": "server1.conn0.child1/netEvent30",
"level": "log",
"isXHR": false,
"request": {
@ -25,13 +25,38 @@ stubPreparedMessages.set("GET request", new NetworkEventMessage({
"response": {},
"source": "network",
"type": "log",
"timeStamp": 1479159937660,
"groupId": null
"groupId": null,
"timeStamp": 1485777989897
}));
stubPreparedMessages.set("GET request eventTimings", new NetworkEventMessage({
"id": "server1.conn0.child1/netEvent30",
"actor": "server1.conn0.child1/netEvent30",
"level": "log",
"isXHR": false,
"request": {
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "GET",
"headersSize": 489
},
"response": {
"httpVersion": "HTTP/1.1",
"status": "404",
"statusText": "Not Found",
"headersSize": 160,
"remoteAddress": "127.0.0.1",
"remotePort": 8888
},
"source": "network",
"type": "log",
"groupId": null,
"timeStamp": 1485777989897,
"totalTime": 7
}));
stubPreparedMessages.set("XHR GET request", new NetworkEventMessage({
"id": "1",
"actor": "server1.conn1.child1/netEvent29",
"id": "server1.conn1.child1/netEvent30",
"actor": "server1.conn1.child1/netEvent30",
"level": "log",
"isXHR": true,
"request": {
@ -41,13 +66,38 @@ stubPreparedMessages.set("XHR GET request", new NetworkEventMessage({
"response": {},
"source": "network",
"type": "log",
"timeStamp": 1479159938522,
"groupId": null
"groupId": null,
"timeStamp": 1485777990639
}));
stubPreparedMessages.set("XHR GET request eventTimings", new NetworkEventMessage({
"id": "server1.conn1.child1/netEvent30",
"actor": "server1.conn1.child1/netEvent30",
"level": "log",
"isXHR": true,
"request": {
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "GET",
"headersSize": 489
},
"response": {
"httpVersion": "HTTP/1.1",
"status": "404",
"statusText": "Not Found",
"headersSize": 160,
"remoteAddress": "127.0.0.1",
"remotePort": 8888
},
"source": "network",
"type": "log",
"groupId": null,
"timeStamp": 1485777990639,
"totalTime": 10
}));
stubPreparedMessages.set("XHR POST request", new NetworkEventMessage({
"id": "1",
"actor": "server1.conn2.child1/netEvent29",
"id": "server1.conn2.child1/netEvent30",
"actor": "server1.conn2.child1/netEvent30",
"level": "log",
"isXHR": true,
"request": {
@ -57,131 +107,174 @@ stubPreparedMessages.set("XHR POST request", new NetworkEventMessage({
"response": {},
"source": "network",
"type": "log",
"timeStamp": 1479159939328,
"groupId": null
"groupId": null,
"timeStamp": 1485777991739
}));
stubPreparedMessages.set("XHR POST request eventTimings", new NetworkEventMessage({
"id": "server1.conn2.child1/netEvent30",
"actor": "server1.conn2.child1/netEvent30",
"level": "log",
"isXHR": true,
"request": {
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "POST",
"headersSize": 509
},
"response": {
"httpVersion": "HTTP/1.1",
"status": "404",
"statusText": "Not Found",
"headersSize": 160,
"remoteAddress": "127.0.0.1",
"remotePort": 8888
},
"source": "network",
"type": "log",
"groupId": null,
"timeStamp": 1485777991739,
"totalTime": 9
}));
stubPackets.set("GET request", {
"from": "server1.conn0.child1/consoleActor2",
"type": "networkEvent",
"eventActor": {
"actor": "server1.conn0.child1/netEvent29",
"startedDateTime": "2016-10-15T23:12:04.196Z",
"timeStamp": 1479159937660,
"_type": "NetworkEvent",
"timeStamp": 1485777989897,
"node": null,
"actor": "server1.conn0.child1/netEvent30",
"discardRequestBody": true,
"discardResponseBody": true,
"startedDateTime": "2017-01-30T12:06:29.897Z",
"request": {
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "GET",
"isXHR": false,
"cause": {
"type": 3,
"loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html",
"stacktrace": [
{
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js",
"lineNumber": 3,
"columnNumber": 1,
"functionName": "triggerPacket",
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval",
"lineNumber": 4,
"columnNumber": 7,
"functionName": null,
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
"lineNumber": 53,
"columnNumber": 20,
"functionName": null,
"asyncCause": null
}
]
},
"private": false
}
"method": "GET"
},
"isXHR": false,
"cause": {
"type": "img",
"loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html",
"stacktrace": [
{
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js",
"lineNumber": 3,
"columnNumber": 1,
"functionName": "triggerPacket",
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval",
"lineNumber": 4,
"columnNumber": 7,
"functionName": null,
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
"lineNumber": 53,
"columnNumber": 20,
"functionName": null,
"asyncCause": null
}
]
},
"response": {},
"timings": {},
"updates": [],
"private": false,
"from": "server1.conn0.child1/consoleActor2"
});
stubPackets.set("XHR GET request", {
"from": "server1.conn1.child1/consoleActor2",
"type": "networkEvent",
"eventActor": {
"actor": "server1.conn1.child1/netEvent29",
"startedDateTime": "2016-10-15T23:12:05.690Z",
"timeStamp": 1479159938522,
"_type": "NetworkEvent",
"timeStamp": 1485777990639,
"node": null,
"actor": "server1.conn1.child1/netEvent30",
"discardRequestBody": true,
"discardResponseBody": true,
"startedDateTime": "2017-01-30T12:06:30.639Z",
"request": {
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "GET",
"isXHR": true,
"cause": {
"type": 11,
"loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html",
"stacktrace": [
{
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js",
"lineNumber": 4,
"columnNumber": 1,
"functionName": "triggerPacket",
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval",
"lineNumber": 4,
"columnNumber": 7,
"functionName": null,
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
"lineNumber": 53,
"columnNumber": 20,
"functionName": null,
"asyncCause": null
}
]
},
"private": false
}
"method": "GET"
},
"isXHR": true,
"cause": {
"type": "xhr",
"loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html",
"stacktrace": [
{
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js",
"lineNumber": 4,
"columnNumber": 1,
"functionName": "triggerPacket",
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval",
"lineNumber": 4,
"columnNumber": 7,
"functionName": null,
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
"lineNumber": 53,
"columnNumber": 20,
"functionName": null,
"asyncCause": null
}
]
},
"response": {},
"timings": {},
"updates": [],
"private": false,
"from": "server1.conn1.child1/consoleActor2"
});
stubPackets.set("XHR POST request", {
"from": "server1.conn2.child1/consoleActor2",
"type": "networkEvent",
"eventActor": {
"actor": "server1.conn2.child1/netEvent29",
"startedDateTime": "2016-10-15T23:12:07.158Z",
"timeStamp": 1479159939328,
"_type": "NetworkEvent",
"timeStamp": 1485777991739,
"node": null,
"actor": "server1.conn2.child1/netEvent30",
"discardRequestBody": true,
"discardResponseBody": true,
"startedDateTime": "2017-01-30T12:06:31.739Z",
"request": {
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "POST",
"isXHR": true,
"cause": {
"type": 11,
"loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html",
"stacktrace": [
{
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js",
"lineNumber": 4,
"columnNumber": 1,
"functionName": "triggerPacket",
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval",
"lineNumber": 4,
"columnNumber": 7,
"functionName": null,
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
"lineNumber": 53,
"columnNumber": 20,
"functionName": null,
"asyncCause": null
}
]
},
"private": false
}
"method": "POST"
},
"isXHR": true,
"cause": {
"type": "xhr",
"loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html",
"stacktrace": [
{
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js",
"lineNumber": 4,
"columnNumber": 1,
"functionName": "triggerPacket",
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval",
"lineNumber": 4,
"columnNumber": 7,
"functionName": null,
"asyncCause": null
},
{
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
"lineNumber": 53,
"columnNumber": 20,
"functionName": null,
"asyncCause": null
}
]
},
"response": {},
"timings": {},
"updates": [],
"private": false,
"from": "server1.conn2.child1/consoleActor2"
});
module.exports = {

View File

@ -50,6 +50,7 @@ exports.NetworkEventMessage = Immutable.Record({
response: null,
source: MESSAGE_SOURCE.NETWORK,
type: MESSAGE_TYPE.LOG,
timeStamp: null,
groupId: null,
timeStamp: null,
totalTime: null,
});

View File

@ -11,12 +11,7 @@ exports.IdGenerator = class IdGenerator {
this.messageId = 1;
}
getNextId() {
// Return the next message id, as a string.
return "" + this.messageId++;
}
getCurrentId() {
return this.messageId;
getNextId(packet) {
return (packet && packet.actor) ? packet.actor : "" + this.messageId++;
}
};

View File

@ -29,7 +29,7 @@ function prepareMessage(packet, idGenerator) {
if (packet.allowRepeating) {
packet = packet.set("repeatId", getRepeatId(packet));
}
return packet.set("id", idGenerator.getNextId());
return packet.set("id", idGenerator.getNextId(packet));
}
/**
@ -182,7 +182,8 @@ function transformPacket(packet) {
isXHR: networkEvent.isXHR,
request: networkEvent.request,
response: networkEvent.response,
timeStamp: networkEvent.timeStamp
timeStamp: networkEvent.timeStamp,
totalTime: networkEvent.totalTime,
});
}

View File

@ -228,17 +228,24 @@ WebConsoleConnectionProxy.prototype = {
/**
* Dispatch a message add on the new frontend and emit an event for tests.
*/
dispatchMessageAdd: function(packet) {
dispatchMessageAdd: function (packet) {
this.webConsoleFrame.newConsoleOutput.dispatchMessageAdd(packet);
},
/**
* Batched dispatch of messages.
*/
dispatchMessagesAdd: function(packets) {
dispatchMessagesAdd: function (packets) {
this.webConsoleFrame.newConsoleOutput.dispatchMessagesAdd(packets);
},
/**
* Dispatch a message event on the new frontend and emit an event for tests.
*/
dispatchMessageUpdate: function (networkInfo, response) {
this.webConsoleFrame.newConsoleOutput.dispatchMessageUpdate(networkInfo, response);
},
/**
* The "cachedMessages" response handler.
*
@ -360,13 +367,15 @@ WebConsoleConnectionProxy.prototype = {
* @private
* @param string type
* Message type.
* @param object packet
* The message received from the server.
* @param object networkInfo
* The network request information.
* @param object response
* The update response received from the server.
*/
_onNetworkEventUpdate: function (type, { packet, networkInfo }) {
_onNetworkEventUpdate: function (type, response) {
let { packet, networkInfo } = response;
if (this.webConsoleFrame) {
if (this.webConsoleFrame.NEW_CONSOLE_OUTPUT_ENABLED) {
this.dispatchMessageUpdate(networkInfo, response);
}
this.webConsoleFrame.handleNetworkEventUpdate(networkInfo, packet);
}
},
@ -497,4 +506,4 @@ WebConsoleConnectionProxy.prototype = {
},
};
exports.WebConsoleConnectionProxy = WebConsoleConnectionProxy;
exports.WebConsoleConnectionProxy = WebConsoleConnectionProxy;