Bug 1307892 - New console frontend: Add tests for network event update message r?linclark draft
authorRicky Chien <ricky060709@gmail.com>
Thu, 15 Sep 2016 15:21:25 +0800
changeset 424033 24ae86e4edf2b0fd5bd08ed0ff8fd52141bdfda8
parent 424032 fb1763b8fd45b3449ac5948e946529f6a91e087d
child 533577 d371c722735f3ae1e941d893ea95bbd520c3ad21
push id32047
push userbmo:rchien@mozilla.com
push dateWed, 12 Oct 2016 03:24:53 +0000
reviewerslinclark
bugs1307892
milestone52.0a1
Bug 1307892 - New console frontend: Add tests for network event update message r?linclark MozReview-Commit-ID: Ha5d70jjGaW
devtools/client/webconsole/new-console-output/test/components/network-event-message.test.js
devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/browser_webconsole_update_stubs_network_event.js
devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/head.js
devtools/client/webconsole/new-console-output/test/fixtures/stubs/networkEvent.js
--- a/devtools/client/webconsole/new-console-output/test/components/network-event-message.test.js
+++ b/devtools/client/webconsole/new-console-output/test/components/network-event-message.test.js
@@ -13,28 +13,30 @@ const { createFactory } = require("devto
 const NetworkEventMessage = createFactory(require("devtools/client/webconsole/new-console-output/components/message-types/network-event-message"));
 const { INDENT_WIDTH } = require("devtools/client/webconsole/new-console-output/components/message-indent");
 
 // Test fakes.
 const { stubPreparedMessages } = require("devtools/client/webconsole/new-console-output/test/fixtures/stubs/index");
 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 responseContent");
       const wrapper = render(NetworkEventMessage({ message, serviceContainer }));
 
       expect(wrapper.find(".message-body .method").text()).toBe("GET");
       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", () => {
       const message = stubPreparedMessages.get("GET request");
 
       const indent = 10;
       let wrapper = render(NetworkEventMessage({ message, serviceContainer, indent}));
       expect(wrapper.find(".indent").prop("style").width)
@@ -42,33 +44,35 @@ describe("NetworkEventMessage component:
 
       wrapper = render(NetworkEventMessage({ message, serviceContainer }));
       expect(wrapper.find(".indent").prop("style").width).toBe(`0`);
     });
   });
 
   describe("XHR GET request", () => {
     it("renders as expected", () => {
-      const message = stubPreparedMessages.get("XHR GET request");
+      const message = stubPreparedMessages.get("XHR GET request responseContent");
       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);
-      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);
     });
   });
 
   describe("XHR POST request", () => {
     it("renders as expected", () => {
-      const message = stubPreparedMessages.get("XHR POST request");
+      const message = stubPreparedMessages.get("XHR POST request responseContent");
       const wrapper = render(NetworkEventMessage({ message, serviceContainer }));
 
       expect(wrapper.find(".message-body .method").text()).toBe("POST");
       expect(wrapper.find(".message-body .xhr").length).toBe(1);
       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);
-      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);
     });
   });
 });
--- a/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/browser_webconsole_update_stubs_network_event.js
+++ b/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/browser_webconsole_update_stubs_network_event.js
@@ -4,44 +4,58 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 Cu.import("resource://gre/modules/osfile.jsm");
 const TARGET = "networkEvent";
 const { [TARGET]: snippets } = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js");
 const TEST_URI = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html";
+// A typical network event request will follow by 8 types of different network
+// event update packets
+const NETWORK_EVENT_UPDATE_COUNT = 8;
 
 let stubs = {
   preparedMessages: [],
   packets: [],
 };
 
 add_task(function* () {
   for (var [key, {keys, code}] of snippets) {
     OS.File.writeAtomic(TEMP_FILE_PATH, `function triggerPacket() {${code}}`);
     let toolbox = yield openNewTabAndToolbox(TEST_URI, "webconsole");
     let {ui} = toolbox.getCurrentPanel().hud;
 
     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));
-        if(++i === keys.length ){
+        stubs.preparedMessages.push(formatNetworkEventStub(keys[i], res));
+        if(++i === keys.length) {
+          resolve();
+        }
+      });
+    });
+
+    let networkEventUpdate = new Promise(resolve => {
+      let i = 0;
+      toolbox.target.activeConsole.on(`${TARGET}Update` , (type, res) => {
+        stubs.packets.push(formatPacket(`${keys[0]} ${res.packet.updateType}`, res));
+        stubs.preparedMessages.push(formatNetworkEventStub(`${keys[0]} ${res.packet.updateType}`, res));
+        if(++i === NETWORK_EVENT_UPDATE_COUNT) {
           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));
   OS.File.writeAtomic(TEMP_FILE_PATH, "");
 });
--- a/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/head.js
+++ b/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/head.js
@@ -30,41 +30,19 @@ stubPackets.set("${key}", ${JSON.stringi
 
 function formatStub(key, message) {
   let prepared = prepareMessage(message, {getNextId: () => "1"});
   return `
 stubPreparedMessages.set("${key}", new ConsoleMessage(${JSON.stringify(prepared, null, "\t")}));
 `;
 }
 
-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});
   return `
 stubPreparedMessages.set("${key}", new NetworkEventMessage(${JSON.stringify(prepared, null, "\t")}));
 `;
 }
 
 function formatFile(stubs) {
   return `/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */
--- a/devtools/client/webconsole/new-console-output/test/fixtures/stubs/networkEvent.js
+++ b/devtools/client/webconsole/new-console-output/test/fixtures/stubs/networkEvent.js
@@ -9,67 +9,1104 @@
 
 const { ConsoleMessage, NetworkEventMessage } = require("devtools/client/webconsole/new-console-output/types");
 
 let stubPreparedMessages = new Map();
 let stubPackets = new Map();
 
 
 stubPreparedMessages.set("GET request", new NetworkEventMessage({
-	"id": "1",
+	"id": "server1.conn0.child1/netEvent29",
 	"actor": "server1.conn0.child1/netEvent29",
 	"level": "log",
 	"isXHR": false,
 	"request": {
 		"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
 		"method": "GET"
 	},
 	"response": {},
 	"source": "network",
 	"type": "log"
 }));
 
+stubPreparedMessages.set("GET request requestHeaders", new NetworkEventMessage({
+	"id": "server1.conn0.child1/netEvent29",
+	"actor": "server1.conn0.child1/netEvent29",
+	"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": {},
+	"source": "network",
+	"type": "log"
+}));
+
+stubPreparedMessages.set("GET request requestCookies", new NetworkEventMessage({
+	"id": "server1.conn0.child1/netEvent29",
+	"actor": "server1.conn0.child1/netEvent29",
+	"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": {},
+	"source": "network",
+	"type": "log"
+}));
+
+stubPreparedMessages.set("GET request responseStart", new NetworkEventMessage({
+	"id": "server1.conn0.child1/netEvent29",
+	"actor": "server1.conn0.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("GET request securityInfo", new NetworkEventMessage({
+	"id": "server1.conn0.child1/netEvent29",
+	"actor": "server1.conn0.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("GET request responseHeaders", new NetworkEventMessage({
+	"id": "server1.conn0.child1/netEvent29",
+	"actor": "server1.conn0.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("GET request responseCookies", new NetworkEventMessage({
+	"id": "server1.conn0.child1/netEvent29",
+	"actor": "server1.conn0.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("GET request eventTimings", new NetworkEventMessage({
+	"id": "server1.conn0.child1/netEvent29",
+	"actor": "server1.conn0.child1/netEvent29",
+	"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",
+	"totalTime": 9
+}));
+
+stubPreparedMessages.set("GET request responseContent", new NetworkEventMessage({
+	"id": "server1.conn0.child1/netEvent29",
+	"actor": "server1.conn0.child1/netEvent29",
+	"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,
+		"content": {
+			"mimeType": "text/html; charset=utf-8"
+		},
+		"bodySize": 904,
+		"transferredSize": 904
+	},
+	"source": "network",
+	"type": "log",
+	"totalTime": 9
+}));
+
 stubPreparedMessages.set("XHR GET request", new NetworkEventMessage({
-	"id": "1",
+	"id": "server1.conn1.child1/netEvent29",
 	"actor": "server1.conn1.child1/netEvent29",
 	"level": "log",
 	"isXHR": true,
 	"request": {
 		"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
 		"method": "GET"
 	},
 	"response": {},
 	"source": "network",
 	"type": "log"
 }));
 
+stubPreparedMessages.set("XHR GET request requestHeaders", new NetworkEventMessage({
+	"id": "server1.conn1.child1/netEvent29",
+	"actor": "server1.conn1.child1/netEvent29",
+	"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": {},
+	"source": "network",
+	"type": "log"
+}));
+
+stubPreparedMessages.set("XHR GET request requestCookies", new NetworkEventMessage({
+	"id": "server1.conn1.child1/netEvent29",
+	"actor": "server1.conn1.child1/netEvent29",
+	"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": {},
+	"source": "network",
+	"type": "log"
+}));
+
+stubPreparedMessages.set("XHR GET request responseStart", new NetworkEventMessage({
+	"id": "server1.conn1.child1/netEvent29",
+	"actor": "server1.conn1.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("XHR GET request securityInfo", new NetworkEventMessage({
+	"id": "server1.conn1.child1/netEvent29",
+	"actor": "server1.conn1.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("XHR GET request responseHeaders", new NetworkEventMessage({
+	"id": "server1.conn1.child1/netEvent29",
+	"actor": "server1.conn1.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("XHR GET request responseCookies", new NetworkEventMessage({
+	"id": "server1.conn1.child1/netEvent29",
+	"actor": "server1.conn1.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("XHR GET request eventTimings", new NetworkEventMessage({
+	"id": "server1.conn1.child1/netEvent29",
+	"actor": "server1.conn1.child1/netEvent29",
+	"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",
+	"totalTime": 12
+}));
+
+stubPreparedMessages.set("XHR GET request responseContent", new NetworkEventMessage({
+	"id": "server1.conn1.child1/netEvent29",
+	"actor": "server1.conn1.child1/netEvent29",
+	"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,
+		"content": {
+			"mimeType": "text/html; charset=utf-8"
+		},
+		"bodySize": 904,
+		"transferredSize": 904
+	},
+	"source": "network",
+	"type": "log",
+	"totalTime": 12
+}));
+
 stubPreparedMessages.set("XHR POST request", new NetworkEventMessage({
-	"id": "1",
+	"id": "server1.conn2.child1/netEvent29",
 	"actor": "server1.conn2.child1/netEvent29",
 	"level": "log",
 	"isXHR": true,
 	"request": {
 		"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
 		"method": "POST"
 	},
 	"response": {},
 	"source": "network",
 	"type": "log"
 }));
 
+stubPreparedMessages.set("XHR POST request requestHeaders", new NetworkEventMessage({
+	"id": "server1.conn2.child1/netEvent29",
+	"actor": "server1.conn2.child1/netEvent29",
+	"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": {},
+	"source": "network",
+	"type": "log"
+}));
+
+stubPreparedMessages.set("XHR POST request requestCookies", new NetworkEventMessage({
+	"id": "server1.conn2.child1/netEvent29",
+	"actor": "server1.conn2.child1/netEvent29",
+	"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": {},
+	"source": "network",
+	"type": "log"
+}));
+
+stubPreparedMessages.set("XHR POST request responseStart", new NetworkEventMessage({
+	"id": "server1.conn2.child1/netEvent29",
+	"actor": "server1.conn2.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("XHR POST request securityInfo", new NetworkEventMessage({
+	"id": "server1.conn2.child1/netEvent29",
+	"actor": "server1.conn2.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("XHR POST request responseHeaders", new NetworkEventMessage({
+	"id": "server1.conn2.child1/netEvent29",
+	"actor": "server1.conn2.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("XHR POST request responseCookies", new NetworkEventMessage({
+	"id": "server1.conn2.child1/netEvent29",
+	"actor": "server1.conn2.child1/netEvent29",
+	"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"
+}));
+
+stubPreparedMessages.set("XHR POST request eventTimings", new NetworkEventMessage({
+	"id": "server1.conn2.child1/netEvent29",
+	"actor": "server1.conn2.child1/netEvent29",
+	"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",
+	"totalTime": 10
+}));
+
+stubPreparedMessages.set("XHR POST request responseContent", new NetworkEventMessage({
+	"id": "server1.conn2.child1/netEvent29",
+	"actor": "server1.conn2.child1/netEvent29",
+	"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,
+		"content": {
+			"mimeType": "text/html; charset=utf-8"
+		},
+		"bodySize": 904,
+		"transferredSize": 904
+	},
+	"source": "network",
+	"type": "log",
+	"totalTime": 10
+}));
+
 
 stubPackets.set("GET request", {
-	"from": "server1.conn0.child1/consoleActor2",
-	"type": "networkEvent",
-	"eventActor": {
+	"_type": "NetworkEvent",
+	"timeStamp": 1475814287668,
+	"node": null,
+	"actor": "server1.conn0.child1/netEvent29",
+	"discardRequestBody": true,
+	"discardResponseBody": true,
+	"startedDateTime": "2016-10-07T04:24:47.668Z",
+	"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
+			}
+		]
+	},
+	"response": {},
+	"timings": {},
+	"updates": [],
+	"private": false
+});
+
+stubPackets.set("GET request requestHeaders", {
+	"packet": {
+		"from": "server1.conn0.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "requestHeaders",
+		"headers": 7,
+		"headersSize": 489
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814287668,
+		"node": null,
+		"actor": "server1.conn0.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": true,
+		"startedDateTime": "2016-10-07T04:24:47.668Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {},
+		"timings": {},
+		"updates": [
+			"requestHeaders"
+		],
+		"private": false
+	}
+});
+
+stubPackets.set("GET request requestCookies", {
+	"packet": {
+		"from": "server1.conn0.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "requestCookies",
+		"cookies": 0
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814287668,
+		"node": null,
+		"actor": "server1.conn0.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": true,
+		"startedDateTime": "2016-10-07T04:24:47.668Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies"
+		],
+		"private": false
+	}
+});
+
+stubPackets.set("GET request responseStart", {
+	"packet": {
+		"from": "server1.conn0.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseStart",
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888,
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"discardResponseBody": false
+		}
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814287668,
+		"node": null,
+		"actor": "server1.conn0.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:47.668Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart"
+		],
+		"private": false
+	}
+});
+
+stubPackets.set("GET request securityInfo", {
+	"packet": {
+		"from": "server1.conn0.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "securityInfo",
+		"state": "insecure"
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814287668,
+		"node": null,
 		"actor": "server1.conn0.child1/netEvent29",
-		"startedDateTime": "2016-09-14T02:38:18.046Z",
-		"timeStamp": 1473820698046,
-		"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
-		"method": "GET",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:47.668Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo"
+		],
+		"private": false,
+		"securityInfo": "insecure"
+	}
+});
+
+stubPackets.set("GET request responseHeaders", {
+	"packet": {
+		"from": "server1.conn0.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseHeaders",
+		"headers": 5,
+		"headersSize": 160
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814287668,
+		"node": null,
+		"actor": "server1.conn0.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:47.668Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders"
+		],
+		"private": false,
+		"securityInfo": "insecure"
+	}
+});
+
+stubPackets.set("GET request responseCookies", {
+	"packet": {
+		"from": "server1.conn0.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseCookies",
+		"cookies": 0
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814287668,
+		"node": null,
+		"actor": "server1.conn0.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:47.668Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders",
+			"responseCookies"
+		],
+		"private": false,
+		"securityInfo": "insecure"
+	}
+});
+
+stubPackets.set("GET request eventTimings", {
+	"packet": {
+		"from": "server1.conn0.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "eventTimings",
+		"totalTime": 9
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814287668,
+		"node": null,
+		"actor": "server1.conn0.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:47.668Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders",
+			"responseCookies",
+			"eventTimings"
+		],
+		"private": false,
+		"securityInfo": "insecure",
+		"totalTime": 9
+	}
+});
+
+stubPackets.set("GET request responseContent", {
+	"packet": {
+		"from": "server1.conn0.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseContent",
+		"mimeType": "text/html; charset=utf-8",
+		"contentSize": 904,
+		"transferredSize": 904,
+		"discardResponseBody": false
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814287668,
+		"node": null,
+		"actor": "server1.conn0.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:47.668Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
 		"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,
@@ -88,29 +1125,585 @@ stubPackets.set("GET request", {
 					"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
 					"lineNumber": 53,
 					"columnNumber": 20,
 					"functionName": null,
 					"asyncCause": null
 				}
 			]
 		},
-		"private": false
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888,
+			"content": {
+				"mimeType": "text/html; charset=utf-8"
+			},
+			"bodySize": 904,
+			"transferredSize": 904
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders",
+			"responseCookies",
+			"eventTimings",
+			"responseContent"
+		],
+		"private": false,
+		"securityInfo": "insecure",
+		"totalTime": 9
 	}
 });
 
 stubPackets.set("XHR GET request", {
-	"from": "server1.conn1.child1/consoleActor2",
-	"type": "networkEvent",
-	"eventActor": {
+	"_type": "NetworkEvent",
+	"timeStamp": 1475814288479,
+	"node": null,
+	"actor": "server1.conn1.child1/netEvent29",
+	"discardRequestBody": true,
+	"discardResponseBody": true,
+	"startedDateTime": "2016-10-07T04:24:48.479Z",
+	"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
+			}
+		]
+	},
+	"response": {},
+	"timings": {},
+	"updates": [],
+	"private": false
+});
+
+stubPackets.set("XHR GET request requestHeaders", {
+	"packet": {
+		"from": "server1.conn1.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "requestHeaders",
+		"headers": 7,
+		"headersSize": 489
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814288479,
+		"node": null,
+		"actor": "server1.conn1.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": true,
+		"startedDateTime": "2016-10-07T04:24:48.479Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {},
+		"timings": {},
+		"updates": [
+			"requestHeaders"
+		],
+		"private": false
+	}
+});
+
+stubPackets.set("XHR GET request requestCookies", {
+	"packet": {
+		"from": "server1.conn1.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "requestCookies",
+		"cookies": 0
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814288479,
+		"node": null,
+		"actor": "server1.conn1.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": true,
+		"startedDateTime": "2016-10-07T04:24:48.479Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies"
+		],
+		"private": false
+	}
+});
+
+stubPackets.set("XHR GET request responseStart", {
+	"packet": {
+		"from": "server1.conn1.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseStart",
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888,
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"discardResponseBody": false
+		}
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814288479,
+		"node": null,
+		"actor": "server1.conn1.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:48.479Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart"
+		],
+		"private": false
+	}
+});
+
+stubPackets.set("XHR GET request securityInfo", {
+	"packet": {
+		"from": "server1.conn1.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "securityInfo",
+		"state": "insecure"
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814288479,
+		"node": null,
 		"actor": "server1.conn1.child1/netEvent29",
-		"startedDateTime": "2016-09-14T02:38:18.812Z",
-		"timeStamp": 1473820698812,
-		"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
-		"method": "GET",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:48.479Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo"
+		],
+		"private": false,
+		"securityInfo": "insecure"
+	}
+});
+
+stubPackets.set("XHR GET request responseHeaders", {
+	"packet": {
+		"from": "server1.conn1.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseHeaders",
+		"headers": 5,
+		"headersSize": 160
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814288479,
+		"node": null,
+		"actor": "server1.conn1.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:48.479Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders"
+		],
+		"private": false,
+		"securityInfo": "insecure"
+	}
+});
+
+stubPackets.set("XHR GET request responseCookies", {
+	"packet": {
+		"from": "server1.conn1.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseCookies",
+		"cookies": 0
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814288479,
+		"node": null,
+		"actor": "server1.conn1.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:48.479Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders",
+			"responseCookies"
+		],
+		"private": false,
+		"securityInfo": "insecure"
+	}
+});
+
+stubPackets.set("XHR GET request eventTimings", {
+	"packet": {
+		"from": "server1.conn1.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "eventTimings",
+		"totalTime": 12
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814288479,
+		"node": null,
+		"actor": "server1.conn1.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:48.479Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders",
+			"responseCookies",
+			"eventTimings"
+		],
+		"private": false,
+		"securityInfo": "insecure",
+		"totalTime": 12
+	}
+});
+
+stubPackets.set("XHR GET request responseContent", {
+	"packet": {
+		"from": "server1.conn1.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseContent",
+		"mimeType": "text/html; charset=utf-8",
+		"contentSize": 904,
+		"transferredSize": 904,
+		"discardResponseBody": false
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814288479,
+		"node": null,
+		"actor": "server1.conn1.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:48.479Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "GET",
+			"headersSize": 489
+		},
 		"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,
@@ -129,29 +1722,302 @@ stubPackets.set("XHR GET request", {
 					"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
 					"lineNumber": 53,
 					"columnNumber": 20,
 					"functionName": null,
 					"asyncCause": null
 				}
 			]
 		},
-		"private": false
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888,
+			"content": {
+				"mimeType": "text/html; charset=utf-8"
+			},
+			"bodySize": 904,
+			"transferredSize": 904
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders",
+			"responseCookies",
+			"eventTimings",
+			"responseContent"
+		],
+		"private": false,
+		"securityInfo": "insecure",
+		"totalTime": 12
 	}
 });
 
 stubPackets.set("XHR POST request", {
-	"from": "server1.conn2.child1/consoleActor2",
-	"type": "networkEvent",
-	"eventActor": {
+	"_type": "NetworkEvent",
+	"timeStamp": 1475814289297,
+	"node": null,
+	"actor": "server1.conn2.child1/netEvent29",
+	"discardRequestBody": true,
+	"discardResponseBody": true,
+	"startedDateTime": "2016-10-07T04:24:49.297Z",
+	"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
+			}
+		]
+	},
+	"response": {},
+	"timings": {},
+	"updates": [],
+	"private": false
+});
+
+stubPackets.set("XHR POST request requestHeaders", {
+	"packet": {
+		"from": "server1.conn2.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "requestHeaders",
+		"headers": 8,
+		"headersSize": 509
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814289297,
+		"node": null,
+		"actor": "server1.conn2.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": true,
+		"startedDateTime": "2016-10-07T04:24:49.297Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "POST",
+			"headersSize": 509
+		},
+		"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
+				}
+			]
+		},
+		"response": {},
+		"timings": {},
+		"updates": [
+			"requestHeaders"
+		],
+		"private": false
+	}
+});
+
+stubPackets.set("XHR POST request requestCookies", {
+	"packet": {
+		"from": "server1.conn2.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "requestCookies",
+		"cookies": 0
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814289297,
+		"node": null,
 		"actor": "server1.conn2.child1/netEvent29",
-		"startedDateTime": "2016-09-14T02:38:19.483Z",
-		"timeStamp": 1473820699483,
-		"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
-		"method": "POST",
+		"discardRequestBody": true,
+		"discardResponseBody": true,
+		"startedDateTime": "2016-10-07T04:24:49.297Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "POST",
+			"headersSize": 509
+		},
+		"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
+				}
+			]
+		},
+		"response": {},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies"
+		],
+		"private": false
+	}
+});
+
+stubPackets.set("XHR POST request responseStart", {
+	"packet": {
+		"from": "server1.conn2.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseStart",
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888,
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"discardResponseBody": false
+		}
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814289297,
+		"node": null,
+		"actor": "server1.conn2.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:49.297Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "POST",
+			"headersSize": 509
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart"
+		],
+		"private": false
+	}
+});
+
+stubPackets.set("XHR POST request securityInfo", {
+	"packet": {
+		"from": "server1.conn2.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "securityInfo",
+		"state": "insecure"
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814289297,
+		"node": null,
+		"actor": "server1.conn2.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:49.297Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "POST",
+			"headersSize": 509
+		},
 		"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,
@@ -170,17 +2036,326 @@ stubPackets.set("XHR POST request", {
 					"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
 					"lineNumber": 53,
 					"columnNumber": 20,
 					"functionName": null,
 					"asyncCause": null
 				}
 			]
 		},
-		"private": false
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo"
+		],
+		"private": false,
+		"securityInfo": "insecure"
+	}
+});
+
+stubPackets.set("XHR POST request responseHeaders", {
+	"packet": {
+		"from": "server1.conn2.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseHeaders",
+		"headers": 5,
+		"headersSize": 160
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814289297,
+		"node": null,
+		"actor": "server1.conn2.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:49.297Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "POST",
+			"headersSize": 509
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders"
+		],
+		"private": false,
+		"securityInfo": "insecure"
+	}
+});
+
+stubPackets.set("XHR POST request responseCookies", {
+	"packet": {
+		"from": "server1.conn2.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseCookies",
+		"cookies": 0
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814289297,
+		"node": null,
+		"actor": "server1.conn2.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:49.297Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "POST",
+			"headersSize": 509
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders",
+			"responseCookies"
+		],
+		"private": false,
+		"securityInfo": "insecure"
+	}
+});
+
+stubPackets.set("XHR POST request eventTimings", {
+	"packet": {
+		"from": "server1.conn2.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "eventTimings",
+		"totalTime": 10
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814289297,
+		"node": null,
+		"actor": "server1.conn2.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:49.297Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "POST",
+			"headersSize": 509
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders",
+			"responseCookies",
+			"eventTimings"
+		],
+		"private": false,
+		"securityInfo": "insecure",
+		"totalTime": 10
+	}
+});
+
+stubPackets.set("XHR POST request responseContent", {
+	"packet": {
+		"from": "server1.conn2.child1/netEvent29",
+		"type": "networkEventUpdate",
+		"updateType": "responseContent",
+		"mimeType": "text/html; charset=utf-8",
+		"contentSize": 904,
+		"transferredSize": 904,
+		"discardResponseBody": false
+	},
+	"networkInfo": {
+		"_type": "NetworkEvent",
+		"timeStamp": 1475814289297,
+		"node": null,
+		"actor": "server1.conn2.child1/netEvent29",
+		"discardRequestBody": true,
+		"discardResponseBody": false,
+		"startedDateTime": "2016-10-07T04:24:49.297Z",
+		"request": {
+			"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
+			"method": "POST",
+			"headersSize": 509
+		},
+		"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
+				}
+			]
+		},
+		"response": {
+			"httpVersion": "HTTP/1.1",
+			"status": "404",
+			"statusText": "Not Found",
+			"headersSize": 160,
+			"remoteAddress": "127.0.0.1",
+			"remotePort": 8888,
+			"content": {
+				"mimeType": "text/html; charset=utf-8"
+			},
+			"bodySize": 904,
+			"transferredSize": 904
+		},
+		"timings": {},
+		"updates": [
+			"requestHeaders",
+			"requestCookies",
+			"responseStart",
+			"securityInfo",
+			"responseHeaders",
+			"responseCookies",
+			"eventTimings",
+			"responseContent"
+		],
+		"private": false,
+		"securityInfo": "insecure",
+		"totalTime": 10
 	}
 });
 
 
 module.exports = {
   stubPreparedMessages,
   stubPackets,
 }
\ No newline at end of file