Bug 1093953 - (Part 2) Update test fixtures and add new test for CSS warnings in console. r=Honza
authorRazvan Caliman <rcaliman@mozilla.com>
Fri, 03 May 2019 11:21:09 +0000
changeset 531288 26a53be19f261e246e1e2ef372395b2c81d772aa
parent 531287 835c16acd375943236bcac8d6d2ac6ff0925725b
child 531289 8b1e5ece60a2bacc0ff172739d2128104d619a56
push id11265
push userffxbld-merge
push dateMon, 13 May 2019 10:53:39 +0000
treeherdermozilla-beta@77e0fe8dbdd3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersHonza
bugs1093953
milestone68.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1093953 - (Part 2) Update test fixtures and add new test for CSS warnings in console. r=Honza Depends on D28457 This commit separates the test-related changes from part one in D28457. It updates the test fixtures to include the newly introduced `cssSelectors` field for messages used in tests. It adds a test file for the newly introduced `CSSWarning` React component which is mostly a trimmed-down clone of the test for `PageError` component from which the component was forked. For now, just the basic toggle behavior of the component is tested. The test for calling the server to query DOM elements is not yet instrumented. Differential Revision: https://phabricator.services.mozilla.com/D29345
devtools/client/webconsole/test/components/css-warning.test.js
devtools/client/webconsole/test/components/message-container.test.js
devtools/client/webconsole/test/fixtures/stubs/consoleApi.js
devtools/client/webconsole/test/fixtures/stubs/cssMessage.js
devtools/client/webconsole/test/fixtures/stubs/evaluationResult.js
devtools/client/webconsole/test/fixtures/stubs/pageError.js
new file mode 100644
--- /dev/null
+++ b/devtools/client/webconsole/test/components/css-warning.test.js
@@ -0,0 +1,103 @@
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+// Test utils.
+const expect = require("expect");
+const { render, mount } = require("enzyme");
+const sinon = require("sinon");
+
+// React
+const { createFactory } = require("devtools/client/shared/vendor/react");
+const Provider = createFactory(require("react-redux").Provider);
+const { setupStore } = require("devtools/client/webconsole/test/helpers");
+
+// Components under test.
+const CSSWarning = require("devtools/client/webconsole/components/message-types/CSSWarning");
+const {
+  MESSAGE_OPEN,
+  MESSAGE_CLOSE,
+} = require("devtools/client/webconsole/constants");
+
+// Test fakes.
+const { stubPreparedMessages } = require("devtools/client/webconsole/test/fixtures/stubs/index");
+const serviceContainer = require("devtools/client/webconsole/test/fixtures/serviceContainer");
+
+describe("CSSWarning component:", () => {
+  it("renders", () => {
+    const message = stubPreparedMessages.get(
+      "Unknown property ‘such-unknown-property’.  Declaration dropped."
+    );
+    const wrapper = render(CSSWarning({
+      message,
+      serviceContainer,
+      timestampsVisible: true,
+    }));
+    const { timestampString } = require("devtools/client/webconsole/webconsole-l10n");
+
+    expect(wrapper.find(".timestamp").text()).toBe(timestampString(message.timeStamp));
+
+    expect(wrapper.find(".message-body").text())
+      .toBe("Unknown property ‘such-unknown-property’.  Declaration dropped.");
+
+    // There shouldn't be a matched elements label rendered by default.
+    const elementLabel = wrapper.find(`.elements-label`);
+    expect(elementLabel.length).toBe(0);
+
+    // There should be a location.
+    const locationLink = wrapper.find(`.message-location`);
+    expect(locationLink.length).toBe(1);
+    expect(locationLink.text()).toBe("test-css-message.html:3:25");
+  });
+
+  it("closes an open message when the collapse button is clicked", () => {
+    const store = setupStore();
+    store.dispatch = sinon.spy();
+    const message = stubPreparedMessages.get(
+      "Unknown property ‘such-unknown-property’.  Declaration dropped."
+    );
+
+    const wrapper = mount(Provider({store},
+      CSSWarning({
+        message,
+        open: true,
+        dispatch: store.dispatch,
+        serviceContainer,
+      })
+    ));
+
+    wrapper.find(".collapse-button[aria-expanded='true']").simulate("click");
+
+    const call = store.dispatch.getCall(0);
+    expect(call.args[0]).toEqual({
+      id: message.id,
+      type: MESSAGE_CLOSE,
+    });
+  });
+
+  it("opens a closed message when the collapse button is clicked", () => {
+    const store = setupStore();
+    store.dispatch = sinon.spy();
+    const message = stubPreparedMessages.get(
+      "Unknown property ‘such-unknown-property’.  Declaration dropped."
+    );
+
+    const wrapper = mount(Provider({store},
+      CSSWarning({
+        message,
+        open: false,
+        payload: {}, // fake the existence of a payload to test just MESSAGE_OPEN action
+        dispatch: store.dispatch,
+        serviceContainer,
+      })
+    ));
+
+    wrapper.find(".collapse-button[aria-expanded='false']").simulate("click");
+
+    const call = store.dispatch.getCall(0);
+    expect(call.args[0]).toEqual({
+      id: message.id,
+      type: MESSAGE_OPEN,
+    });
+  });
+});
--- a/devtools/client/webconsole/test/components/message-container.test.js
+++ b/devtools/client/webconsole/test/components/message-container.test.js
@@ -6,16 +6,17 @@
 const expect = require("expect");
 const { render } = require("enzyme");
 const { createFactory } = require("devtools/client/shared/vendor/react");
 
 // Components under test.
 let { MessageContainer, getMessageComponent } = require("devtools/client/webconsole/components/MessageContainer");
 MessageContainer = createFactory(MessageContainer);
 const ConsoleApiCall = require("devtools/client/webconsole/components/message-types/ConsoleApiCall");
+const CSSWarning = require("devtools/client/webconsole/components/message-types/CSSWarning");
 const EvaluationResult = require("devtools/client/webconsole/components/message-types/EvaluationResult");
 const PageError = require("devtools/client/webconsole/components/message-types/PageError");
 
 // Test fakes.
 const { stubPreparedMessages } = require("devtools/client/webconsole/test/fixtures/stubs/index");
 const serviceContainer = require("devtools/client/webconsole/test/fixtures/serviceContainer");
 
 describe("MessageContainer component:", () => {
@@ -38,17 +39,17 @@ describe("MessageContainer component:", 
         component: EvaluationResult,
         message: stubPreparedMessages.get("new Date(0)"),
       },
       {
         component: PageError,
         message: stubPreparedMessages.get("ReferenceError: asdf is not defined"),
       },
       {
-        component: PageError,
+        component: CSSWarning,
         message: stubPreparedMessages.get(
           "Unknown property ‘such-unknown-property’.  Declaration dropped."
         ),
       },
     ];
 
     messageTypes.forEach(info => {
       const { component, message } = info;
--- a/devtools/client/webconsole/test/fixtures/stubs/consoleApi.js
+++ b/devtools/client/webconsole/test/fixtures/stubs/consoleApi.js
@@ -34,16 +34,17 @@ stubPreparedMessages.set(`console.log('f
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -69,16 +70,17 @@ stubPreparedMessages.set(`console.log(un
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -102,16 +104,17 @@ stubPreparedMessages.set(`console.warn('
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -137,16 +140,17 @@ stubPreparedMessages.set(`console.log(Na
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -172,16 +176,17 @@ stubPreparedMessages.set(`console.log(nu
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -205,16 +210,17 @@ stubPreparedMessages.set(`console.log('鼬')`, new ConsoleMessage({
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -238,16 +244,17 @@ stubPreparedMessages.set(`console.clear(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -269,16 +276,17 @@ stubPreparedMessages.set(`console.count(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -333,16 +341,17 @@ stubPreparedMessages.set(`console.assert
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source33",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -366,16 +375,17 @@ stubPreparedMessages.set(`console.log('h
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -399,16 +409,17 @@ stubPreparedMessages.set(`console.log('úṇĩçödê țĕșť')`, new ConsoleMessage({
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -444,16 +455,17 @@ stubPreparedMessages.set(`console.dirxml
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -495,16 +507,17 @@ stubPreparedMessages.set(`console.log('m
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -538,16 +551,17 @@ stubPreparedMessages.set(`console.log('m
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -588,16 +602,17 @@ stubPreparedMessages.set(`console.table(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -657,16 +672,17 @@ stubPreparedMessages.set(`console.log('m
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -690,16 +706,17 @@ stubPreparedMessages.set(`console.debug(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -723,16 +740,17 @@ stubPreparedMessages.set(`console.info('
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -764,16 +782,17 @@ stubPreparedMessages.set(`console.error(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source33",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -820,16 +839,17 @@ stubPreparedMessages.set(`console.log('m
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source50",
     "line": 5,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -870,16 +890,17 @@ stubPreparedMessages.set(`console.log('m
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -923,16 +944,17 @@ stubPreparedMessages.set(`console.trace(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source55",
     "line": 3,
     "column": 11
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1020,16 +1042,17 @@ stubPreparedMessages.set(`console.trace(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source56",
     "line": 3,
     "column": 11
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1051,16 +1074,17 @@ stubPreparedMessages.set(`console.time('
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1082,16 +1106,17 @@ stubPreparedMessages.set(`timerAlreadyEx
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 3,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1115,16 +1140,17 @@ stubPreparedMessages.set(`console.timeLo
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 4,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1173,16 +1199,17 @@ stubPreparedMessages.set(`console.timeLo
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source50",
     "line": 5,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1204,16 +1231,17 @@ stubPreparedMessages.set(`console.timeEn
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 6,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1235,16 +1263,17 @@ stubPreparedMessages.set(`timeEnd.timerD
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 7,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1266,16 +1295,17 @@ stubPreparedMessages.set(`timeLog.timerD
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 8,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1299,16 +1329,17 @@ stubPreparedMessages.set(`console.table(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1349,16 +1380,17 @@ stubPreparedMessages.set(`console.table(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1382,16 +1414,17 @@ stubPreparedMessages.set(`console.group(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1413,16 +1446,17 @@ stubPreparedMessages.set(`console.groupE
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 3,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1446,16 +1480,17 @@ stubPreparedMessages.set(`console.groupC
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1477,16 +1512,17 @@ stubPreparedMessages.set(`console.groupE
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 3,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1510,16 +1546,17 @@ stubPreparedMessages.set(`console.group(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1541,16 +1578,17 @@ stubPreparedMessages.set(`console.groupE
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 3,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1575,16 +1613,17 @@ stubPreparedMessages.set(`console.log(%c
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [
     "color:blue; font-size:1.3em; background:url('http://example.com/test'); position:absolute; top:10px; ",
     "color:red; line-height: 1.5; background:url('http://example.com/test')"
   ],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
@@ -1613,16 +1652,17 @@ stubPreparedMessages.set(`console.log("%
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source68",
     "line": 2,
     "column": 11
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [
     "color:red",
     "",
     "color: blue"
   ],
   "notes": null,
   "indent": 0,
   "prefix": "",
@@ -1651,16 +1691,17 @@ stubPreparedMessages.set(`console.group(
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [
     "color:blue;font-size:1.3em;background:url('http://example.com/test');position:absolute;top:10px",
     "color:red;background:url('http://example.com/test')"
   ],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
@@ -1685,16 +1726,17 @@ stubPreparedMessages.set(`console.groupE
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 6,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1719,16 +1761,17 @@ stubPreparedMessages.set(`console.groupC
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [
     "color:blue;font-size:1.3em;background:url('http://example.com/test');position:absolute;top:10px",
     "color:red;background:url('http://example.com/test')"
   ],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
@@ -1753,16 +1796,17 @@ stubPreparedMessages.set(`console.groupE
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 6,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1827,16 +1871,17 @@ stubPreparedMessages.set(`console.dir({C
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
     "column": 35
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1858,16 +1903,17 @@ stubPreparedMessages.set(`console.count 
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 2,
     "column": 13
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1889,16 +1935,17 @@ stubPreparedMessages.set(`console.count 
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 3,
     "column": 13
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1920,16 +1967,17 @@ stubPreparedMessages.set(`console.count 
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 4,
     "column": 13
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1951,16 +1999,17 @@ stubPreparedMessages.set(`console.count 
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 5,
     "column": 13
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -1982,16 +2031,17 @@ stubPreparedMessages.set(`console.count 
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 6,
     "column": 13
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -2015,16 +2065,17 @@ stubPreparedMessages.set(`console.count 
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 7,
     "column": 13
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -2046,16 +2097,17 @@ stubPreparedMessages.set(`console.count 
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 8,
     "column": 13
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -2077,16 +2129,17 @@ stubPreparedMessages.set(`console.count 
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 9,
     "column": 13
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -2108,16 +2161,17 @@ stubPreparedMessages.set(`console.countR
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 10,
     "column": 13
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -2139,16 +2193,17 @@ stubPreparedMessages.set(`console.countR
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 11,
     "column": 13
   },
   "groupId": null,
   "errorMessageName": null,
   "exceptionDocURL": null,
+  "cssSelectors": "",
   "userProvidedStyles": [],
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
--- a/devtools/client/webconsole/test/fixtures/stubs/cssMessage.js
+++ b/devtools/client/webconsole/test/fixtures/stubs/cssMessage.js
@@ -30,16 +30,17 @@ stubPreparedMessages.set(`Unknown property ‘such-unknown-property’.  Declaration dropped.`, new ConsoleMessage({
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-css-message.html",
     "sourceId": null,
     "line": 3,
     "column": 25
   },
   "groupId": null,
   "errorMessageName": "",
+  "cssSelectors": "p",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -60,16 +61,17 @@ stubPreparedMessages.set(`Error in parsing value for ‘padding-top’.  Declaration dropped.`, new ConsoleMessage({
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-css-message.html",
     "sourceId": null,
     "line": 3,
     "column": 16
   },
   "groupId": null,
   "errorMessageName": "",
+  "cssSelectors": "p",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -88,17 +90,18 @@ stubPackets.set(`Unknown property ‘such-unknown-property’.  Declaration dropped.`, {
     "warning": true,
     "error": false,
     "exception": false,
     "strict": false,
     "info": false,
     "private": false,
     "stacktrace": null,
     "notes": null,
-    "chromeContext": false
+    "chromeContext": false,
+    "cssSelectors": "p"
   },
   "type": "pageError",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`Error in parsing value for ‘padding-top’.  Declaration dropped.`, {
   "pageError": {
     "errorMessage": "Error in parsing value for ‘padding-top’.  Declaration dropped.",
@@ -114,17 +117,18 @@ stubPackets.set(`Error in parsing value for ‘padding-top’.  Declaration dropped.`, {
     "warning": true,
     "error": false,
     "exception": false,
     "strict": false,
     "info": false,
     "private": false,
     "stacktrace": null,
     "notes": null,
-    "chromeContext": false
+    "chromeContext": false,
+    "cssSelectors": "p"
   },
   "type": "pageError",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 module.exports = {
   stubPreparedMessages,
   stubPackets,
--- a/devtools/client/webconsole/test/fixtures/stubs/evaluationResult.js
+++ b/devtools/client/webconsole/test/fixtures/stubs/evaluationResult.js
@@ -36,16 +36,17 @@ stubPreparedMessages.set(`new Date(0)`, 
         "timestamp": 0
       }
     }
   ],
   "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"log\",\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj30\",\"class\":\"Date\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":0,\"preview\":{\"timestamp\":0}}],\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": null,
   "groupId": null,
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "chromeContext": false
 }));
 
 stubPreparedMessages.set(`asdf()`, new ConsoleMessage({
@@ -69,16 +70,17 @@ stubPreparedMessages.set(`asdf()`, new C
   "frame": {
     "source": "debugger eval code",
     "line": 1,
     "column": 1
   },
   "groupId": null,
   "errorMessageName": "JSMSG_NOT_DEFINED",
   "exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default",
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "chromeContext": false
 }));
 
 stubPreparedMessages.set(`1 + @`, new ConsoleMessage({
@@ -102,16 +104,17 @@ stubPreparedMessages.set(`1 + @`, new Co
   "frame": {
     "source": "debugger eval code",
     "line": 1,
     "column": 4
   },
   "groupId": null,
   "errorMessageName": "JSMSG_ILLEGAL_CHARACTER",
   "exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Illegal_character?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default",
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "chromeContext": false
 }));
 
 stubPreparedMessages.set(`inspect({a: 1})`, new ConsoleMessage({
@@ -149,16 +152,17 @@ stubPreparedMessages.set(`inspect({a: 1}
         "safeGetterValues": {}
       }
     }
   ],
   "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"log\",\"parameters\":[{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj35\",\"class\":\"Object\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":1,\"preview\":{\"kind\":\"Object\",\"ownProperties\":{\"a\":{\"configurable\":true,\"enumerable\":true,\"writable\":true,\"value\":1}},\"ownSymbols\":[],\"ownPropertiesLength\":1,\"ownSymbolsLength\":0,\"safeGetterValues\":{}}}],\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": null,
   "groupId": null,
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "chromeContext": false
 }));
 
 stubPreparedMessages.set(`cd(document)`, new ConsoleMessage({
@@ -176,16 +180,17 @@ stubPreparedMessages.set(`cd(document)`,
     {
       "type": "undefined"
     }
   ],
   "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"Cannot cd() to the given window. Invalid argument.\",\"parameters\":[{\"type\":\"undefined\"}],\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": null,
   "groupId": null,
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "chromeContext": false
 }));
 
 stubPreparedMessages.set(`undefined`, new ConsoleMessage({
@@ -202,16 +207,17 @@ stubPreparedMessages.set(`undefined`, ne
     {
       "type": "undefined"
     }
   ],
   "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"log\",\"parameters\":[{\"type\":\"undefined\"}],\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": null,
   "groupId": null,
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "chromeContext": false
 }));
 
 stubPreparedMessages.set(`longString message Error`, new ConsoleMessage({
@@ -234,16 +240,17 @@ stubPreparedMessages.set(`longString mes
     {
       "type": "undefined"
     }
   ],
   "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":{\"type\":\"longString\",\"initial\":\"Error: Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Long error Lon\",\"length\":110007,\"actor\":\"server1.conn0.child1/longString37\"},\"parameters\":[{\"type\":\"undefined\"}],\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": null,
   "groupId": null,
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "chromeContext": false
 }));
 
 stubPreparedMessages.set(`eval throw ""`, new ConsoleMessage({
@@ -261,16 +268,17 @@ stubPreparedMessages.set(`eval throw ""`
     {
       "type": "undefined"
     }
   ],
   "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"Error\",\"parameters\":[{\"type\":\"undefined\"}],\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": null,
   "groupId": null,
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "chromeContext": false
 }));
 
 stubPreparedMessages.set(`eval throw "tomato"`, new ConsoleMessage({
@@ -288,16 +296,17 @@ stubPreparedMessages.set(`eval throw "to
     {
       "type": "undefined"
     }
   ],
   "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"Error: tomato\",\"parameters\":[{\"type\":\"undefined\"}],\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": null,
   "groupId": null,
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "chromeContext": false
 }));
 
 stubPackets.set(`new Date(0)`, {
--- a/devtools/client/webconsole/test/fixtures/stubs/pageError.js
+++ b/devtools/client/webconsole/test/fixtures/stubs/pageError.js
@@ -67,16 +67,17 @@ stubPreparedMessages.set(`ReferenceError
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": null,
     "line": 3,
     "column": 5
   },
   "groupId": null,
   "errorMessageName": "JSMSG_NOT_DEFINED",
   "exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default",
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -113,16 +114,17 @@ stubPreparedMessages.set(`SyntaxError: r
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": null,
     "line": 2,
     "column": 9
   },
   "groupId": null,
   "errorMessageName": "JSMSG_REDECLARED_VAR",
   "exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Redeclared_parameter?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default",
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": [
     {
       "messageBody": "Previously declared at line 2, column 6",
       "frame": {
         "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
         "sourceId": null,
         "line": 2,
@@ -180,16 +182,17 @@ stubPreparedMessages.set(`TypeError long
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source26",
     "line": 1,
     "column": 7
   },
   "groupId": null,
   "errorMessageName": "",
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -232,16 +235,17 @@ stubPreparedMessages.set(`throw ""`, new
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": null,
     "line": 1,
     "column": 1
   },
   "groupId": null,
   "errorMessageName": "JSMSG_UNCAUGHT_EXCEPTION",
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -284,16 +288,17 @@ stubPreparedMessages.set(`throw "tomato"
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": null,
     "line": 1,
     "column": 1
   },
   "groupId": null,
   "errorMessageName": "JSMSG_UNCAUGHT_EXCEPTION",
+  "cssSelectors": "",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false,
   "chromeContext": false
 }));
 
@@ -349,17 +354,18 @@ stubPackets.set(`ReferenceError: asdf is
         "filename": "resource://testing-common/content-task.js",
         "sourceId": null,
         "lineNumber": 60,
         "columnNumber": 29,
         "functionName": null
       }
     ],
     "notes": null,
-    "chromeContext": false
+    "chromeContext": false,
+    "cssSelectors": ""
   },
   "type": "pageError",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`SyntaxError: redeclaration of let a`, {
   "pageError": {
     "errorMessage": "SyntaxError: redeclaration of let a",
@@ -401,17 +407,18 @@ stubPackets.set(`SyntaxError: redeclarat
         "frame": {
           "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
           "sourceId": null,
           "line": 2,
           "column": 6
         }
       }
     ],
-    "chromeContext": false
+    "chromeContext": false,
+    "cssSelectors": ""
   },
   "type": "pageError",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`TypeError longString message`, {
   "pageError": {
     "errorMessage": {
@@ -454,17 +461,18 @@ stubPackets.set(`TypeError longString me
         "filename": "resource://testing-common/content-task.js",
         "sourceId": null,
         "lineNumber": 60,
         "columnNumber": 29,
         "functionName": null
       }
     ],
     "notes": null,
-    "chromeContext": false
+    "chromeContext": false,
+    "cssSelectors": ""
   },
   "type": "pageError",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`throw ""`, {
   "pageError": {
     "errorMessage": "uncaught exception: ",
@@ -502,17 +510,18 @@ stubPackets.set(`throw ""`, {
         "filename": "resource://testing-common/content-task.js",
         "sourceId": null,
         "lineNumber": 60,
         "columnNumber": 29,
         "functionName": null
       }
     ],
     "notes": null,
-    "chromeContext": false
+    "chromeContext": false,
+    "cssSelectors": ""
   },
   "type": "pageError",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`throw "tomato"`, {
   "pageError": {
     "errorMessage": "uncaught exception: tomato",
@@ -550,17 +559,18 @@ stubPackets.set(`throw "tomato"`, {
         "filename": "resource://testing-common/content-task.js",
         "sourceId": null,
         "lineNumber": 60,
         "columnNumber": 29,
         "functionName": null
       }
     ],
     "notes": null,
-    "chromeContext": false
+    "chromeContext": false,
+    "cssSelectors": ""
   },
   "type": "pageError",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 module.exports = {
   stubPreparedMessages,
   stubPackets,