--- a/devtools/client/netmonitor/src/netmonitor-controller.js
+++ b/devtools/client/netmonitor/src/netmonitor-controller.js
@@ -542,17 +542,17 @@ NetworkEventsHandler.prototype = {
pushPayloadToQueue(id, payload) {
let queuedPayload = this.getPayloadFromQueue(id);
if (!queuedPayload) {
queuedPayload = { id, payload };
} else {
// Merge upcoming networkEventUpdate payload into existing one
- queuedPayload = { id, payload: Object.assign({}, queuedPayload, payload) };
+ queuedPayload = { id, payload: Object.assign(queuedPayload, payload) };
}
this.payloadQueue.push(queuedPayload);
},
async updateRequest(id, data) {
let {
mimeType,
--- a/devtools/client/netmonitor/test/browser_net_simple-request-data.js
+++ b/devtools/client/netmonitor/test/browser_net_simple-request-data.js
@@ -86,18 +86,24 @@ function test() {
document,
getDisplayedRequests(gStore.getState()),
requestItem,
"GET",
SIMPLE_SJS
);
});
- monitor.panelWin.once(EVENTS.RECEIVED_REQUEST_HEADERS, () => {
+ monitor.panelWin.once(EVENTS.RECEIVED_REQUEST_HEADERS, async () => {
+ await waitUntil(() => {
+ let requestItem = getSortedRequests(gStore.getState()).get(0);
+ return requestItem.requestHeaders;
+ });
+
let requestItem = getSortedRequests(gStore.getState()).get(0);
+
ok(requestItem.requestHeaders,
"There should be a requestHeaders data available.");
is(requestItem.requestHeaders.headers.length, 10,
"The requestHeaders data has an incorrect |headers| property.");
isnot(requestItem.requestHeaders.headersSize, 0,
"The requestHeaders data has an incorrect |headersSize| property.");
// Can't test for the exact request headers size because the value may
// vary across platforms ("User-Agent" header differs).
@@ -106,17 +112,22 @@ function test() {
document,
getDisplayedRequests(gStore.getState()),
requestItem,
"GET",
SIMPLE_SJS
);
});
- monitor.panelWin.once(EVENTS.RECEIVED_REQUEST_COOKIES, () => {
+ monitor.panelWin.once(EVENTS.RECEIVED_REQUEST_COOKIES, async () => {
+ await waitUntil(() => {
+ let requestItem = getSortedRequests(gStore.getState()).get(0);
+ return requestItem.requestCookies;
+ });
+
let requestItem = getSortedRequests(gStore.getState()).get(0);
ok(requestItem.requestCookies,
"There should be a requestCookies data available.");
is(requestItem.requestCookies.cookies.length, 2,
"The requestCookies data has an incorrect |cookies| property.");
verifyRequestItemTarget(
@@ -127,17 +138,22 @@ function test() {
SIMPLE_SJS
);
});
monitor.panelWin.once(EVENTS.RECEIVED_REQUEST_POST_DATA, () => {
ok(false, "Trap listener: this request doesn't have any post data.");
});
- monitor.panelWin.once(EVENTS.RECEIVED_RESPONSE_HEADERS, () => {
+ monitor.panelWin.once(EVENTS.RECEIVED_RESPONSE_HEADERS, async () => {
+ await waitUntil(() => {
+ let requestItem = getSortedRequests(gStore.getState()).get(0);
+ return requestItem.responseHeaders;
+ });
+
let requestItem = getSortedRequests(gStore.getState()).get(0);
ok(requestItem.responseHeaders,
"There should be a responseHeaders data available.");
is(requestItem.responseHeaders.headers.length, 10,
"The responseHeaders data has an incorrect |headers| property.");
is(requestItem.responseHeaders.headersSize, 330,
"The responseHeaders data has an incorrect |headersSize| property.");
@@ -146,34 +162,47 @@ function test() {
document,
getDisplayedRequests(gStore.getState()),
requestItem,
"GET",
SIMPLE_SJS
);
});
- monitor.panelWin.once(EVENTS.RECEIVED_RESPONSE_COOKIES, () => {
+ monitor.panelWin.once(EVENTS.RECEIVED_RESPONSE_COOKIES, async () => {
+ await waitUntil(() => {
+ let requestItem = getSortedRequests(gStore.getState()).get(0);
+ return requestItem.responseCookies;
+ });
+
let requestItem = getSortedRequests(gStore.getState()).get(0);
ok(requestItem.responseCookies,
"There should be a responseCookies data available.");
is(requestItem.responseCookies.cookies.length, 2,
"The responseCookies data has an incorrect |cookies| property.");
verifyRequestItemTarget(
document,
getDisplayedRequests(gStore.getState()),
requestItem,
"GET",
SIMPLE_SJS
);
});
- monitor.panelWin.once(EVENTS.STARTED_RECEIVING_RESPONSE, () => {
+ monitor.panelWin.once(EVENTS.STARTED_RECEIVING_RESPONSE, async () => {
+ await waitUntil(() => {
+ let requestItem = getSortedRequests(gStore.getState()).get(0);
+ return requestItem.httpVersion &&
+ requestItem.status &&
+ requestItem.statusText &&
+ requestItem.headersSize;
+ });
+
let requestItem = getSortedRequests(gStore.getState()).get(0);
is(requestItem.httpVersion, "HTTP/1.1",
"The httpVersion data has an incorrect value.");
is(requestItem.status, "200",
"The status data has an incorrect value.");
is(requestItem.statusText, "Och Aye",
"The statusText data has an incorrect value.");
@@ -188,17 +217,25 @@ function test() {
SIMPLE_SJS,
{
status: "200",
statusText: "Och Aye"
}
);
});
- monitor.panelWin.once(EVENTS.RECEIVED_RESPONSE_CONTENT, () => {
+ monitor.panelWin.once(EVENTS.RECEIVED_RESPONSE_CONTENT, async () => {
+ await waitUntil(() => {
+ let requestItem = getSortedRequests(gStore.getState()).get(0);
+ return requestItem.transferredSize &&
+ requestItem.contentSize &&
+ requestItem.mimeType &&
+ requestItem.responseContent;
+ });
+
let requestItem = getSortedRequests(gStore.getState()).get(0);
is(requestItem.transferredSize, "12",
"The transferredSize data has an incorrect value.");
is(requestItem.contentSize, "12",
"The contentSize data has an incorrect value.");
is(requestItem.mimeType, "text/plain; charset=utf-8",
"The mimeType data has an incorrect value.");
@@ -228,17 +265,22 @@ function test() {
type: "plain",
fullMimeType: "text/plain; charset=utf-8",
transferred: L10N.getFormatStrWithNumbers("networkMenu.sizeB", 12),
size: L10N.getFormatStrWithNumbers("networkMenu.sizeB", 12),
}
);
});
- monitor.panelWin.once(EVENTS.UPDATING_EVENT_TIMINGS, () => {
+ monitor.panelWin.once(EVENTS.UPDATING_EVENT_TIMINGS, async () => {
+ await waitUntil(() => {
+ let requestItem = getSortedRequests(gStore.getState()).get(0);
+ return requestItem.eventTimings;
+ });
+
let requestItem = getSortedRequests(gStore.getState()).get(0);
is(typeof requestItem.totalTime, "number",
"The attached totalTime is incorrect.");
ok(requestItem.totalTime >= 0,
"The attached totalTime should be positive.");
verifyRequestItemTarget(