Backed out 4 changesets (bug 1524276) for mochitest-devtools at devtools/client/webconsole/test/fixtures/stub-generators/browser_webconsole_check_stubs_console_api.js. On a CLOSED TREE
authorDaniel Varga <dvarga@mozilla.com>
Fri, 29 Mar 2019 17:48:19 +0200
changeset 466781 7f9e2ce2bf14b4be1ab91cc0f72159ed5f3c7328
parent 466780 f82c2e5a18880a8f61e9d87e0e1da90eacbf89a3
child 466782 e711067609323aaed6ebfb0286cb14be35bd5859
push id35780
push useropoprus@mozilla.com
push dateFri, 29 Mar 2019 21:53:01 +0000
treeherdermozilla-central@414f37afbe07 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1524276
milestone68.0a1
backs out78fb95dc20e388a616adf8ec31c9dd652a0c8b55
30570673a8948f7e868ea3f3620c395f55365705
9476f9253c9c171eb62291caff3e203ef9abce42
6f1c417146beb1a143d87cbb95b69a723853048b
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
Backed out 4 changesets (bug 1524276) for mochitest-devtools at devtools/client/webconsole/test/fixtures/stub-generators/browser_webconsole_check_stubs_console_api.js. On a CLOSED TREE Backed out changeset 78fb95dc20e3 (bug 1524276) Backed out changeset 30570673a894 (bug 1524276) Backed out changeset 9476f9253c9c (bug 1524276) Backed out changeset 6f1c417146be (bug 1524276)
devtools/client/locales/en-US/webconsole.properties
devtools/client/themes/webconsole.css
devtools/client/webconsole/components/ConsoleOutput.js
devtools/client/webconsole/components/Message.js
devtools/client/webconsole/components/MessageContainer.js
devtools/client/webconsole/components/MessageIndent.js
devtools/client/webconsole/components/message-types/PageError.js
devtools/client/webconsole/components/message-types/WarningGroup.js
devtools/client/webconsole/components/message-types/moz.build
devtools/client/webconsole/constants.js
devtools/client/webconsole/reducers/messages.js
devtools/client/webconsole/reducers/prefs.js
devtools/client/webconsole/selectors/messages.js
devtools/client/webconsole/store.js
devtools/client/webconsole/test/components/warning-group.test.js
devtools/client/webconsole/test/fixtures/L10n.js
devtools/client/webconsole/test/fixtures/stub-generators/head.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
devtools/client/webconsole/test/mocha-test-setup.js
devtools/client/webconsole/test/mochitest/browser.ini
devtools/client/webconsole/test/mochitest/browser_webconsole_trackingprotection_errors.js
devtools/client/webconsole/test/mochitest/browser_webconsole_warning_group_content_blocking.js
devtools/client/webconsole/test/mochitest/browser_webconsole_warning_groups.js
devtools/client/webconsole/test/mochitest/head.js
devtools/client/webconsole/test/mochitest/test-warning-groups.html
devtools/client/webconsole/types.js
devtools/client/webconsole/utils/messages.js
devtools/server/actors/webconsole.js
--- a/devtools/client/locales/en-US/webconsole.properties
+++ b/devtools/client/locales/en-US/webconsole.properties
@@ -339,13 +339,8 @@ webconsole.reverseSearch.result.nextButt
 # would return "Invoke getter y to retrieve the property list?".
 # Parameters: %S is the name of the getter.
 webconsole.confirmDialog.getter.label=Invoke getter %S to retrieve the property list?
 
 # LOCALIZATION NOTE (webconsole.confirmDialog.getter.invokeButtonLabel)
 # Label used for the confirm button in the "invoke getter" dialog that appears in the
 # console when a user tries to autocomplete a property with a getter.
 webconsole.confirmDialog.getter.invokeButtonLabel=Invoke
-
-# LOCALIZATION NOTE (webconsole.group.contentBlocked)
-# Label used as the group header in the console output when content blocking is enabled
-# and that we have several warning messages about resources being blocked.
-webconsole.group.contentBlocked=Content blocked messages
--- a/devtools/client/themes/webconsole.css
+++ b/devtools/client/themes/webconsole.css
@@ -155,20 +155,16 @@ a {
 
 .message > .indent {
   flex: none;
   display: inline-block;
   margin-inline-start: 12px;
   border-inline-end: solid 1px var(--console-output-indent-border-color);
 }
 
-.message > .indent.warning-indent {
-  border-inline-end-color: var(--warning-color);
-}
-
 .message > .indent[data-indent="0"] {
   display: none;
 }
 
 /* Center first level indent within the left gutter */
 .message:not(.startGroup):not(.startGroupCollapsed) > .indent[data-indent="1"] {
   margin-inline-start: calc(1px + var(--console-icon-horizontal-offset));
   margin-inline-end: calc(11px - var(--console-icon-horizontal-offset));
@@ -248,44 +244,33 @@ a {
   margin: var(--console-output-vertical-padding) 0;
 }
 
 .message-body-wrapper .table-widget-body {
   overflow: visible;
 }
 
 /* The bubble that shows the number of times a message is repeated */
-.message-repeats,
-.warning-group-badge {
+.message-repeats {
   flex-shrink: 0;
   margin: 2px 5px 0 5px;
   padding: 0 6px;
   height: 1.25em;
+  color: white;
+  background-color: var(--repeat-bubble-background-color);
   border-radius: 40px;
   font: message-box;
   font-size: 0.8em;
   font-weight: normal;
 }
 
-.message-repeats {
-  display: inline-block;
-  color: white;
-  background-color: var(--repeat-bubble-background-color);
-}
-
 .message-repeats[value="1"] {
   display: none;
 }
 
-.warning-group-badge {
-  display: inline-block;
-  color: var(--warning-background-color);
-  background-color: var(--warning-color);
-}
-
 .message-location {
   max-width: 40vw;
   flex-shrink: 0;
   color: var(--frame-link-source);
   margin-left: 1ch;
   /* Makes the file name truncated (and ellipsis shown) on the left side */
   direction: rtl;
   white-space: nowrap;
--- a/devtools/client/webconsole/components/ConsoleOutput.js
+++ b/devtools/client/webconsole/components/ConsoleOutput.js
@@ -11,18 +11,16 @@ const {initialize} = require("devtools/c
 const {
   getAllMessagesById,
   getAllMessagesUiById,
   getAllMessagesTableDataById,
   getAllNetworkMessagesUpdateById,
   getVisibleMessages,
   getPausedExecutionPoint,
   getAllRepeatById,
-  getAllWarningGroupsById,
-  isMessageInWarningGroup,
 } = require("devtools/client/webconsole/selectors/messages");
 
 loader.lazyRequireGetter(this, "PropTypes", "devtools/client/shared/vendor/react-prop-types");
 loader.lazyRequireGetter(this, "sortBy", "devtools/client/shared/vendor/lodash", true);
 loader.lazyRequireGetter(this, "MessageContainer", "devtools/client/webconsole/components/MessageContainer", true);
 
 const {
   MESSAGE_TYPE,
@@ -55,18 +53,16 @@ class ConsoleOutput extends Component {
         attachRefToWebConsoleUI: PropTypes.func.isRequired,
         openContextMenu: PropTypes.func.isRequired,
         sourceMapService: PropTypes.object,
       }),
       dispatch: PropTypes.func.isRequired,
       timestampsVisible: PropTypes.bool,
       messagesTableData: PropTypes.object.isRequired,
       messagesRepeat: PropTypes.object.isRequired,
-      warningGroups: PropTypes.object.isRequired,
-      isInWarningGroup: PropTypes.isRequired,
       networkMessagesUpdate: PropTypes.object.isRequired,
       visibleMessages: PropTypes.array.isRequired,
       networkMessageActiveTabId: PropTypes.string.isRequired,
       onFirstMeaningfulPaint: PropTypes.func.isRequired,
       pausedExecutionPoint: PropTypes.any,
     };
   }
 
@@ -170,18 +166,16 @@ class ConsoleOutput extends Component {
   render() {
     let {
       dispatch,
       visibleMessages,
       messages,
       messagesUi,
       messagesTableData,
       messagesRepeat,
-      warningGroups,
-      isInWarningGroup,
       networkMessagesUpdate,
       networkMessageActiveTabId,
       serviceContainer,
       timestampsVisible,
       initialized,
       pausedExecutionPoint,
     } = this.props;
 
@@ -201,20 +195,16 @@ class ConsoleOutput extends Component {
         dispatch,
         key: messageId,
         messageId,
         serviceContainer,
         open: messagesUi.includes(messageId),
         tableData: messagesTableData.get(messageId),
         timestampsVisible,
         repeat: messagesRepeat[messageId],
-        badge: warningGroups.has(messageId) ? warningGroups.get(messageId).length : null,
-        inWarningGroup: isInWarningGroup
-          ? isInWarningGroup(messages.get(messageId))
-          : false,
         networkMessageUpdate: networkMessagesUpdate[messageId],
         networkMessageActiveTabId,
         pausedExecutionPoint,
         getMessage: () => messages.get(messageId),
         isPaused: !!pausedMessage && pausedMessage.id == messageId,
         maybeScrollToBottom: this.maybeScrollToBottom,
       }));
 
@@ -249,19 +239,15 @@ function mapStateToProps(state, props) {
   return {
     initialized: state.ui.initialized,
     pausedExecutionPoint: getPausedExecutionPoint(state),
     messages: getAllMessagesById(state),
     visibleMessages: getVisibleMessages(state),
     messagesUi: getAllMessagesUiById(state),
     messagesTableData: getAllMessagesTableDataById(state),
     messagesRepeat: getAllRepeatById(state),
-    warningGroups: getAllWarningGroupsById(state),
-    isInWarningGroup: state.prefs.groupWarnings
-      ? message => isMessageInWarningGroup(state, message)
-      : null,
     networkMessagesUpdate: getAllNetworkMessagesUpdateById(state),
     timestampsVisible: state.ui.timestampsVisible,
     networkMessageActiveTabId: state.ui.networkMessageActiveTabId,
   };
 }
 
 module.exports = connect(mapStateToProps)(ConsoleOutput);
--- a/devtools/client/webconsole/components/Message.js
+++ b/devtools/client/webconsole/components/Message.js
@@ -26,17 +26,16 @@ class Message extends Component {
     return {
       open: PropTypes.bool,
       collapsible: PropTypes.bool,
       collapseTitle: PropTypes.string,
       source: PropTypes.string.isRequired,
       type: PropTypes.string.isRequired,
       level: PropTypes.string.isRequired,
       indent: PropTypes.number.isRequired,
-      inWarningGroup: PropTypes.bool,
       topLevelClasses: PropTypes.array.isRequired,
       messageBody: PropTypes.any.isRequired,
       repeat: PropTypes.any,
       frame: PropTypes.any,
       attachment: PropTypes.any,
       stacktrace: PropTypes.any,
       messageId: PropTypes.string,
       executionPoint: PropTypes.shape({
@@ -127,27 +126,17 @@ class Message extends Component {
   onMouseEvent(ev) {
     const {messageId, serviceContainer, executionPoint} = this.props;
     if (serviceContainer.canRewind() && executionPoint) {
       serviceContainer.onMessageHover(ev.type, messageId);
     }
   }
 
   renderIcon() {
-    const {
-      level,
-      messageId,
-      executionPoint,
-      serviceContainer,
-      inWarningGroup,
-    } = this.props;
-
-    if (inWarningGroup) {
-      return undefined;
-    }
+    const { level, messageId, executionPoint, serviceContainer } = this.props;
 
     return MessageIcon({
       level,
       onRewindClick: (serviceContainer.canRewind() && executionPoint)
         ? () => serviceContainer.jumpToExecutionPoint(executionPoint, messageId)
         : null,
     });
   }
@@ -157,17 +146,16 @@ class Message extends Component {
       open,
       collapsible,
       collapseTitle,
       source,
       type,
       isPaused,
       level,
       indent,
-      inWarningGroup,
       topLevelClasses,
       messageBody,
       frame,
       stacktrace,
       serviceContainer,
       exceptionDocURL,
       timeStamp = Date.now(),
       timestampsVisible,
@@ -308,32 +296,29 @@ class Message extends Component {
       ...mouseEvents,
       ref: node => {
         this.messageNode = node;
       },
       "data-message-id": messageId,
       "aria-live": type === MESSAGE_TYPE.COMMAND ? "off" : "polite",
     },
       timestampEl,
-      MessageIndent({
-        indent,
-        inWarningGroup,
-      }),
+      MessageIndent({indent}),
       icon,
       collapse,
       dom.span({ className: "message-body-wrapper" },
         dom.span({
           className: "message-flex-body",
           onClick: collapsible ? this.toggleMessage : undefined,
         },
           // Add whitespaces for formatting when copying to the clipboard.
           timestampEl ? " " : null,
           dom.span({ className: "message-body devtools-monospace" },
             ...bodyElements,
-            learnMore,
+            learnMore
           ),
           repeat ? " " : null,
           repeat,
           " ", location
         ),
         attachment,
         ...notesNodes
       ),
--- a/devtools/client/webconsole/components/MessageContainer.js
+++ b/devtools/client/webconsole/components/MessageContainer.js
@@ -4,44 +4,40 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
 // React & Redux
 const { Component } = require("devtools/client/shared/vendor/react");
 loader.lazyRequireGetter(this, "PropTypes", "devtools/client/shared/vendor/react-prop-types");
-loader.lazyRequireGetter(this, "isWarningGroup", "devtools/client/webconsole/utils/messages", true);
 
 const {
   MESSAGE_SOURCE,
   MESSAGE_TYPE,
 } = require("devtools/client/webconsole/constants");
 
 const componentMap = new Map([
   ["ConsoleApiCall", require("./message-types/ConsoleApiCall")],
   ["ConsoleCommand", require("./message-types/ConsoleCommand")],
   ["DefaultRenderer", require("./message-types/DefaultRenderer")],
   ["EvaluationResult", require("./message-types/EvaluationResult")],
   ["NetworkEventMessage", require("./message-types/NetworkEventMessage")],
   ["PageError", require("./message-types/PageError")],
-  ["WarningGroup", require("./message-types/WarningGroup")],
 ]);
 
 class MessageContainer extends Component {
   static get propTypes() {
     return {
       messageId: PropTypes.string.isRequired,
       open: PropTypes.bool.isRequired,
       serviceContainer: PropTypes.object.isRequired,
       tableData: PropTypes.object,
       timestampsVisible: PropTypes.bool.isRequired,
       repeat: PropTypes.number,
-      badge: PropTypes.number,
-      indent: PropTypes.number,
       networkMessageUpdate: PropTypes.object,
       getMessage: PropTypes.func.isRequired,
       isPaused: PropTypes.bool.isRequired,
       pausedExecutionPoint: PropTypes.any,
     };
   }
 
   static get defaultProps() {
@@ -56,20 +52,18 @@ class MessageContainer extends Component
     const tableDataChanged = this.props.tableData !== nextProps.tableData;
     const timestampVisibleChanged =
       this.props.timestampsVisible !== nextProps.timestampsVisible;
     const networkMessageUpdateChanged =
       this.props.networkMessageUpdate !== nextProps.networkMessageUpdate;
     const pausedChanged = this.props.isPaused !== nextProps.isPaused;
     const executionPointChanged =
       this.props.pausedExecutionPoint !== nextProps.pausedExecutionPoint;
-    const badgeChanged = this.props.badge !== nextProps.badge;
 
     return repeatChanged
-      || badgeChanged
       || openChanged
       || tableDataChanged
       || timestampVisibleChanged
       || networkMessageUpdateChanged
       || pausedChanged
       || executionPointChanged;
   }
 
@@ -102,21 +96,16 @@ function getMessageComponent(message) {
         // Chrome doesn't distinguish between page errors and log messages. We
         // may want to remove the PageError component and just handle errors
         // with ConsoleApiCall.
         case MESSAGE_TYPE.LOG:
           return componentMap.get("PageError");
         default:
           return componentMap.get("DefaultRenderer");
       }
-    case MESSAGE_SOURCE.CONSOLE_FRONTEND:
-      if (isWarningGroup(message)) {
-        return componentMap.get("WarningGroup");
-      }
-      break;
   }
 
   return componentMap.get("DefaultRenderer");
 }
 
 module.exports.MessageContainer = MessageContainer;
 
 // Exported so we can test it with unit tests.
--- a/devtools/client/webconsole/components/MessageIndent.js
+++ b/devtools/client/webconsole/components/MessageIndent.js
@@ -5,36 +5,31 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
 const dom = require("devtools/client/shared/vendor/react-dom-factories");
 
 const INDENT_WIDTH = 12;
 
-// Store common indents so they can be used without recreating the element during render.
+// Store common indents so they can be used without recreating the element
+// during render.
 const CONSTANT_INDENTS = [getIndentElement(0), getIndentElement(1)];
-const IN_WARNING_GROUP_INDENT = getIndentElement(1, "warning-indent");
 
-function getIndentElement(indent, className) {
+function getIndentElement(indent) {
   return dom.span({
     "data-indent": indent,
-    className: `indent${className ? " " + className : ""}`,
+    className: "indent",
     style: {
       "width": indent * INDENT_WIDTH,
     },
   });
 }
 
 function MessageIndent(props) {
-  const { indent, inWarningGroup } = props;
-
-  if (inWarningGroup) {
-    return IN_WARNING_GROUP_INDENT;
-  }
-
+  const { indent } = props;
   return CONSTANT_INDENTS[indent] || getIndentElement(indent);
 }
 
 module.exports.MessageIndent = MessageIndent;
 
 // Exported so we can test it with unit tests.
 module.exports.INDENT_WIDTH = INDENT_WIDTH;
--- a/devtools/client/webconsole/components/message-types/PageError.js
+++ b/devtools/client/webconsole/components/message-types/PageError.js
@@ -14,38 +14,37 @@ const Message = createFactory(require("d
 PageError.displayName = "PageError";
 
 PageError.propTypes = {
   message: PropTypes.object.isRequired,
   open: PropTypes.bool,
   timestampsVisible: PropTypes.bool.isRequired,
   serviceContainer: PropTypes.object,
   maybeScrollToBottom: PropTypes.func,
-  inWarningGroup: PropTypes.bool.isRequired,
 };
 
 PageError.defaultProps = {
   open: false,
 };
 
 function PageError(props) {
   const {
     dispatch,
     message,
     open,
     repeat,
     serviceContainer,
     timestampsVisible,
     isPaused,
     maybeScrollToBottom,
-    inWarningGroup,
   } = props;
   const {
     id: messageId,
     executionPoint,
+    indent,
     source,
     type,
     level,
     messageText,
     stacktrace,
     frame,
     exceptionDocURL,
     timeStamp,
@@ -65,18 +64,17 @@ function PageError(props) {
     executionPoint,
     isPaused,
     open,
     collapsible: Array.isArray(stacktrace),
     source,
     type,
     level,
     topLevelClasses: [],
-    indent: message.indent,
-    inWarningGroup,
+    indent,
     messageBody,
     repeat,
     frame,
     stacktrace,
     serviceContainer,
     exceptionDocURL,
     timeStamp,
     notes,
deleted file mode 100644
--- a/devtools/client/webconsole/components/message-types/WarningGroup.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-// React & Redux
-const { createFactory } = require("devtools/client/shared/vendor/react");
-const dom = require("devtools/client/shared/vendor/react-dom-factories");
-
-const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
-const Message = createFactory(require("devtools/client/webconsole/components/Message"));
-
-WarningGroup.displayName = "WarningGroup";
-
-WarningGroup.propTypes = {
-  dispatch: PropTypes.func.isRequired,
-  message: PropTypes.object.isRequired,
-  timestampsVisible: PropTypes.bool.isRequired,
-  serviceContainer: PropTypes.object,
-  badge: PropTypes.number.isRequired,
-};
-
-function WarningGroup(props) {
-  const {
-    dispatch,
-    message,
-    serviceContainer,
-    timestampsVisible,
-    badge,
-    open,
-  } = props;
-
-  const {
-    source,
-    type,
-    level,
-    id: messageId,
-    indent,
-    timeStamp,
-  } = message;
-
-  const messageBody = [
-    message.messageText,
-    " ",
-    dom.span({
-      className: "warning-group-badge",
-      title: `${badge} messages`,
-    }, badge),
-  ];
-  const topLevelClasses = ["cm-s-mozilla"];
-
-  return Message({
-    badge,
-    collapsible: true,
-    dispatch,
-    indent,
-    level,
-    messageBody,
-    messageId,
-    open,
-    serviceContainer,
-    source,
-    timeStamp,
-    timestampsVisible,
-    topLevelClasses,
-    type,
-  });
-}
-
-module.exports = WarningGroup;
--- a/devtools/client/webconsole/components/message-types/moz.build
+++ b/devtools/client/webconsole/components/message-types/moz.build
@@ -5,10 +5,9 @@
 
 DevToolsModules(
     'ConsoleApiCall.js',
     'ConsoleCommand.js',
     'DefaultRenderer.js',
     'EvaluationResult.js',
     'NetworkEventMessage.js',
     'PageError.js',
-    'WarningGroup.js',
 )
--- a/devtools/client/webconsole/constants.js
+++ b/devtools/client/webconsole/constants.js
@@ -68,17 +68,16 @@ const prefs = {
       // Is editor mode enabled.
       EDITOR: "devtools.webconsole.input.editor",
     },
     FEATURES: {
       // We use the same pref to enable the sidebar on webconsole and browser console.
       SIDEBAR_TOGGLE: "devtools.webconsole.sidebarToggle",
       JSTERM_CODE_MIRROR: "devtools.webconsole.jsterm.codeMirror",
       AUTOCOMPLETE: "devtools.webconsole.input.autocomplete",
-      GROUP_WARNINGS: "devtools.webconsole.groupWarningMessages",
     },
   },
 };
 
 const FILTERS = {
   CSS: "css",
   DEBUG: "debug",
   ERROR: "error",
@@ -107,38 +106,32 @@ const DEFAULT_FILTERS = Object.keys(DEFA
 
 const chromeRDPEnums = {
   MESSAGE_SOURCE: {
     XML: "xml",
     CSS: "css",
     JAVASCRIPT: "javascript",
     NETWORK: "network",
     CONSOLE_API: "console-api",
-    // Messages emitted by the console frontend itself (i.e. similar messages grouping
-    // header).
-    CONSOLE_FRONTEND: "console-frontend",
     STORAGE: "storage",
     APPCACHE: "appcache",
     RENDERING: "rendering",
     SECURITY: "security",
     OTHER: "other",
     DEPRECATION: "deprecation",
   },
   MESSAGE_TYPE: {
     LOG: "log",
     DIR: "dir",
     TABLE: "table",
     TRACE: "trace",
     CLEAR: "clear",
     START_GROUP: "startGroup",
     START_GROUP_COLLAPSED: "startGroupCollapsed",
     END_GROUP: "endGroup",
-    CONTENT_BLOCKING_GROUP: "contentBlockingWarningGroup",
-    CORS_GROUP: "CORSWarningGroup",
-    CSP_GROUP: "CSPWarningGroup",
     ASSERT: "assert",
     DEBUG: "debug",
     PROFILE: "profile",
     PROFILE_END: "profileEnd",
     // Undocumented in Chrome RDP, but is used for evaluation results.
     RESULT: "result",
     // Undocumented in Chrome RDP, but is used for input.
     COMMAND: "command",
--- a/devtools/client/webconsole/reducers/messages.js
+++ b/devtools/client/webconsole/reducers/messages.js
@@ -16,20 +16,16 @@ const {
   FILTERS,
   MESSAGE_TYPE,
   MESSAGE_SOURCE,
 } = constants;
 
 loader.lazyRequireGetter(this, "getGripPreviewItems", "devtools/client/shared/components/reps/reps", true);
 loader.lazyRequireGetter(this, "getUnicodeUrlPath", "devtools/client/shared/unicode-url", true);
 loader.lazyRequireGetter(this, "getSourceNames", "devtools/client/shared/source-utils", true);
-loader.lazyRequireGetter(this, "createWarningGroupMessage", "devtools/client/webconsole/utils/messages", true);
-loader.lazyRequireGetter(this, "isWarningGroup", "devtools/client/webconsole/utils/messages", true);
-loader.lazyRequireGetter(this, "getWarningGroupType", "devtools/client/webconsole/utils/messages", true);
-loader.lazyRequireGetter(this, "getParentWarningGroupMessageId", "devtools/client/webconsole/utils/messages", true);
 
 const {
   UPDATE_REQUEST,
 } = require("devtools/client/netmonitor/src/constants");
 
 const {
   processNetworkUpdates,
 } = require("devtools/client/netmonitor/src/utils/request-utils");
@@ -45,22 +41,19 @@ const MessageState = overrides => Object
   filteredMessagesCount: getDefaultFiltersCounter(),
   // List of the message ids which are opened.
   messagesUiById: [],
   // Map of the form {messageId : tableData}, which represent the data passed
   // as an argument in console.table calls.
   messagesTableDataById: new Map(),
   // Map of the form {groupMessageId : groupArray},
   // where groupArray is the list of of all the parent groups' ids of the groupMessageId.
-  // This handles console API groups.
   groupsById: new Map(),
-  // Message id of the current console API group (no corresponding console.groupEnd yet).
+  // Message id of the current group (no corresponding console.groupEnd yet).
   currentGroup: null,
-  // This group handles "warning groups" (Content Blocking, CORS, CSP, …)
-  warningGroupsById: new Map(),
   // Array of removed actors (i.e. actors logged in removed messages) we keep track of
   // in order to properly release them.
   // This array is not supposed to be consumed by any UI component.
   removedActors: [],
   // Map of the form {messageId : numberOfRepeat}
   repeatById: {},
   // Map of the form {messageId : networkInformation}
   // `networkInformation` holds request, response, totalTime, ...
@@ -80,30 +73,20 @@ function cloneState(state) {
     messagesTableDataById: new Map(state.messagesTableDataById),
     groupsById: new Map(state.groupsById),
     currentGroup: state.currentGroup,
     removedActors: [...state.removedActors],
     repeatById: {...state.repeatById},
     networkMessagesUpdateById: {...state.networkMessagesUpdateById},
     removedLogpointIds: new Set(state.removedLogpointIds),
     pausedExecutionPoint: state.pausedExecutionPoint,
-    warningGroupsById: new Map(state.warningGroupsById),
   };
 }
 
-/**
- * Add a console message to the state.
- *
- * @param {ConsoleMessage} newMessage: The message to add to the state.
- * @param {MessageState} state: The message state ( = managed by this reducer).
- * @param {FiltersState} filtersState: The filters state.
- * @param {PrefsState} prefsState: The preferences state.
- * @returns {MessageState} a new messages state.
- */
-function addMessage(newMessage, state, filtersState, prefsState) {
+function addMessage(state, filtersState, prefsState, newMessage) {
   const {
     messagesById,
     replayProgressMessages,
     groupsById,
     currentGroup,
     repeatById,
   } = state;
 
@@ -133,17 +116,17 @@ function addMessage(newMessage, state, f
 
   if (newMessage.type === constants.MESSAGE_TYPE.END_GROUP) {
     // Compute the new current group.
     state.currentGroup = getNewCurrentGroup(currentGroup, groupsById);
     return state;
   }
 
   if (newMessage.allowRepeating && messagesById.size > 0) {
-    const lastMessage = messagesById.get(getLastMessageId(state));
+    const lastMessage = [...messagesById.values()][messagesById.size - 1];
 
     if (
       lastMessage.repeatId === newMessage.repeatId
       && lastMessage.groupId === currentGroup
     ) {
       state.repeatById[lastMessage.id] = (repeatById[lastMessage.id] || 1) + 1;
       return state;
     }
@@ -151,102 +134,39 @@ function addMessage(newMessage, state, f
 
   // Add the new message with a reference to the parent group.
   const parentGroups = getParentGroups(currentGroup, groupsById);
   newMessage.groupId = currentGroup;
   newMessage.indent = parentGroups.length;
 
   ensureExecutionPoint(state, newMessage);
 
-  // Check if the current message could be placed in a Warning Group.
-  // This needs to be done before setting the new message in messagesById so we have a
-  // proper message.
-  const warningGroupType = getWarningGroupType(newMessage);
-
-  // If the preference for warning grouping is true, and the new message could be in a
-  // warning group.
-  if (prefsState.groupWarnings && warningGroupType !== null) {
-    const warningGroupMessageId = getParentWarningGroupMessageId(newMessage);
-
-    // If there's no warning group for the type/innerWindowID yet
-    if (!state.messagesById.has(warningGroupMessageId)) {
-      // We create it and add it to the store.
-      const groupMessage = createWarningGroupMessage(
-        warningGroupMessageId, warningGroupType, newMessage);
-      state = addMessage(groupMessage, state, filtersState, prefsState);
-      state.warningGroupsById.set(warningGroupMessageId, []);
-    }
-
-    // We add the new message to the appropriate warningGroup.
-    state.warningGroupsById.get(warningGroupMessageId).push(newMessage.id);
-
-    // If the warningGroup message is not visible yet, but should be.
-    if (!state.visibleMessages.includes(warningGroupMessageId)
-      && getMessageVisibility(state.messagesById.get(warningGroupMessageId), {
-        messagesState: state,
-        filtersState,
-        prefsState,
-      }).visible
-    ) {
-      // Then we put it in the visibleMessages properties, at the position of the first
-      // warning message inside the warningGroup.
-      // TODO [Bug 1534927]: It should be added before the outermost console.group message
-      // a warning message could be in.
-      const index = state
-        .visibleMessages
-        .indexOf(state.warningGroupsById.get(warningGroupMessageId)[0]);
-      state.visibleMessages.splice(index, 1, warningGroupMessageId);
-    }
-  }
-
   const addedMessage = Object.freeze(newMessage);
   state.messagesById.set(newMessage.id, addedMessage);
 
   if (newMessage.type === "trace") {
     // We want the stacktrace to be open by default.
     state.messagesUiById.push(newMessage.id);
   } else if (isGroupType(newMessage.type)) {
     state.currentGroup = newMessage.id;
     state.groupsById.set(newMessage.id, parentGroups);
 
     if (newMessage.type === constants.MESSAGE_TYPE.START_GROUP) {
       // We want the group to be open by default.
       state.messagesUiById.push(newMessage.id);
     }
   }
 
-  const { visible, cause } = getMessageVisibility(addedMessage, {
-    messagesState: state,
-    filtersState,
-    prefsState,
-  });
+  const {
+    visible,
+    cause,
+  } = getMessageVisibility(addedMessage, state, filtersState);
 
   if (visible) {
-    // If the message is part of a visible warning group, we want to add it after the last
-    // visible message of the group.
-    const warningGroupId = getParentWarningGroupMessageId(newMessage);
-    if (warningGroupId && state.visibleMessages.includes(warningGroupId)) {
-      // Defaults to the warning group message.
-      let index = state.visibleMessages.indexOf(warningGroupId);
-
-      // We loop backward through the warning group's messages to get the latest visible
-      // messages in it.
-      const messagesInWarningGroup = state.warningGroupsById.get(warningGroupId);
-      for (let i = messagesInWarningGroup.length - 1; i >= 0; i--) {
-        const idx = state.visibleMessages.indexOf(messagesInWarningGroup[i]);
-        if (idx > -1) {
-          index = idx;
-          break;
-        }
-      }
-      // Inserts the new warning message at the wanted location "in" the warning group.
-      state.visibleMessages.splice(index + 1, 0, newMessage.id);
-    } else {
-      state.visibleMessages.push(newMessage.id);
-    }
+    state.visibleMessages.push(newMessage.id);
     maybeSortVisibleMessages(state);
   } else if (DEFAULT_FILTERS.includes(cause)) {
     state.filteredMessagesCount.global++;
     state.filteredMessagesCount[cause]++;
   }
 
   // Append received network-data also into networkMessagesUpdateById
   // that is responsible for collecting (lazy loaded) HTTP payload data.
@@ -297,17 +217,17 @@ function messages(state = MessageState()
         } else {
           list.unshift(message);
         }
         lastMessageRepeatId = message.repeatId;
       }
 
       newState = cloneState(state);
       list.forEach(message => {
-        newState = addMessage(message, newState, filtersState, prefsState);
+        newState = addMessage(newState, filtersState, prefsState, message);
       });
 
       return limitTopLevelMessageCount(newState, logLimit);
 
     case constants.MESSAGES_CLEAR:
       return MessageState({
         // Store all actors from removed messages. This array is used by
         // `releaseActorsEnhancer` to release all of those backend actors.
@@ -353,37 +273,31 @@ function messages(state = MessageState()
       }, removedIds);
     }
 
     case constants.MESSAGE_OPEN:
       const openState = {...state};
       openState.messagesUiById = [...messagesUiById, action.id];
       const currMessage = messagesById.get(action.id);
 
-      // If the message is a console.group/groupCollapsed or a warning group.
-      if (isGroupType(currMessage.type) || isWarningGroup(currMessage)) {
+      // If the message is a group
+      if (isGroupType(currMessage.type)) {
         // We want to make its children visible
         const messagesToShow = [...messagesById].reduce((res, [id, message]) => {
           if (
             !visibleMessages.includes(message.id)
-            && (
-              (isWarningGroup(currMessage) && !!getWarningGroupType(message))
-              || (
-                isGroupType(currMessage.type)
-                && getParentGroups(message.groupId, groupsById).includes(action.id)
-              )
-            )
-            && getMessageVisibility(message, {
-              messagesState: openState,
+            && getParentGroups(message.groupId, groupsById).includes(action.id)
+            && getMessageVisibility(
+              message,
+              openState,
               filtersState,
-              prefsState,
-            // We want to check if the message is in an open group
-            // only if it is not a direct child of the group we're opening.
-              checkGroup: message.groupId !== action.id,
-            }).visible
+              // We want to check if the message is in an open group
+              // only if it is not a direct child of the group we're opening.
+              message.groupId !== action.id
+            ).visible
           ) {
             res.push(id);
           }
           return res;
         }, []);
 
         // We can then insert the messages ids right after the one of the group.
         const insertIndex = visibleMessages.indexOf(action.id) + 1;
@@ -415,21 +329,16 @@ function messages(state = MessageState()
 
       // If the message is a group
       if (isGroupType(messagesById.get(messageId).type)) {
         // Hide all its children
         closeState.visibleMessages = visibleMessages.filter(id =>
           getParentGroups(messagesById.get(id).groupId, groupsById)
             .includes(messageId) === false
         );
-      } else if (isWarningGroup(messagesById.get(messageId))) {
-        // If the message was a warningGroup, we hide all the messages in the group.
-        const groupMessages = closeState.warningGroupsById.get(messageId);
-        closeState.visibleMessages =
-          visibleMessages.filter(id => !groupMessages.includes(id));
       }
       return closeState;
 
     case constants.MESSAGE_TABLE_RECEIVE:
       const {id, data} = action;
 
       return {
         ...state,
@@ -473,22 +382,20 @@ function messages(state = MessageState()
     case constants.FILTER_TOGGLE:
     case constants.FILTER_TEXT_SET:
     case constants.FILTERS_CLEAR:
     case constants.DEFAULT_FILTERS_RESET:
       const messagesToShow = [];
       const filtered = getDefaultFiltersCounter();
 
       messagesById.forEach((message, msgId) => {
-        const { visible, cause } = getMessageVisibility(message, {
-          messagesState: state,
-          filtersState,
-          prefsState,
-        });
-
+        const {
+          visible,
+          cause,
+        } = getMessageVisibility(message, state, filtersState);
         if (visible) {
           messagesToShow.push(msgId);
         } else if (DEFAULT_FILTERS.includes(cause)) {
           filtered.global = filtered.global + 1;
           filtered[cause] = filtered[cause] + 1;
         }
       });
 
@@ -723,57 +630,28 @@ function getToplevelMessageCount(state) 
 /**
  * Check if a message should be visible in the console output, and if not, what
  * causes it to be hidden.
  *
  * @return {Object} An object of the following form:
  *         - visible {Boolean}: true if the message should be visible
  *         - cause {String}: if visible is false, what causes the message to be hidden.
  */
-function getMessageVisibility(message, {
-    messagesState,
-    filtersState,
-    prefsState,
-    checkGroup = true,
-}) {
+function getMessageVisibility(message, messagesState, filtersState, checkGroup = true) {
   // Do not display the message if it's in closed group.
   if (
     checkGroup
     && !isInOpenedGroup(message, messagesState.groupsById, messagesState.messagesUiById)
   ) {
     return {
       visible: false,
       cause: "closedGroup",
     };
   }
 
-  // If the message is a warningGroup, check if it should be displayed.
-  if (
-    isWarningGroup(message)
-    && !shouldGroupWarningMessages(message, messagesState, prefsState)
-  ) {
-    return {
-      visible: false,
-      cause: "warningGroupHeuristicNotMet",
-    };
-  }
-
-  // Do not display the the message if it can be in a warningGroup, and the group is
-  // displayed but collapsed.
-  const warningGroupMessageId = getParentWarningGroupMessageId(message);
-  if (
-    messagesState.visibleMessages.includes(warningGroupMessageId)
-    && !messagesState.messagesUiById.includes(warningGroupMessageId)
-  ) {
-    return {
-      visible: false,
-      cause: "closedWarningGroup",
-    };
-  }
-
   // Some messages can't be filtered out (e.g. groups).
   // So, always return visible: true for those.
   if (isUnfilterable(message)) {
     return {
       visible: true,
     };
   }
 
@@ -1166,34 +1044,12 @@ function maybeSortVisibleMessages(state)
       // have an execution point.
       const countA = messageCountSinceLastExecutionPoint(state, a);
       const countB = messageCountSinceLastExecutionPoint(state, b);
       return countA > countB;
     });
   }
 }
 
-function getLastMessageId(state) {
-  return Array.from(state.messagesById.keys())[state.messagesById.size - 1];
-}
-
-/**
- * Returns if a given type of warning message should be grouped.
- *
- * @param {ConsoleMessage} warningGroupMessage
- * @param {MessageState} messagesState
- * @param {PrefsState} prefsState
- */
-function shouldGroupWarningMessages(warningGroupMessage, messagesState, prefsState) {
-  // Only group if the preference is ON.
-  if (!prefsState.groupWarnings) {
-    return false;
-  }
-
-  // We group warning messages if there are at least 2 messages that could go in it.
-  const warningGroup = messagesState.warningGroupsById.get(warningGroupMessage.id);
-  return warningGroup && warningGroup.length > 1;
-}
-
 exports.messages = messages;
 
 // Export for testing purpose.
 exports.ensureExecutionPoint = ensureExecutionPoint;
--- a/devtools/client/webconsole/reducers/prefs.js
+++ b/devtools/client/webconsole/reducers/prefs.js
@@ -4,17 +4,16 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 "use strict";
 
 const PrefState = (overrides) => Object.freeze(Object.assign({
   logLimit: 1000,
   sidebarToggle: false,
   jstermCodeMirror: false,
-  groupWarnings: false,
   historyCount: 50,
 }, overrides));
 
 function prefs(state = PrefState(), action) {
   return state;
 }
 
 exports.PrefState = PrefState;
--- a/devtools/client/webconsole/selectors/messages.js
+++ b/devtools/client/webconsole/selectors/messages.js
@@ -1,18 +1,15 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set ft=javascript ts=2 et sw=2 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 "use strict";
 
-loader.lazyRequireGetter(this, "getWarningGroupType", "devtools/client/webconsole/utils/messages", true);
-loader.lazyRequireGetter(this, "getParentWarningGroupMessageId", "devtools/client/webconsole/utils/messages", true);
-
 function getAllMessagesById(state) {
   return state.messages.messagesById;
 }
 
 function getMessage(state, id) {
   return getAllMessagesById(state).get(id);
 }
 
@@ -51,36 +48,22 @@ function getAllNetworkMessagesUpdateById
 function getGroupsById(state) {
   return state.messages.groupsById;
 }
 
 function getPausedExecutionPoint(state) {
   return state.messages.pausedExecutionPoint;
 }
 
-function getAllWarningGroupsById(state) {
-  return state.messages.warningGroupsById;
-}
-
-function isMessageInWarningGroup(state, message) {
-  if (!getWarningGroupType(message)) {
-    return false;
-  }
-
-  return getVisibleMessages(state).includes(getParentWarningGroupMessageId(message));
-}
-
 module.exports = {
   getAllGroupsById,
-  getAllWarningGroupsById,
   getAllMessagesById,
   getAllMessagesTableDataById,
   getAllMessagesUiById,
   getAllNetworkMessagesUpdateById,
   getAllRepeatById,
   getCurrentGroup,
   getFilteredMessagesCount,
   getGroupsById,
   getMessage,
   getVisibleMessages,
   getPausedExecutionPoint,
-  isMessageInWarningGroup,
 };
--- a/devtools/client/webconsole/store.js
+++ b/devtools/client/webconsole/store.js
@@ -45,27 +45,25 @@ function configureStore(webConsoleUI, op
     getIntPref,
   } = prefsService;
 
   const logLimit = options.logLimit
     || Math.max(getIntPref("devtools.hud.loglimit"), 1);
   const sidebarToggle = getBoolPref(PREFS.FEATURES.SIDEBAR_TOGGLE);
   const jstermCodeMirror = getBoolPref(PREFS.FEATURES.JSTERM_CODE_MIRROR);
   const autocomplete = getBoolPref(PREFS.FEATURES.AUTOCOMPLETE);
-  const groupWarnings = getBoolPref(PREFS.FEATURES.GROUP_WARNINGS);
   const historyCount = getIntPref(PREFS.UI.INPUT_HISTORY_COUNT);
 
   const initialState = {
     prefs: PrefState({
       logLimit,
       sidebarToggle,
       jstermCodeMirror,
       autocomplete,
       historyCount,
-      groupWarnings,
     }),
     filters: FilterState({
       error: getBoolPref(PREFS.FILTER.ERROR),
       warn: getBoolPref(PREFS.FILTER.WARN),
       info: getBoolPref(PREFS.FILTER.INFO),
       debug: getBoolPref(PREFS.FILTER.DEBUG),
       log: getBoolPref(PREFS.FILTER.LOG),
       css: getBoolPref(PREFS.FILTER.CSS),
deleted file mode 100644
--- a/devtools/client/webconsole/test/components/warning-group.test.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/* 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 } = require("enzyme");
-
-// Components under test.
-const WarningGroup = require("devtools/client/webconsole/components/message-types/WarningGroup");
-const { MESSAGE_SOURCE, MESSAGE_TYPE } = require("devtools/client/webconsole/constants");
-const { ConsoleMessage } = require("devtools/client/webconsole/types");
-const { createWarningGroupMessage } = require("devtools/client/webconsole/utils/messages");
-
-// Test fakes.
-const { stubPreparedMessages } = require("devtools/client/webconsole/test/fixtures/stubs/index");
-const serviceContainer = require("devtools/client/webconsole/test/fixtures/serviceContainer");
-const mockMessage = ConsoleMessage({
-  messageText: "this is a warning group",
-  source: MESSAGE_SOURCE.CONSOLE_FRONTEND,
-  timeStamp: Date.now(),
-});
-
-describe("WarningGroup component:", () => {
-  it("renders", () => {
-    const wrapper = render(WarningGroup({
-      message: mockMessage,
-      serviceContainer,
-      timestampsVisible: true,
-      badge: 42,
-    }));
-
-    const { timestampString } = require("devtools/client/webconsole/webconsole-l10n");
-    expect(wrapper.find(".timestamp").text())
-      .toBe(timestampString(mockMessage.timeStamp));
-    expect(wrapper.find(".message-body").text()).toBe("this is a warning group 42");
-    expect(wrapper.find(".arrow[aria-expanded=false]")).toExist();
-  });
-
-  it("does have an expanded arrow when `open` prop is true", () => {
-    const wrapper = render(WarningGroup({
-      message: mockMessage,
-      serviceContainer,
-      open: true,
-    }));
-
-    expect(wrapper.find(".arrow[aria-expanded=true]")).toExist();
-  });
-
-  it("does not have a timestamp when timestampsVisible prop is falsy", () => {
-    const wrapper = render(WarningGroup({
-      message: mockMessage,
-      serviceContainer,
-      timestampsVisible: false,
-    }));
-
-    expect(wrapper.find(".timestamp").length).toBe(0);
-  });
-
-  it("renders Content Blocking Group message", () => {
-    const firstMessage = stubPreparedMessages.get("ReferenceError: asdf is not defined");
-    const type = MESSAGE_TYPE.CONTENT_BLOCKING_GROUP;
-    const message = createWarningGroupMessage(`${type}-${firstMessage.innerWindowID}`,
-      type, firstMessage);
-
-    const wrapper = render(WarningGroup({
-      message,
-      serviceContainer,
-      badge: 24,
-    }));
-
-    expect(wrapper.find(".message-body").text()).toBe("Content blocked messages 24");
-    expect(wrapper.find(".arrow[aria-expanded=false]")).toExist();
-  });
-});
--- a/devtools/client/webconsole/test/fixtures/L10n.js
+++ b/devtools/client/webconsole/test/fixtures/L10n.js
@@ -36,18 +36,16 @@ class L10n {
       case "webconsole.xhrFilterButton.label":
         return "XHR";
       case "webconsole.requestsFilterButton.label":
         return "Requests";
       case "messageRepeats.tooltip2":
         return "#1 repeat;#1 repeats";
       case "webconsole.filteredMessages.label":
         return "#1 item hidden by filters;#1 items hidden by filters";
-      case "webconsole.group.contentBlocked":
-        return "Content blocked messages";
       default:
         return str;
     }
   }
 
   getFormatStr(str) {
     return this.getStr(str);
   }
--- a/devtools/client/webconsole/test/fixtures/stub-generators/head.js
+++ b/devtools/client/webconsole/test/fixtures/stub-generators/head.js
@@ -57,20 +57,16 @@ function getCleanedPacket(key, packet) {
     if (res.timestamp) {
       res.timestamp = existingPacket.timestamp;
     }
 
     if (res.timeStamp) {
       res.timeStamp = existingPacket.timeStamp;
     }
 
-    if (res.innerWindowID) {
-      res.innerWindowID = existingPacket.innerWindowID;
-    }
-
     if (res.startedDateTime) {
       res.startedDateTime = existingPacket.startedDateTime;
     }
 
     if (res.actor) {
       res.actor = existingPacket.actor;
     }
 
@@ -170,19 +166,18 @@ function getCleanedPacket(key, packet) {
     if (res.eventActor) {
       // Clean actor ids, timeStamp and startedDateTime on network messages.
       res.eventActor.actor = existingPacket.eventActor.actor;
       res.eventActor.startedDateTime = existingPacket.eventActor.startedDateTime;
       res.eventActor.timeStamp = existingPacket.eventActor.timeStamp;
     }
 
     if (res.pageError) {
-      // Clean timeStamp and innerWindowID on pageError messages.
+      // Clean timeStamp on pageError messages.
       res.pageError.timeStamp = existingPacket.pageError.timeStamp;
-      res.pageError.innerWindowID = existingPacket.pageError.innerWindowID;
 
       if (
         typeof res.pageError.errorMessage === "object"
         && res.pageError.errorMessage.type === "longString"
       ) {
         res.pageError.errorMessage.actor = existingPacket.pageError.errorMessage.actor;
       }
 
--- a/devtools/client/webconsole/test/fixtures/stubs/consoleApi.js
+++ b/devtools/client/webconsole/test/fixtures/stubs/consoleApi.js
@@ -10,24 +10,22 @@
 
 const { ConsoleMessage } =
   require("devtools/client/webconsole/types");
 
 const stubPreparedMessages = new Map();
 const stubPackets = new Map();
 stubPreparedMessages.set(`console.log('foobar', 'test')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924471,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "foobar",
     "test"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"foobar\",\"test\"],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
@@ -43,24 +41,22 @@ stubPreparedMessages.set(`console.log('f
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log(undefined)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924479,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     {
       "type": "undefined"
     }
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"undefined\"}],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
@@ -77,24 +73,22 @@ stubPreparedMessages.set(`console.log(un
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.warn('danger, will robinson!')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924487,
   "type": "warn",
   "helperType": null,
   "level": "warn",
-  "category": null,
   "messageText": null,
   "parameters": [
     "danger, will robinson!"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"warn\",\"messageText\":null,\"parameters\":[\"danger, will robinson!\"],\"source\":\"console-api\",\"type\":\"warn\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -109,24 +103,22 @@ stubPreparedMessages.set(`console.warn('
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log(NaN)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924495,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     {
       "type": "NaN"
     }
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"NaN\"}],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
@@ -143,24 +135,22 @@ stubPreparedMessages.set(`console.log(Na
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log(null)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924501,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     {
       "type": "null"
     }
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[{\"type\":\"null\"}],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
@@ -177,24 +167,22 @@ stubPreparedMessages.set(`console.log(nu
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log('鼬')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924506,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "鼬"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"鼬\"],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -209,24 +197,22 @@ stubPreparedMessages.set(`console.log('鼬')`, new ConsoleMessage({
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.clear()`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924512,
   "type": "clear",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "Console was cleared."
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"Console was cleared.\"],\"source\":\"console-api\",\"type\":\"clear\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -241,24 +227,22 @@ stubPreparedMessages.set(`console.clear(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.count('bar')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924515,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": "bar: 1",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":\"bar: 1\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source25",
     "line": 1,
@@ -271,24 +255,22 @@ stubPreparedMessages.set(`console.count(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.assert(false, {message: 'foobar'})`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924521,
   "type": "assert",
   "helperType": null,
   "level": "error",
-  "category": null,
   "messageText": null,
   "parameters": [
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj30",
       "class": "Object",
       "extensible": true,
       "frozen": false,
@@ -334,24 +316,22 @@ stubPreparedMessages.set(`console.assert
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log('hello \nfrom \rthe \"string world!')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924528,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "hello \nfrom \rthe \"string world!"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"hello \\nfrom \\rthe \\\"string world!\"],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -366,24 +346,22 @@ stubPreparedMessages.set(`console.log('h
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log('úṇĩçödê țĕșť')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924586,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "úṇĩçödê țĕșť"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"úṇĩçödê țĕșť\"],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -398,24 +376,22 @@ stubPreparedMessages.set(`console.log('úṇĩçödê țĕșť')`, new ConsoleMessage({
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.dirxml(window)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924596,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj31",
       "class": "Window",
       "extensible": true,
       "frozen": false,
@@ -442,24 +418,22 @@ stubPreparedMessages.set(`console.dirxml
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log('myarray', ['red', 'green', 'blue'])`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924604,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "myarray",
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj32",
       "class": "Array",
       "extensible": true,
@@ -492,24 +466,22 @@ stubPreparedMessages.set(`console.log('m
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log('myregex', /a.b.c/)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924610,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "myregex",
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj33",
       "class": "RegExp",
       "extensible": true,
@@ -534,24 +506,22 @@ stubPreparedMessages.set(`console.log('m
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.table(['red', 'green', 'blue']);`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924612,
   "type": "table",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj34",
       "class": "Array",
       "extensible": true,
       "frozen": false,
@@ -583,24 +553,22 @@ stubPreparedMessages.set(`console.table(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log('myobject', {red: 'redValue', green: 'greenValue', blue: 'blueValue'});`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924614,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "myobject",
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj35",
       "class": "Object",
       "extensible": true,
@@ -651,24 +619,22 @@ stubPreparedMessages.set(`console.log('m
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.debug('debug message');`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924621,
   "type": "debug",
   "helperType": null,
   "level": "debug",
-  "category": null,
   "messageText": null,
   "parameters": [
     "debug message"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"debug\",\"messageText\":null,\"parameters\":[\"debug message\"],\"source\":\"console-api\",\"type\":\"debug\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -683,24 +649,22 @@ stubPreparedMessages.set(`console.debug(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.info('info message');`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924625,
   "type": "info",
   "helperType": null,
   "level": "info",
-  "category": null,
   "messageText": null,
   "parameters": [
     "info message"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"info\",\"messageText\":null,\"parameters\":[\"info message\"],\"source\":\"console-api\",\"type\":\"info\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -715,24 +679,22 @@ stubPreparedMessages.set(`console.info('
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.error('error message');`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924628,
   "type": "error",
   "helperType": null,
   "level": "error",
-  "category": null,
   "messageText": null,
   "parameters": [
     "error message"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"error\",\"messageText\":null,\"parameters\":[\"error message\"],\"source\":\"console-api\",\"type\":\"error\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":[{\"columnNumber\":35,\"filename\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"functionName\":\"triggerPacket\",\"lineNumber\":1,\"sourceId\":159}]}",
   "stacktrace": [
     {
       "columnNumber": 35,
@@ -755,24 +717,22 @@ stubPreparedMessages.set(`console.error(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log('mymap')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924631,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "mymap",
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj36",
       "class": "Map",
       "extensible": true,
@@ -810,24 +770,22 @@ stubPreparedMessages.set(`console.log('m
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log('myset')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924746,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "myset",
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj37",
       "class": "Set",
       "extensible": true,
@@ -859,24 +817,22 @@ stubPreparedMessages.set(`console.log('m
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.trace()`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924752,
   "type": "trace",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[],\"source\":\"console-api\",\"type\":\"trace\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":[{\"columnNumber\":11,\"filename\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"functionName\":\"testStacktraceFiltering\",\"lineNumber\":3,\"sourceId\":193},{\"columnNumber\":3,\"filename\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"functionName\":\"foo\",\"lineNumber\":6,\"sourceId\":193},{\"columnNumber\":1,\"filename\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"functionName\":\"triggerPacket\",\"lineNumber\":9,\"sourceId\":193}]}",
   "stacktrace": [
     {
       "columnNumber": 11,
       "filename": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
       "functionName": "testStacktraceFiltering",
@@ -911,24 +867,22 @@ stubPreparedMessages.set(`console.trace(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.trace('bar', {'foo': 'bar'}, [1,2,3])`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1538037986659,
   "type": "trace",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "bar",
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj35",
       "class": "Object",
       "extensible": true,
@@ -1007,24 +961,22 @@ stubPreparedMessages.set(`console.trace(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.time('bar')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924757,
   "type": "nullMessage",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"source\":\"console-api\",\"type\":\"nullMessage\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source52",
     "line": 2,
@@ -1037,24 +989,22 @@ stubPreparedMessages.set(`console.time('
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`timerAlreadyExists`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924758,
   "type": "time",
   "helperType": null,
   "level": "warn",
-  "category": null,
   "messageText": "Timer “bar” already exists.",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"warn\",\"messageText\":\"Timer “bar” already exists.\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"time\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 3,
@@ -1067,24 +1017,22 @@ stubPreparedMessages.set(`timerAlreadyEx
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.timeLog('bar') - 1`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1526920999996,
   "type": "timeLog",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "bar: 1ms"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"bar: 1ms\"],\"source\":\"console-api\",\"type\":\"timeLog\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -1099,24 +1047,22 @@ stubPreparedMessages.set(`console.timeLo
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.timeLog('bar') - 2`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1526920999996,
   "type": "timeLog",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "bar: 1ms",
     "second call",
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj34",
       "class": "Object",
@@ -1156,24 +1102,22 @@ stubPreparedMessages.set(`console.timeLo
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.timeEnd('bar')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924759,
   "type": "timeEnd",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": "bar: 1.21ms - timer ended",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":\"bar: 1.21ms - timer ended\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"timeEnd\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 6,
@@ -1186,24 +1130,22 @@ stubPreparedMessages.set(`console.timeEn
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`timeEnd.timerDoesntExist`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1526920999998,
   "type": "timeEnd",
   "helperType": null,
   "level": "warn",
-  "category": null,
   "messageText": "Timer “bar” doesn’t exist.",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"warn\",\"messageText\":\"Timer “bar” doesn’t exist.\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"timeEnd\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 7,
@@ -1216,24 +1158,22 @@ stubPreparedMessages.set(`timeEnd.timerD
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`timeLog.timerDoesntExist`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1526920999999,
   "type": "timeLog",
   "helperType": null,
   "level": "warn",
-  "category": null,
   "messageText": "Timer “bar” doesn’t exist.",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"warn\",\"messageText\":\"Timer “bar” doesn’t exist.\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"timeLog\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 8,
@@ -1246,24 +1186,22 @@ stubPreparedMessages.set(`timeLog.timerD
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.table('bar')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924801,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "bar"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"bar\"],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -1278,24 +1216,22 @@ stubPreparedMessages.set(`console.table(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.table(['a', 'b', 'c'])`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924859,
   "type": "table",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj39",
       "class": "Array",
       "extensible": true,
       "frozen": false,
@@ -1327,24 +1263,22 @@ stubPreparedMessages.set(`console.table(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.group('bar')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924863,
   "type": "startGroup",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "bar"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"bar\"],\"source\":\"console-api\",\"type\":\"startGroup\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -1359,24 +1293,22 @@ stubPreparedMessages.set(`console.group(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.groupEnd('bar')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924864,
   "type": "endGroup",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"source\":\"console-api\",\"type\":\"endGroup\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 3,
@@ -1389,24 +1321,22 @@ stubPreparedMessages.set(`console.groupE
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.groupCollapsed('foo')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924870,
   "type": "startGroupCollapsed",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "foo"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"foo\"],\"source\":\"console-api\",\"type\":\"startGroupCollapsed\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -1421,24 +1351,22 @@ stubPreparedMessages.set(`console.groupC
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.groupEnd('foo')`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924871,
   "type": "endGroup",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"source\":\"console-api\",\"type\":\"endGroup\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 3,
@@ -1451,24 +1379,22 @@ stubPreparedMessages.set(`console.groupE
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.group()`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924878,
   "type": "startGroup",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "<no group label>"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"<no group label>\"],\"source\":\"console-api\",\"type\":\"startGroup\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -1483,24 +1409,22 @@ stubPreparedMessages.set(`console.group(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.groupEnd()`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924879,
   "type": "endGroup",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"source\":\"console-api\",\"type\":\"endGroup\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 3,
@@ -1513,24 +1437,22 @@ stubPreparedMessages.set(`console.groupE
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log(%cfoobar)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924883,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "foo",
     "bar"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"foo\",\"bar\"],\"source\":\"console-api\",\"type\":\"log\",\"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')\"],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
@@ -1549,24 +1471,22 @@ stubPreparedMessages.set(`console.log(%c
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.log("%cHello%c|%cWorld")`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1518681614352,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "Hello",
     "|",
     "World"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"Hello\",\"|\",\"World\"],\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[\"color:red\",\"\",\"color: blue\"],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
@@ -1587,24 +1507,22 @@ stubPreparedMessages.set(`console.log("%
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.group(%cfoo%cbar)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924887,
   "type": "startGroup",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "foo",
     "bar"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"foo\",\"bar\"],\"source\":\"console-api\",\"type\":\"startGroup\",\"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')\"],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
@@ -1623,24 +1541,22 @@ stubPreparedMessages.set(`console.group(
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.groupEnd(%cfoo%cbar)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924887,
   "type": "endGroup",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"source\":\"console-api\",\"type\":\"endGroup\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 6,
@@ -1653,24 +1569,22 @@ stubPreparedMessages.set(`console.groupE
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.groupCollapsed(%cfoo%cbaz)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924892,
   "type": "startGroupCollapsed",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "foo",
     "baz"
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"foo\",\"baz\"],\"source\":\"console-api\",\"type\":\"startGroupCollapsed\",\"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')\"],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
@@ -1689,24 +1603,22 @@ stubPreparedMessages.set(`console.groupC
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.groupEnd(%cfoo%cbaz)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924893,
   "type": "endGroup",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":null,\"source\":\"console-api\",\"type\":\"endGroup\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source59",
     "line": 6,
@@ -1719,24 +1631,22 @@ stubPreparedMessages.set(`console.groupE
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.dir({C, M, Y, K})`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1502884924899,
   "type": "dir",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj36",
       "class": "Object",
       "extensible": true,
       "frozen": false,
@@ -1792,24 +1702,22 @@ stubPreparedMessages.set(`console.dir({C
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.count | default: 1`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1511365913333,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": "default: 1",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":\"default: 1\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 2,
@@ -1822,24 +1730,22 @@ stubPreparedMessages.set(`console.count 
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.count | default: 2`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1511365913334,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": "default: 2",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":\"default: 2\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 3,
@@ -1852,24 +1758,22 @@ stubPreparedMessages.set(`console.count 
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.count | test counter: 1`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1511365913334,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": "test counter: 1",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":\"test counter: 1\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 4,
@@ -1882,24 +1786,22 @@ stubPreparedMessages.set(`console.count 
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.count | test counter: 2`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1511365913334,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": "test counter: 2",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":\"test counter: 2\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 5,
@@ -1912,24 +1814,22 @@ stubPreparedMessages.set(`console.count 
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.count | default: 3`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1511365913334,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": "default: 3",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":\"default: 3\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 6,
@@ -1942,24 +1842,22 @@ stubPreparedMessages.set(`console.count 
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.count | clear`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1511365913334,
   "type": "clear",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": null,
   "parameters": [
     "Console was cleared."
   ],
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":null,\"parameters\":[\"Console was cleared.\"],\"source\":\"console-api\",\"type\":\"clear\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
@@ -1974,24 +1872,22 @@ stubPreparedMessages.set(`console.count 
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.count | default: 4`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1511365913335,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": "default: 4",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":\"default: 4\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 8,
@@ -2004,24 +1900,22 @@ stubPreparedMessages.set(`console.count 
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.count | test counter: 3`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1511365913335,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": "test counter: 3",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":\"test counter: 3\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 9,
@@ -2034,24 +1928,22 @@ stubPreparedMessages.set(`console.count 
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.countReset | test counter: 0`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1526920412190,
   "type": "log",
   "helperType": null,
   "level": "log",
-  "category": null,
   "messageText": "test counter: 0",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"log\",\"messageText\":\"test counter: 0\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 10,
@@ -2064,24 +1956,22 @@ stubPreparedMessages.set(`console.countR
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`console.countReset | counterDoesntExist`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "console-api",
   "timeStamp": 1526920412191,
   "type": "log",
   "helperType": null,
   "level": "warn",
-  "category": null,
   "messageText": "Counter “test counter” doesn’t exist.",
   "parameters": null,
   "repeatId": "{\"frame\":{\"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,\"indent\":0,\"level\":\"warn\",\"messageText\":\"Counter “test counter” doesn’t exist.\",\"parameters\":null,\"source\":\"console-api\",\"type\":\"log\",\"userProvidedStyles\":[],\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source73",
     "line": 11,
@@ -2113,18 +2003,17 @@ stubPackets.set(`console.log('foobar', '
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924471,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log(undefined)`, {
   "message": {
     "addonId": "",
@@ -2142,18 +2031,17 @@ stubPackets.set(`console.log(undefined)`
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924479,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.warn('danger, will robinson!')`, {
   "message": {
     "addonId": "",
@@ -2169,18 +2057,17 @@ stubPackets.set(`console.warn('danger, w
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924487,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log(NaN)`, {
   "message": {
     "addonId": "",
@@ -2198,18 +2085,17 @@ stubPackets.set(`console.log(NaN)`, {
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924495,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log(null)`, {
   "message": {
     "addonId": "",
@@ -2227,18 +2113,17 @@ stubPackets.set(`console.log(null)`, {
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924501,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log('鼬')`, {
   "message": {
     "addonId": "",
@@ -2254,18 +2139,17 @@ stubPackets.set(`console.log('鼬')`, {
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924506,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.clear()`, {
   "message": {
     "addonId": "",
@@ -2279,18 +2163,17 @@ stubPackets.set(`console.clear()`, {
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "timeStamp": 1502884924512,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.count('bar')`, {
   "message": {
     "addonId": "",
@@ -2309,18 +2192,17 @@ stubPackets.set(`console.count('bar')`, 
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "timeStamp": 1502884924515,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.assert(false, {message: 'foobar'})`, {
   "message": {
     "addonId": "",
@@ -2368,18 +2250,17 @@ stubPackets.set(`console.assert(false, {
         "columnNumber": 35,
         "filename": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
         "functionName": "triggerPacket",
         "lineNumber": 1,
         "sourceId": 159
       }
     ],
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log('hello \nfrom \rthe \"string world!')`, {
   "message": {
     "addonId": "",
@@ -2395,18 +2276,17 @@ stubPackets.set(`console.log('hello \nfr
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924528,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log('úṇĩçödê țĕșť')`, {
   "message": {
     "addonId": "",
@@ -2422,18 +2302,17 @@ stubPackets.set(`console.log('úṇĩçödê țĕșť')`, {
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924586,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.dirxml(window)`, {
   "message": {
     "addonId": "",
@@ -2461,18 +2340,17 @@ stubPackets.set(`console.dirxml(window)`
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "timeStamp": 1502884924596,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log('myarray', ['red', 'green', 'blue'])`, {
   "message": {
     "addonId": "",
@@ -2506,18 +2384,17 @@ stubPackets.set(`console.log('myarray', 
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924604,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log('myregex', /a.b.c/)`, {
   "message": {
     "addonId": "",
@@ -2543,18 +2420,17 @@ stubPackets.set(`console.log('myregex', 
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924610,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.table(['red', 'green', 'blue']);`, {
   "message": {
     "addonId": "",
@@ -2587,18 +2463,17 @@ stubPackets.set(`console.table(['red', '
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "timeStamp": 1502884924612,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log('myobject', {red: 'redValue', green: 'greenValue', blue: 'blueValue'});`, {
   "message": {
     "addonId": "",
@@ -2650,18 +2525,17 @@ stubPackets.set(`console.log('myobject',
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924614,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.debug('debug message');`, {
   "message": {
     "addonId": "",
@@ -2677,18 +2551,17 @@ stubPackets.set(`console.debug('debug me
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924621,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.info('info message');`, {
   "message": {
     "addonId": "",
@@ -2704,18 +2577,17 @@ stubPackets.set(`console.info('info mess
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "styles": [],
     "timeStamp": 1502884924625,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.error('error message');`, {
   "message": {
     "addonId": "",
@@ -2740,18 +2612,17 @@ stubPackets.set(`console.error('error me
         "columnNumber": 35,
         "filename": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
         "functionName": "triggerPacket",
         "lineNumber": 1,
         "sourceId": 159
       }
     ],
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log('mymap')`, {
   "message": {
     "addonId": "",
@@ -2790,18 +2661,17 @@ stubPackets.set(`console.log('mymap')`, 
     "lineNumber": 5,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source50",
     "styles": [],
     "timeStamp": 1502884924631,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log('myset')`, {
   "message": {
     "addonId": "",
@@ -2834,18 +2704,17 @@ stubPackets.set(`console.log('myset')`, 
     "lineNumber": 2,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source52",
     "styles": [],
     "timeStamp": 1502884924746,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.trace()`, {
   "message": {
     "addonId": "",
@@ -2882,18 +2751,17 @@ stubPackets.set(`console.trace()`, {
         "filename": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
         "functionName": "triggerPacket",
         "lineNumber": 9,
         "sourceId": 193
       }
     ],
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.trace('bar', {'foo': 'bar'}, [1,2,3])`, {
   "message": {
     "addonId": "",
@@ -2974,18 +2842,17 @@ stubPackets.set(`console.trace('bar', {'
         "filename": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
         "functionName": "triggerPacket",
         "lineNumber": 9,
         "sourceId": 193
       }
     ],
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.time('bar')`, {
   "message": {
     "addonId": "",
@@ -3003,18 +2870,17 @@ stubPackets.set(`console.time('bar')`, {
     "private": false,
     "sourceId": "server1.conn0.child1/source52",
     "timeStamp": 1502884924757,
     "timer": {
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`timerAlreadyExists`, {
   "message": {
     "addonId": "",
@@ -3033,18 +2899,17 @@ stubPackets.set(`timerAlreadyExists`, {
     "sourceId": "server1.conn0.child1/source59",
     "timeStamp": 1502884924758,
     "timer": {
       "error": "timerAlreadyExists",
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.timeLog('bar') - 1`, {
   "message": {
     "addonId": "",
@@ -3063,18 +2928,17 @@ stubPackets.set(`console.timeLog('bar') 
     "sourceId": "server1.conn0.child1/source59",
     "timeStamp": 1526920999996,
     "timer": {
       "duration": 1,
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.timeLog('bar') - 2`, {
   "message": {
     "addonId": "",
@@ -3118,18 +2982,17 @@ stubPackets.set(`console.timeLog('bar') 
     "sourceId": "server1.conn0.child1/source50",
     "timeStamp": 1526920999996,
     "timer": {
       "duration": 1,
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.timeEnd('bar')`, {
   "message": {
     "addonId": "",
@@ -3148,18 +3011,17 @@ stubPackets.set(`console.timeEnd('bar')`
     "sourceId": "server1.conn0.child1/source59",
     "timeStamp": 1502884924759,
     "timer": {
       "duration": 1.2149999999999181,
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`timeEnd.timerDoesntExist`, {
   "message": {
     "addonId": "",
@@ -3178,18 +3040,17 @@ stubPackets.set(`timeEnd.timerDoesntExis
     "sourceId": "server1.conn0.child1/source59",
     "timeStamp": 1526920999998,
     "timer": {
       "error": "timerDoesntExist",
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`timeLog.timerDoesntExist`, {
   "message": {
     "addonId": "",
@@ -3208,18 +3069,17 @@ stubPackets.set(`timeLog.timerDoesntExis
     "sourceId": "server1.conn0.child1/source59",
     "timeStamp": 1526920999999,
     "timer": {
       "error": "timerDoesntExist",
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.table('bar')`, {
   "message": {
     "addonId": "",
@@ -3235,18 +3095,17 @@ stubPackets.set(`console.table('bar')`, 
     "lineNumber": 2,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source52",
     "timeStamp": 1502884924801,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.table(['a', 'b', 'c'])`, {
   "message": {
     "addonId": "",
@@ -3279,18 +3138,17 @@ stubPackets.set(`console.table(['a', 'b'
     "lineNumber": 2,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source52",
     "timeStamp": 1502884924859,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.group('bar')`, {
   "message": {
     "addonId": "",
@@ -3306,18 +3164,17 @@ stubPackets.set(`console.group('bar')`, 
     "lineNumber": 2,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source52",
     "styles": [],
     "timeStamp": 1502884924863,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.groupEnd('bar')`, {
   "message": {
     "addonId": "",
@@ -3331,18 +3188,17 @@ stubPackets.set(`console.groupEnd('bar')
     "lineNumber": 3,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source59",
     "timeStamp": 1502884924864,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.groupCollapsed('foo')`, {
   "message": {
     "addonId": "",
@@ -3358,18 +3214,17 @@ stubPackets.set(`console.groupCollapsed(
     "lineNumber": 2,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source52",
     "styles": [],
     "timeStamp": 1502884924870,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.groupEnd('foo')`, {
   "message": {
     "addonId": "",
@@ -3383,18 +3238,17 @@ stubPackets.set(`console.groupEnd('foo')
     "lineNumber": 3,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source59",
     "timeStamp": 1502884924871,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.group()`, {
   "message": {
     "addonId": "",
@@ -3408,18 +3262,17 @@ stubPackets.set(`console.group()`, {
     "lineNumber": 2,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source52",
     "styles": [],
     "timeStamp": 1502884924878,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.groupEnd()`, {
   "message": {
     "addonId": "",
@@ -3433,18 +3286,17 @@ stubPackets.set(`console.groupEnd()`, {
     "lineNumber": 3,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source59",
     "timeStamp": 1502884924879,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log(%cfoobar)`, {
   "message": {
     "addonId": "",
@@ -3464,18 +3316,17 @@ stubPackets.set(`console.log(%cfoobar)`,
     "sourceId": "server1.conn0.child1/source52",
     "styles": [
       "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')"
     ],
     "timeStamp": 1502884924883,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.log("%cHello%c|%cWorld")`, {
   "message": {
     "addonId": "",
@@ -3497,18 +3348,17 @@ stubPackets.set(`console.log("%cHello%c|
     "styles": [
       "color:red",
       "",
       "color: blue"
     ],
     "timeStamp": 1518681614352,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.group(%cfoo%cbar)`, {
   "message": {
     "addonId": "",
@@ -3528,18 +3378,17 @@ stubPackets.set(`console.group(%cfoo%cba
     "sourceId": "server1.conn0.child1/source52",
     "styles": [
       "color:blue;font-size:1.3em;background:url('http://example.com/test');position:absolute;top:10px",
       "color:red;background:url('http://example.com/test')"
     ],
     "timeStamp": 1502884924887,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.groupEnd(%cfoo%cbar)`, {
   "message": {
     "addonId": "",
@@ -3553,18 +3402,17 @@ stubPackets.set(`console.groupEnd(%cfoo%
     "lineNumber": 6,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source59",
     "timeStamp": 1502884924887,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.groupCollapsed(%cfoo%cbaz)`, {
   "message": {
     "addonId": "",
@@ -3584,18 +3432,17 @@ stubPackets.set(`console.groupCollapsed(
     "sourceId": "server1.conn0.child1/source52",
     "styles": [
       "color:blue;font-size:1.3em;background:url('http://example.com/test');position:absolute;top:10px",
       "color:red;background:url('http://example.com/test')"
     ],
     "timeStamp": 1502884924892,
     "timer": null,
     "workerType": "none",
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.groupEnd(%cfoo%cbaz)`, {
   "message": {
     "addonId": "",
@@ -3609,18 +3456,17 @@ stubPackets.set(`console.groupEnd(%cfoo%
     "lineNumber": 6,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source59",
     "timeStamp": 1502884924893,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.dir({C, M, Y, K})`, {
   "message": {
     "addonId": "",
@@ -3677,18 +3523,17 @@ stubPackets.set(`console.dir({C, M, Y, K
     "lineNumber": 1,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source25",
     "timeStamp": 1502884924899,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.count | default: 1`, {
   "message": {
     "addonId": "",
@@ -3707,18 +3552,17 @@ stubPackets.set(`console.count | default
     "lineNumber": 2,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source73",
     "timeStamp": 1511365913333,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.count | default: 2`, {
   "message": {
     "addonId": "",
@@ -3737,18 +3581,17 @@ stubPackets.set(`console.count | default
     "lineNumber": 3,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source73",
     "timeStamp": 1511365913334,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.count | test counter: 1`, {
   "message": {
     "addonId": "",
@@ -3767,18 +3610,17 @@ stubPackets.set(`console.count | test co
     "lineNumber": 4,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source73",
     "timeStamp": 1511365913334,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.count | test counter: 2`, {
   "message": {
     "addonId": "",
@@ -3797,18 +3639,17 @@ stubPackets.set(`console.count | test co
     "lineNumber": 5,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source73",
     "timeStamp": 1511365913334,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.count | default: 3`, {
   "message": {
     "addonId": "",
@@ -3827,18 +3668,17 @@ stubPackets.set(`console.count | default
     "lineNumber": 6,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source73",
     "timeStamp": 1511365913334,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.count | clear`, {
   "message": {
     "addonId": "",
@@ -3852,18 +3692,17 @@ stubPackets.set(`console.count | clear`,
     "lineNumber": 7,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source73",
     "timeStamp": 1511365913334,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.count | default: 4`, {
   "message": {
     "addonId": "",
@@ -3882,18 +3721,17 @@ stubPackets.set(`console.count | default
     "lineNumber": 8,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source73",
     "timeStamp": 1511365913335,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.count | test counter: 3`, {
   "message": {
     "addonId": "",
@@ -3912,18 +3750,17 @@ stubPackets.set(`console.count | test co
     "lineNumber": 9,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source73",
     "timeStamp": 1511365913335,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.countReset | test counter: 0`, {
   "message": {
     "addonId": "",
@@ -3942,18 +3779,17 @@ stubPackets.set(`console.countReset | te
     "lineNumber": 10,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source73",
     "timeStamp": 1526920412190,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 stubPackets.set(`console.countReset | counterDoesntExist`, {
   "message": {
     "addonId": "",
@@ -3972,18 +3808,17 @@ stubPackets.set(`console.countReset | co
     "lineNumber": 11,
     "prefix": "",
     "private": false,
     "sourceId": "server1.conn0.child1/source73",
     "timeStamp": 1526920412191,
     "timer": null,
     "workerType": "none",
     "styles": [],
-    "category": "webdev",
-    "innerWindowID": 10737418243
+    "category": "webdev"
   },
   "type": "consoleAPICall",
   "from": "server1.conn0.child1/consoleActor2"
 });
 
 module.exports = {
   stubPreparedMessages,
   stubPackets,
--- a/devtools/client/webconsole/test/fixtures/stubs/cssMessage.js
+++ b/devtools/client/webconsole/test/fixtures/stubs/cssMessage.js
@@ -10,24 +10,22 @@
 
 const { ConsoleMessage } =
   require("devtools/client/webconsole/types");
 
 const stubPreparedMessages = new Map();
 const stubPackets = new Map();
 stubPreparedMessages.set(`Unknown property ‘such-unknown-property’.  Declaration dropped.`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": 15032385539,
   "allowRepeating": true,
   "source": "css",
   "timeStamp": 1479159920406,
   "type": "log",
   "helperType": null,
   "level": "warn",
-  "category": "CSS Parser",
   "messageText": "Unknown property ‘such-unknown-property’.  Declaration dropped.",
   "parameters": null,
   "repeatId": "{\"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,\"indent\":0,\"level\":\"warn\",\"messageText\":\"Unknown property ‘such-unknown-property’.  Declaration dropped.\",\"parameters\":null,\"source\":\"css\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-css-message.html",
     "sourceId": null,
     "line": 3,
@@ -39,24 +37,22 @@ stubPreparedMessages.set(`Unknown property ‘such-unknown-property’.  Declaration dropped.`, new ConsoleMessage({
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`Error in parsing value for ‘padding-top’.  Declaration dropped.`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": 15032385539,
   "allowRepeating": true,
   "source": "css",
   "timeStamp": 1479159920465,
   "type": "log",
   "helperType": null,
   "level": "warn",
-  "category": "CSS Parser",
   "messageText": "Error in parsing value for ‘padding-top’.  Declaration dropped.",
   "parameters": null,
   "repeatId": "{\"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,\"indent\":0,\"level\":\"warn\",\"messageText\":\"Error in parsing value for ‘padding-top’.  Declaration dropped.\",\"parameters\":null,\"source\":\"css\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": {
     "source": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-css-message.html",
     "sourceId": null,
     "line": 3,
@@ -76,17 +72,16 @@ stubPackets.set(`Unknown property ‘such-unknown-property’.  Declaration dropped.`, {
     "errorMessage": "Unknown property ‘such-unknown-property’.  Declaration dropped.",
     "errorMessageName": "",
     "sourceName": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-css-message.html",
     "sourceId": null,
     "lineText": "",
     "lineNumber": 3,
     "columnNumber": 25,
     "category": "CSS Parser",
-    "innerWindowID": 15032385539,
     "timeStamp": 1479159920406,
     "warning": true,
     "error": false,
     "exception": false,
     "strict": false,
     "info": false,
     "private": false,
     "stacktrace": null,
@@ -101,17 +96,16 @@ stubPackets.set(`Error in parsing value for ‘padding-top’.  Declaration dropped.`, {
     "errorMessage": "Error in parsing value for ‘padding-top’.  Declaration dropped.",
     "errorMessageName": "",
     "sourceName": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-css-message.html",
     "sourceId": null,
     "lineText": "",
     "lineNumber": 3,
     "columnNumber": 16,
     "category": "CSS Parser",
-    "innerWindowID": 15032385539,
     "timeStamp": 1479159920465,
     "warning": true,
     "error": false,
     "exception": false,
     "strict": false,
     "info": false,
     "private": false,
     "stacktrace": null,
--- a/devtools/client/webconsole/test/fixtures/stubs/evaluationResult.js
+++ b/devtools/client/webconsole/test/fixtures/stubs/evaluationResult.js
@@ -10,24 +10,22 @@
 
 const { ConsoleMessage } =
   require("devtools/client/webconsole/types");
 
 const stubPreparedMessages = new Map();
 const stubPackets = new Map();
 stubPreparedMessages.set(`new Date(0)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1479159921364,
   "type": "result",
   "helperType": null,
   "level": "log",
-  "category": null,
   "parameters": [
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj30",
       "class": "Date",
       "extensible": true,
       "frozen": false,
       "sealed": false,
@@ -44,24 +42,22 @@ stubPreparedMessages.set(`new Date(0)`, 
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": ""
 }));
 
 stubPreparedMessages.set(`asdf()`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1479159921377,
   "type": "result",
   "helperType": null,
   "level": "error",
-  "category": null,
   "messageText": "ReferenceError: asdf is not defined",
   "parameters": [
     {
       "type": "undefined"
     }
   ],
   "repeatId": "{\"frame\":{\"source\":\"debugger eval code\",\"line\":1,\"column\":1},\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"ReferenceError: asdf is not defined\",\"parameters\":[{\"type\":\"undefined\"}],\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null,\"stacktrace\":null}",
   "stacktrace": null,
@@ -76,24 +72,22 @@ stubPreparedMessages.set(`asdf()`, new C
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": ""
 }));
 
 stubPreparedMessages.set(`1 + @`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1479159921399,
   "type": "result",
   "helperType": null,
   "level": "error",
-  "category": null,
   "messageText": "SyntaxError: illegal character",
   "parameters": [
     {
       "type": "undefined"
     }
   ],
   "repeatId": "{\"frame\":{\"source\":\"debugger eval code\",\"line\":1,\"column\":4},\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"SyntaxError: illegal character\",\"parameters\":[{\"type\":\"undefined\"}],\"source\":\"javascript\",\"type\":\"result\",\"userProvidedStyles\":null,\"stacktrace\":null}",
   "stacktrace": null,
@@ -108,24 +102,22 @@ stubPreparedMessages.set(`1 + @`, new Co
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": ""
 }));
 
 stubPreparedMessages.set(`inspect({a: 1})`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1499776070751,
   "type": "result",
   "helperType": "inspectObject",
   "level": "log",
-  "category": null,
   "parameters": [
     {
       "type": "object",
       "actor": "server1.conn0.child1/obj35",
       "class": "Object",
       "extensible": true,
       "frozen": false,
       "sealed": false,
@@ -154,24 +146,22 @@ stubPreparedMessages.set(`inspect({a: 1}
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": ""
 }));
 
 stubPreparedMessages.set(`cd(document)`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1510650094657,
   "type": "result",
   "helperType": "error",
   "level": "error",
-  "category": null,
   "messageText": "Cannot cd() to the given window. Invalid argument.",
   "parameters": [
     {
       "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,
@@ -180,24 +170,22 @@ stubPreparedMessages.set(`cd(document)`,
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": ""
 }));
 
 stubPreparedMessages.set(`undefined`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1518606917356,
   "type": "result",
   "helperType": null,
   "level": "log",
-  "category": null,
   "parameters": [
     {
       "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,
@@ -205,24 +193,22 @@ stubPreparedMessages.set(`undefined`, ne
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": ""
 }));
 
 stubPreparedMessages.set(`longString message Error`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1493108241073,
   "type": "result",
   "helperType": null,
   "level": "error",
-  "category": null,
   "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": [
     {
@@ -236,24 +222,22 @@ stubPreparedMessages.set(`longString mes
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": ""
 }));
 
 stubPreparedMessages.set(`eval throw ""`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1517990289517,
   "type": "result",
   "helperType": null,
   "level": "error",
-  "category": null,
   "messageText": "Error",
   "parameters": [
     {
       "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,
@@ -262,24 +246,22 @@ stubPreparedMessages.set(`eval throw ""`
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": ""
 }));
 
 stubPreparedMessages.set(`eval throw "tomato"`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": null,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1517990289520,
   "type": "result",
   "helperType": null,
   "level": "error",
-  "category": null,
   "messageText": "Error: tomato",
   "parameters": [
     {
       "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,
--- a/devtools/client/webconsole/test/fixtures/stubs/pageError.js
+++ b/devtools/client/webconsole/test/fixtures/stubs/pageError.js
@@ -10,24 +10,22 @@
 
 const { ConsoleMessage } =
   require("devtools/client/webconsole/types");
 
 const stubPreparedMessages = new Map();
 const stubPackets = new Map();
 stubPreparedMessages.set(`ReferenceError: asdf is not defined`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": 6442450949,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1476573167137,
   "type": "log",
   "helperType": null,
   "level": "error",
-  "category": "content javascript",
   "messageText": "ReferenceError: asdf is not defined",
   "parameters": null,
   "repeatId": "{\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"sourceId\":null,\"line\":3,\"column\":5},\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"ReferenceError: asdf is not defined\",\"parameters\":null,\"source\":\"javascript\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":[{\"filename\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"sourceId\":\"server1.conn0.child1/source25\",\"lineNumber\":3,\"columnNumber\":5,\"functionName\":\"bar\"},{\"filename\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"sourceId\":\"server1.conn0.child1/source25\",\"lineNumber\":6,\"columnNumber\":5,\"functionName\":\"foo\"},{\"filename\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"sourceId\":\"server1.conn0.child1/source25\",\"lineNumber\":9,\"columnNumber\":3,\"functionName\":null},{\"filename\":\"resource://testing-common/content-task.js line 59 > eval\",\"sourceId\":null,\"lineNumber\":7,\"columnNumber\":31,\"functionName\":null},{\"filename\":\"resource://testing-common/content-task.js\",\"sourceId\":null,\"lineNumber\":60,\"columnNumber\":29,\"functionName\":null}]}",
   "stacktrace": [
     {
       "filename": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
       "sourceId": "server1.conn0.child1/source25",
       "lineNumber": 3,
@@ -76,24 +74,22 @@ stubPreparedMessages.set(`ReferenceError
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`SyntaxError: redeclaration of let a`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": 6442450949,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1487992945524,
   "type": "log",
   "helperType": null,
   "level": "error",
-  "category": "content javascript",
   "messageText": "SyntaxError: redeclaration of let a",
   "parameters": null,
   "repeatId": "{\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"sourceId\":null,\"line\":2,\"column\":9},\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"SyntaxError: redeclaration of let a\",\"parameters\":null,\"source\":\"javascript\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":[{\"filename\":\"resource://testing-common/content-task.js line 59 > eval\",\"sourceId\":null,\"lineNumber\":7,\"columnNumber\":31,\"functionName\":null},{\"filename\":\"resource://testing-common/content-task.js\",\"sourceId\":null,\"lineNumber\":60,\"columnNumber\":29,\"functionName\":null}]}",
   "stacktrace": [
     {
       "filename": "resource://testing-common/content-task.js line 59 > eval",
       "sourceId": null,
       "lineNumber": 7,
@@ -131,24 +127,22 @@ stubPreparedMessages.set(`SyntaxError: r
   ],
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`TypeError longString message`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": 6442450949,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1493109507061,
   "type": "log",
   "helperType": null,
   "level": "error",
-  "category": "content javascript",
   "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/longString30"
   },
   "parameters": null,
   "repeatId": "{\"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,\"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/longString30\"},\"parameters\":null,\"source\":\"javascript\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":[{\"filename\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"sourceId\":\"server1.conn0.child1/source26\",\"lineNumber\":1,\"columnNumber\":7,\"functionName\":null},{\"filename\":\"resource://testing-common/content-task.js line 59 > eval\",\"sourceId\":null,\"lineNumber\":7,\"columnNumber\":31,\"functionName\":null},{\"filename\":\"resource://testing-common/content-task.js\",\"sourceId\":null,\"lineNumber\":60,\"columnNumber\":29,\"functionName\":null}]}",
@@ -187,48 +181,44 @@ stubPreparedMessages.set(`TypeError long
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`throw ""`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": 6442450949,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1517942398629,
   "type": "log",
   "helperType": null,
   "level": "error",
-  "category": "content javascript",
   "messageText": "uncaught exception: ",
   "parameters": null,
   "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"uncaught exception: \",\"parameters\":null,\"source\":\"javascript\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": null,
   "groupId": null,
   "errorMessageName": "JSMSG_UNCAUGHT_EXCEPTION",
   "userProvidedStyles": null,
   "notes": null,
   "indent": 0,
   "prefix": "",
   "private": false
 }));
 
 stubPreparedMessages.set(`throw "tomato"`, new ConsoleMessage({
   "id": "1",
-  "innerWindowID": 6442450949,
   "allowRepeating": true,
   "source": "javascript",
   "timeStamp": 1517942398637,
   "type": "log",
   "helperType": null,
   "level": "error",
-  "category": "content javascript",
   "messageText": "uncaught exception: tomato",
   "parameters": null,
   "repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"uncaught exception: tomato\",\"parameters\":null,\"source\":\"javascript\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":null}",
   "stacktrace": null,
   "frame": null,
   "groupId": null,
   "errorMessageName": "JSMSG_UNCAUGHT_EXCEPTION",
   "userProvidedStyles": null,
@@ -244,17 +234,16 @@ stubPackets.set(`ReferenceError: asdf is
     "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",
     "sourceName": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": null,
     "lineText": "",
     "lineNumber": 3,
     "columnNumber": 5,
     "category": "content javascript",
-    "innerWindowID": 6442450949,
     "timeStamp": 1476573167137,
     "warning": false,
     "error": false,
     "exception": true,
     "strict": false,
     "info": false,
     "private": false,
     "stacktrace": [
@@ -306,17 +295,16 @@ stubPackets.set(`SyntaxError: redeclarat
     "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",
     "sourceName": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": null,
     "lineText": "  let a, a;",
     "lineNumber": 2,
     "columnNumber": 9,
     "category": "content javascript",
-    "innerWindowID": 6442450949,
     "timeStamp": 1487992945524,
     "warning": false,
     "error": false,
     "exception": true,
     "strict": false,
     "info": false,
     "private": false,
     "stacktrace": [
@@ -361,17 +349,16 @@ stubPackets.set(`TypeError longString me
     },
     "errorMessageName": "",
     "sourceName": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
     "sourceId": "server1.conn0.child1/source26",
     "lineText": "",
     "lineNumber": 1,
     "columnNumber": 7,
     "category": "content javascript",
-    "innerWindowID": 6442450949,
     "timeStamp": 1493109507061,
     "warning": false,
     "error": false,
     "exception": true,
     "strict": false,
     "info": false,
     "private": false,
     "stacktrace": [
@@ -408,17 +395,16 @@ stubPackets.set(`throw ""`, {
     "errorMessage": "uncaught exception: ",
     "errorMessageName": "JSMSG_UNCAUGHT_EXCEPTION",
     "sourceName": "",
     "sourceId": null,
     "lineText": "",
     "lineNumber": 0,
     "columnNumber": 0,
     "category": "content javascript",
-    "innerWindowID": 6442450949,
     "timeStamp": 1517942398629,
     "warning": false,
     "error": false,
     "exception": false,
     "strict": false,
     "info": false,
     "private": false,
     "stacktrace": null,
@@ -433,17 +419,16 @@ stubPackets.set(`throw "tomato"`, {
     "errorMessage": "uncaught exception: tomato",
     "errorMessageName": "JSMSG_UNCAUGHT_EXCEPTION",
     "sourceName": "",
     "sourceId": null,
     "lineText": "",
     "lineNumber": 0,
     "columnNumber": 0,
     "category": "content javascript",
-    "innerWindowID": 6442450949,
     "timeStamp": 1517942398637,
     "warning": false,
     "error": false,
     "exception": false,
     "strict": false,
     "info": false,
     "private": false,
     "stacktrace": null,
--- a/devtools/client/webconsole/test/mocha-test-setup.js
+++ b/devtools/client/webconsole/test/mocha-test-setup.js
@@ -19,18 +19,16 @@ pref("devtools.webconsole.filter.debug",
 pref("devtools.webconsole.filter.css", false);
 pref("devtools.webconsole.filter.net", false);
 pref("devtools.webconsole.filter.netxhr", false);
 pref("devtools.webconsole.inputHistoryCount", 300);
 pref("devtools.webconsole.persistlog", false);
 pref("devtools.webconsole.timestampMessages", false);
 pref("devtools.webconsole.sidebarToggle", true);
 pref("devtools.webconsole.jsterm.codeMirror", true);
-pref("devtools.webconsole.groupWarningMessages", false);
-pref("devtools.webconsole.input.editor", false);
 
 global.loader = {
   lazyServiceGetter: () => {},
   lazyGetter: (context, name, fn) => {
 
   },
   lazyRequireGetter: (context, name, path, destruct) => {
     if (path === "devtools/shared/async-storage") {
--- a/devtools/client/webconsole/test/mochitest/browser.ini
+++ b/devtools/client/webconsole/test/mochitest/browser.ini
@@ -110,17 +110,16 @@ support-files =
   test-sourcemap-error-02.html
   test-sourcemap-error-02.js
   test-stacktrace-location-debugger-link.html
   test-subresource-security-error.html
   test-subresource-security-error.js
   test-subresource-security-error.js^headers^
   test-time-methods.html
   test-trackingprotection-securityerrors.html
-  test-warning-groups.html
   test-webconsole-error-observer.html
   test-websocket.html
   test-websocket.js
   testscript.js
   !/devtools/client/netmonitor/test/sjs_cors-test-server.sjs
   !/image/test/mochitest/blue.png
   !/devtools/client/shared/test/shared-head.js
   !/devtools/client/debugger/new/test/mochitest/helpers.js
@@ -393,11 +392,9 @@ skip-if = verify
 [browser_webconsole_telemetry_object_expanded.js]
 [browser_webconsole_time_methods.js]
 [browser_webconsole_timestamps.js]
 [browser_webconsole_trackingprotection_errors.js]
 tags = trackingprotection
 [browser_webconsole_view_source.js]
 [browser_webconsole_visibility_messages.js]
 [browser_webconsole_warn_about_replaced_api.js]
-[browser_webconsole_warning_group_content_blocking.js]
-[browser_webconsole_warning_groups.js]
 [browser_webconsole_websocket.js]
--- a/devtools/client/webconsole/test/mochitest/browser_webconsole_trackingprotection_errors.js
+++ b/devtools/client/webconsole/test/mochitest/browser_webconsole_trackingprotection_errors.js
@@ -113,16 +113,24 @@ add_task(async function testCookieBlocke
   await testLearnMoreClickOpenNewTab(message,
     getStorageErrorUrl("CookieBlockedByPermission"));
   win.close();
 
   // Remove the custom permission.
   Services.perms.removeFromPrincipal(p, "cookie");
 });
 
+async function openNewWindowAndConsole(url) {
+  const win = await openNewBrowserWindow();
+  const tab = await addTab(url, {window: win});
+  win.gBrowser.selectedTab = tab;
+  const hud = await openConsole(tab);
+  return {win, hud};
+}
+
 function getStorageErrorUrl(category) {
   const BASE_STORAGE_ERROR_URL = "https://developer.mozilla.org/docs/Mozilla/Firefox/" +
                                  "Privacy/Storage_access_policy/Errors/";
   const STORAGE_ERROR_URL_PARAMS = new URLSearchParams({
     utm_source: "devtools",
     utm_medium: "firefox-cookie-errors",
     utm_campaign: "default",
   }).toString();
deleted file mode 100644
--- a/devtools/client/webconsole/test/mochitest/browser_webconsole_warning_group_content_blocking.js
+++ /dev/null
@@ -1,194 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-// Load a page with tracking elements that get blocked and make sure that a
-// 'learn more' link shows up in the webconsole.
-
-"use strict";
-requestLongerTimeout(2);
-
-const TEST_FILE =
-  "browser/devtools/client/webconsole/test/mochitest/test-warning-groups.html";
-const TEST_URI = "http://example.com/" + TEST_FILE;
-
-const TRACKER_URL = "http://tracking.example.com/";
-const IMG_FILE = "browser/devtools/client/webconsole/test/mochitest/test-image.png";
-const TRACKER_IMG = "http://tracking.example.org/" + IMG_FILE;
-
-const CONTENT_BLOCKING_GROUP_LABEL = "Content blocked messages";
-
-const COOKIE_BEHAVIOR_PREF = "network.cookie.cookieBehavior";
-const COOKIE_BEHAVIORS = {
-// reject all third-party cookies
-  REJECT_FOREIGN: 1,
-// reject all cookies
-  REJECT: 2,
-// reject third-party cookies unless the eTLD already has at least one cookie
-  LIMIT_FOREIGN: 3,
-// reject trackers
-  REJECT_TRACKER: 4,
-};
-
-const {UrlClassifierTestUtils} = ChromeUtils.import("resource://testing-common/UrlClassifierTestUtils.jsm");
-UrlClassifierTestUtils.addTestTrackers();
-registerCleanupFunction(function() {
-  UrlClassifierTestUtils.cleanupTestTrackers();
-});
-
-pushPref("privacy.trackingprotection.enabled", true);
-pushPref("devtools.webconsole.groupWarningMessages", true);
-
-add_task(async function testContentBlockingMessage() {
-  const {hud, tab, win} = await openNewWindowAndConsole(
-    "http://tracking.example.org/" + TEST_FILE);
-  const now = Date.now();
-
-  info("Test content blocking message");
-  const message = `The resource at \u201chttp://tracking.example.com/?1&${now}\u201d ` +
-    `was blocked because content blocking is enabled`;
-  const onContentBlockingWarningMessage = waitForMessage(hud, message, ".warn");
-  emitContentBlockingMessage(tab, `${TRACKER_URL}?1&${now}`);
-  await onContentBlockingWarningMessage;
-
-  ok(true, "The content blocking message was displayed");
-
-  info("Emit a new content blocking message to check that it causes a grouping");
-  const onContentBlockingWarningGroupMessage =
-    waitForMessage(hud, CONTENT_BLOCKING_GROUP_LABEL, ".warn");
-  emitContentBlockingMessage(tab, `${TRACKER_URL}?2&${now}`);
-  const {node} = await onContentBlockingWarningGroupMessage;
-  is(node.querySelector(".warning-group-badge").textContent, "2",
-    "The badge has the expected text");
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▶︎ ${CONTENT_BLOCKING_GROUP_LABEL} 2`,
-  ]);
-
-  info("Open the group");
-  node.querySelector(".arrow").click();
-  await waitFor(() => findMessage(hud, "http://tracking.example.com/?1"));
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▼︎ ${CONTENT_BLOCKING_GROUP_LABEL} 2`,
-    `| The resource at \u201chttp://tracking.example.com/?1&${now}\u201d was blocked`,
-    `| The resource at \u201chttp://tracking.example.com/?2&${now}\u201d was blocked`,
-  ]);
-  await win.close();
-});
-
-add_task(async function testForeignCookieBlockedMessage() {
-  info("Test foreign cookie blocked message");
-  // We change the pref and open a new window to ensure it will be taken into account.
-  await pushPref(COOKIE_BEHAVIOR_PREF, COOKIE_BEHAVIORS.REJECT_FOREIGN);
-  const getWarningMsg = url => `Request to access cookie or storage on “${url}” was ` +
-    `blocked because we are blocking all third-party`;
-  await testStorageAccessBlockedGrouping(getWarningMsg);
-});
-
-add_task(async function testLimitForeignCookieBlockedMessage() {
-  info("Test unvisited eTLD foreign cookies blocked message");
-  // We change the pref and open a new window to ensure it will be taken into account.
-  await pushPref(COOKIE_BEHAVIOR_PREF, COOKIE_BEHAVIORS.LIMIT_FOREIGN);
-  const getWarningMsg = url => `Request to access cookie or storage on “${url}” was ` +
-    `blocked because we are blocking all third-party`;
-  await testStorageAccessBlockedGrouping(getWarningMsg);
-});
-
-add_task(async function testAllCookieBlockedMessage() {
-  info("Test all cookies blocked message");
-  // We change the pref and open a new window to ensure it will be taken into account.
-  await pushPref(COOKIE_BEHAVIOR_PREF, COOKIE_BEHAVIORS.REJECT);
-  const getWarningMsg = url => `Request to access cookie or storage on “${url}” was ` +
-    `blocked because we are blocking all storage access requests`;
-  await testStorageAccessBlockedGrouping(getWarningMsg);
-});
-
-add_task(async function testTrackerCookieBlockedMessage() {
-  info("Test tracker cookie blocked message");
-  // We change the pref and open a new window to ensure it will be taken into account.
-  await pushPref(COOKIE_BEHAVIOR_PREF, COOKIE_BEHAVIORS.REJECT_TRACKER);
-  const getWarningMsg = url => `Request to access cookie or storage on “${url}” was ` +
-    `blocked because it came from a tracker`;
-  await testStorageAccessBlockedGrouping(getWarningMsg);
-});
-
-add_task(async function testCookieBlockedByPermissionMessage() {
-  info("Test cookie blocked by permission message");
-  // Turn off tracking protection and add a block permission on the URL.
-  await pushPref("privacy.trackingprotection.enabled", false);
-  const p = Services.scriptSecurityManager.createCodebasePrincipalFromOrigin("http://tracking.example.org/");
-  Services.perms.addFromPrincipal(p, "cookie", Ci.nsIPermissionManager.DENY_ACTION);
-
-  const getWarningMsg = url => `Request to access cookies or storage on “${url}” was ` +
-    `blocked because of custom cookie permission`;
-  await testStorageAccessBlockedGrouping(getWarningMsg);
-
-  // Remove the custom permission.
-  Services.perms.removeFromPrincipal(p, "cookie");
-});
-
-/**
- * Test that storage access blocked messages are grouped by emitting 2 messages.
- *
- * @param {Function} getWarningMessage: A function that takes an URL string as a parameter
- *                                  and returns the corresponding warning message.
- */
-async function testStorageAccessBlockedGrouping(getWarningMessage) {
-  const {hud, win, tab} = await openNewWindowAndConsole(TEST_URI);
-  const now = Date.now();
-
-  hud.ui.clearOutput();
-  const onStorageAccessBlockedMessage =
-    waitForMessage(hud, getWarningMessage(`${TRACKER_IMG}?1&${now}`), ".warn");
-  emitStorageAccessBlockedMessage(tab, `${TRACKER_IMG}?1&${now}`);
-  await onStorageAccessBlockedMessage;
-
-  info("Emit a new content blocking message to check that it causes a grouping");
-  const onContentBlockingWarningGroupMessage =
-    waitForMessage(hud, CONTENT_BLOCKING_GROUP_LABEL, ".warn");
-  emitStorageAccessBlockedMessage(tab, `${TRACKER_IMG}?2&${now}`);
-  const {node} = await onContentBlockingWarningGroupMessage;
-  is(node.querySelector(".warning-group-badge").textContent, "2",
-    "The badge has the expected text");
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▶︎ ${CONTENT_BLOCKING_GROUP_LABEL} 2`,
-  ]);
-
-  info("Open the group");
-  node.querySelector(".arrow").click();
-  await waitFor(() => findMessage(hud, TRACKER_IMG));
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▼︎ ${CONTENT_BLOCKING_GROUP_LABEL} 2`,
-    `| ${getWarningMessage(TRACKER_IMG + "?1&" + now)}`,
-    `| ${getWarningMessage(TRACKER_IMG + "?2&" + now)}`,
-  ]);
-
-  hud.ui.clearOutput();
-  await win.close();
-}
-
-/**
- * Emit a Content Blocking message. This is done by loading an iframe from an origin
- * tagged as tracker. The image is loaded with a incremented counter query parameter
- * each time so we can get the warning message.
- */
-function emitContentBlockingMessage(tab, url) {
-  ContentTask.spawn(tab.linkedBrowser, url, function(innerURL) {
-    content.wrappedJSObject.loadIframe(innerURL);
-  });
-}
-
-/**
- * Emit a Storage blocked message. This is done by loading an image from an origin
- * tagged as tracker. The image is loaded with a incremented counter query parameter
- * each time so we can get the warning message.
- */
-function emitStorageAccessBlockedMessage(tab, url) {
-  ContentTask.spawn(tab.linkedBrowser, url, async function(innerURL) {
-    content.wrappedJSObject.loadImage(innerURL);
-  });
-}
deleted file mode 100644
--- a/devtools/client/webconsole/test/mochitest/browser_webconsole_warning_groups.js
+++ /dev/null
@@ -1,241 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-// Test that warning messages can be grouped, per navigation and category, and that
-// interacting with these groups works as expected.
-
-"use strict";
-requestLongerTimeout(2);
-
-const TEST_FILE =
-  "browser/devtools/client/webconsole/test/mochitest/test-warning-groups.html";
-const TEST_URI = "http://example.com/" + TEST_FILE;
-
-const TRACKER_URL = "http://tracking.example.org/";
-const BLOCKED_URL = TRACKER_URL +
-  "browser/devtools/client/webconsole/test/mochitest/test-image.png";
-
-const {UrlClassifierTestUtils} = ChromeUtils.import("resource://testing-common/UrlClassifierTestUtils.jsm");
-registerCleanupFunction(function() {
-  UrlClassifierTestUtils.cleanupTestTrackers();
-});
-
-add_task(async function testContentBlockingMessage() {
-  const CONTENT_BLOCKING_GROUP_LABEL = "Content blocked messages";
-
-  // Tracking protection preferences
-  await UrlClassifierTestUtils.addTestTrackers();
-  await pushPref("privacy.trackingprotection.enabled", true);
-
-  // Enable groupWarning and persist log
-  await pushPref("devtools.webconsole.groupWarningMessages", true);
-  await pushPref("devtools.webconsole.persistlog", true);
-
-  const hud = await openNewTabAndConsole(TEST_URI);
-
-  info("Log a tracking protection message to check a single message isn't grouped");
-  let onContentBlockingWarningMessage = waitForMessage(hud, BLOCKED_URL, ".warn");
-  emitStorageAccessBlockedMessage(hud);
-  let {node} = await onContentBlockingWarningMessage;
-  is(node.querySelector(".warning-indent"), null, "The message has the expected style");
-  is(node.querySelector(".indent").getAttribute("data-indent"), "0",
-    "The message has the expected indent");
-
-  info("Log a simple message");
-  await logString(hud, "simple message 1");
-
-  info("Log a second tracking protection message to check that it causes the grouping");
-  let onContentBlockingWarningGroupMessage =
-    waitForMessage(hud, CONTENT_BLOCKING_GROUP_LABEL, ".warn");
-  emitStorageAccessBlockedMessage(hud);
-  ({node} = await onContentBlockingWarningGroupMessage);
-  is(node.querySelector(".warning-group-badge").textContent, "2",
-    "The badge has the expected text");
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▶︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `simple message 1`,
-  ]);
-
-  info("Log another simple message");
-  await logString(hud, "simple message 2");
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▶︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `simple message 1`,
-    `simple message 2`,
-  ]);
-
-  info("Log a third tracking protection message to check that the badge updates");
-  emitStorageAccessBlockedMessage(hud);
-  await waitFor(() => node.querySelector(".warning-group-badge").textContent == "3");
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▶︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `simple message 1`,
-    `simple message 2`,
-  ]);
-
-  info("Open the group");
-  node.querySelector(".arrow").click();
-  await waitFor(() => findMessage(hud, BLOCKED_URL));
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▼︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `| ${BLOCKED_URL}?1`,
-    `| ${BLOCKED_URL}?2`,
-    `| ${BLOCKED_URL}?3`,
-    `simple message 1`,
-    `simple message 2`,
-  ]);
-
-  info("Log a new tracking protection message to check it appears inside the group");
-  onContentBlockingWarningMessage =
-    waitForMessage(hud, BLOCKED_URL, ".warn");
-  emitStorageAccessBlockedMessage(hud);
-  await onContentBlockingWarningMessage;
-  ok(true, "The new tracking protection message is displayed");
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▼︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `| ${BLOCKED_URL}?1`,
-    `| ${BLOCKED_URL}?2`,
-    `| ${BLOCKED_URL}?3`,
-    `| ${BLOCKED_URL}?4`,
-    `simple message 1`,
-    `simple message 2`,
-  ]);
-
-  info("Reload the page and wait for it to be ready");
-  const onDomContentLoaded = BrowserTestUtils.waitForContentEvent(
-    hud.target.tab.linkedBrowser, "DOMContentLoaded", true);
-  ContentTask.spawn(gBrowser.selectedBrowser, null, () => {
-    content.location.reload();
-  });
-  await onDomContentLoaded;
-
-  // Also wait for the navigation message to be displayed.
-  await waitFor(() => findMessage(hud, "Navigated to"));
-
-  info("Log a tracking protection message to check it is not grouped");
-  onContentBlockingWarningMessage =
-    waitForMessage(hud, BLOCKED_URL, ".warn");
-  emitStorageAccessBlockedMessage(hud);
-  await onContentBlockingWarningMessage;
-
-  await logString(hud, "simple message 3");
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▼︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `| ${BLOCKED_URL}?1`,
-    `| ${BLOCKED_URL}?2`,
-    `| ${BLOCKED_URL}?3`,
-    `| ${BLOCKED_URL}?4`,
-    `simple message 1`,
-    `simple message 2`,
-    "Navigated to",
-    `${BLOCKED_URL}?5`,
-    `simple message 3`,
-  ]);
-
-  info("Log a second tracking protection message to check that it causes the grouping");
-  onContentBlockingWarningGroupMessage =
-    waitForMessage(hud, CONTENT_BLOCKING_GROUP_LABEL, ".warn");
-  emitStorageAccessBlockedMessage(hud);
-  ({node} = await onContentBlockingWarningGroupMessage);
-  is(node.querySelector(".warning-group-badge").textContent, "2",
-    "The badge has the expected text");
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▼︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `| ${BLOCKED_URL}?1`,
-    `| ${BLOCKED_URL}?2`,
-    `| ${BLOCKED_URL}?3`,
-    `| ${BLOCKED_URL}?4`,
-    `simple message 1`,
-    `simple message 2`,
-    `Navigated to`,
-    `▶︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `simple message 3`,
-  ]);
-
-  info("Check that opening this group works");
-  node.querySelector(".arrow").click();
-  await waitFor(() => findMessages(hud, BLOCKED_URL).length === 6);
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▼︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `| ${BLOCKED_URL}?1`,
-    `| ${BLOCKED_URL}?2`,
-    `| ${BLOCKED_URL}?3`,
-    `| ${BLOCKED_URL}?4`,
-    `simple message 1`,
-    `simple message 2`,
-    `Navigated to`,
-    `▼︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `| ${BLOCKED_URL}?5`,
-    `| ${BLOCKED_URL}?6`,
-    `simple message 3`,
-  ]);
-
-  info("Check that closing this group works, and let the other one open");
-  node.querySelector(".arrow").click();
-  await waitFor(() => findMessages(hud, BLOCKED_URL).length === 4);
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▼︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `| ${BLOCKED_URL}?1`,
-    `| ${BLOCKED_URL}?2`,
-    `| ${BLOCKED_URL}?3`,
-    `| ${BLOCKED_URL}?4`,
-    `simple message 1`,
-    `simple message 2`,
-    `Navigated to`,
-    `▶︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `simple message 3`,
-  ]);
-
-  info("Log a third tracking protection message to check that the badge updates");
-  emitStorageAccessBlockedMessage(hud);
-  await waitFor(() => node.querySelector(".warning-group-badge").textContent == "3");
-
-  checkConsoleOutputForWarningGroup(hud, [
-    `▼︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `| ${BLOCKED_URL}?1`,
-    `| ${BLOCKED_URL}?2`,
-    `| ${BLOCKED_URL}?3`,
-    `| ${BLOCKED_URL}?4`,
-    `simple message 1`,
-    `simple message 2`,
-    `Navigated to`,
-    `▶︎ ${CONTENT_BLOCKING_GROUP_LABEL}`,
-    `simple message 3`,
-  ]);
-});
-
-let cpt = 0;
-/**
- * Emit a Content Blocking message. This is done by loading an image from an origin
- * tagged as tracker. The image is loaded with a incremented counter query parameter
- * each time so we can get the warning message.
- */
-function emitStorageAccessBlockedMessage() {
-  const url = `${BLOCKED_URL}?${++cpt}`;
-  ContentTask.spawn(gBrowser.selectedBrowser, url, function(innerURL) {
-    content.wrappedJSObject.loadImage(innerURL);
-  });
-}
-
-/**
- * Log a string from the content page.
- *
- * @param {WebConsole} hud
- * @param {String} str
- */
-function logString(hud, str) {
-  const onMessage = waitForMessage(hud, str);
-  ContentTask.spawn(gBrowser.selectedBrowser, str, function(arg) {
-    content.console.log(arg);
-  });
-  return onMessage;
-}
--- a/devtools/client/webconsole/test/mochitest/head.js
+++ b/devtools/client/webconsole/test/mochitest/head.js
@@ -82,33 +82,16 @@ async function openNewTabAndConsole(url,
     // Clearing history that might have been set in previous tests.
     await hud.ui.wrapper.dispatchClearHistory();
   }
 
   return hud;
 }
 
 /**
- * Open a new window with a tab,open the toolbox, and select the webconsole.
- *
- * @param string url
- *        The URL for the tab to be opened.
- * @return Promise<{win, hud, tab}>
- *         Resolves when the tab has been added, loaded and the toolbox has been opened.
- *         Resolves to the toolbox.
- */
-async function openNewWindowAndConsole(url) {
-  const win = await openNewBrowserWindow();
-  const tab = await addTab(url, {window: win});
-  win.gBrowser.selectedTab = tab;
-  const hud = await openConsole(tab);
-  return {win, hud, tab};
-}
-
-/**
  * Subscribe to the store and log out stringinfied versions of messages.
  * This is a helper function for debugging, to make is easier to see what
  * happened during the test in the log.
  *
  * @param object hud
  */
 function logAllStoreChanges(hud) {
   const store = hud.ui.wrapper.getStore();
@@ -1233,48 +1216,8 @@ function hasVerticalOverflow(container) 
 function isScrolledToBottom(container) {
   if (!container.lastChild) {
     return true;
   }
   const lastNodeHeight = container.lastChild.clientHeight;
   return container.scrollTop + container.clientHeight >=
          container.scrollHeight - lastNodeHeight / 2;
 }
-
-/**
- *
- * @param {WebConsole} hud
- * @param {Array<String>} expectedMessages: An array of string representing the messages
- *                        from the output. This can only be a part of the string of the
- *                        message.
- *                        Start the string with "▶︎ " or "▼ " to indicate that the
- *                        message is a warningGroup (with respectively an open or
- *                        collapsed arrow).
- *                        Start the string with "|︎ " to indicate that the message is
- *                        inside a group and should be indented.
- */
-function checkConsoleOutputForWarningGroup(hud, expectedMessages) {
-  const messages = findMessages(hud, "");
-  is(messages.length, expectedMessages.length, "Got the expected number of messages");
-  expectedMessages.forEach((expectedMessage, i) => {
-    const message = messages[i];
-    if (expectedMessage.startsWith("▶︎")) {
-      is(message.querySelector(".arrow").getAttribute("aria-expanded"), "false",
-        "There's a collapsed arrow");
-      expectedMessage = expectedMessage.replace("▶︎ ", "");
-    }
-
-    if (expectedMessage.startsWith("▼")) {
-      is(message.querySelector(".arrow").getAttribute("aria-expanded"), "true",
-        "There's an expanded arrow");
-      expectedMessage = expectedMessage.replace("▼︎ ", "");
-    }
-
-    if (expectedMessage.startsWith("|")) {
-      is(message.querySelector(".indent.warning-indent").getAttribute("data-indent"), "1",
-        "The message has the expected indent");
-      expectedMessage = expectedMessage.replace("| ", "");
-    }
-
-    ok(message.textContent.trim().includes(expectedMessage.trim()), `Message includes ` +
-      `the expected "${expectedMessage}" content - "${message.textContent.trim()}"`);
-  });
-}
deleted file mode 100644
--- a/devtools/client/webconsole/test/mochitest/test-warning-groups.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-    <title>Warning groups webconsole test page</title>
-  </head>
-  <body>
-    <p>Warning groups webconsole test page</p>
-    <script>
-      "use strict";
-
-      /* exported loadImage, loadIframe */
-      function loadImage(src) {
-        const img = document.createElement("img");
-        img.src = src;
-        img.alt = (new URL(src)).search;
-        img.title = src;
-        document.body.appendChild(img);
-      }
-
-      function loadIframe(src) {
-        const iframe = document.createElement("iframe");
-        iframe.src = src;
-        document.body.appendChild(iframe);
-      }
-    </script>
-  </body>
-</html>
--- a/devtools/client/webconsole/types.js
+++ b/devtools/client/webconsole/types.js
@@ -24,24 +24,22 @@ exports.ConsoleCommand = function(props)
     private: false,
     timeStamp: null,
   }, props);
 };
 
 exports.ConsoleMessage = function(props) {
   return Object.assign({
     id: null,
-    innerWindowID: null,
     allowRepeating: true,
     source: null,
     timeStamp: null,
     type: null,
     helperType: null,
     level: null,
-    category: null,
     messageText: null,
     parameters: null,
     repeatId: null,
     stacktrace: null,
     frame: null,
     groupId: null,
     errorMessageName: null,
     exceptionDocURL: null,
--- a/devtools/client/webconsole/utils/messages.js
+++ b/devtools/client/webconsole/utils/messages.js
@@ -240,21 +240,19 @@ function transformPageErrorPacket(packet
     line: pageError.lineNumber,
     column: pageError.columnNumber,
   } : null;
 
   const matchesCSS = /^(?:CSS|Layout)\b/.test(pageError.category);
   const messageSource = matchesCSS ? MESSAGE_SOURCE.CSS
                                   : MESSAGE_SOURCE.JAVASCRIPT;
   return new ConsoleMessage({
-    innerWindowID: pageError.innerWindowID,
     source: messageSource,
     type: MESSAGE_TYPE.LOG,
     level,
-    category: pageError.category,
     messageText: pageError.errorMessage,
     stacktrace: pageError.stacktrace ? pageError.stacktrace : null,
     frame,
     errorMessageName: pageError.errorMessageName,
     exceptionDocURL: pageError.exceptionDocURL,
     timeStamp: pageError.timeStamp,
     notes: pageError.notes,
     private: pageError.private,
@@ -425,86 +423,17 @@ function isPacketPrivate(packet) {
   return (
     packet.private === true ||
     (packet.message && packet.message.private === true) ||
     (packet.pageError && packet.pageError.private === true) ||
     (packet.networkEvent && packet.networkEvent.private === true)
   );
 }
 
-function createWarningGroupMessage(id, type, firstMessage) {
-  let messageText;
-  if (type === MESSAGE_TYPE.CONTENT_BLOCKING_GROUP) {
-    messageText = l10n.getStr("webconsole.group.contentBlocked");
-  }
-  return new ConsoleMessage({
-    id,
-    level: MESSAGE_LEVEL.WARN,
-    source: MESSAGE_SOURCE.CONSOLE_FRONTEND,
-    type,
-    messageText,
-    timeStamp: firstMessage.timeStamp,
-    innerWindowID: firstMessage.innerWindowID,
-  });
-}
-
-/**
- * Get the warningGroup type in which the message could be in.
- * @param {ConsoleMessage} message
- * @returns {String|null} null if the message can't be part of a warningGroup.
- */
-function getWarningGroupType(message) {
-  if (isContentBlockingMessage(message)) {
-    return MESSAGE_TYPE.CONTENT_BLOCKING_GROUP;
-  }
-  return null;
-}
-
-/**
- * Returns a computed id given a message
- *
- * @param {ConsoleMessage} type: the message type, from MESSAGE_TYPE.
- * @param {Integer} innerWindowID: the message innerWindowID.
- * @returns {String}
- */
-function getParentWarningGroupMessageId(message) {
-  return `${message.type}-${message.innerWindowID}`;
-}
-
-/**
- * Returns true if the message is a warningGroup message (i.e. the "Header").
- * @param {ConsoleMessage} message
- * @returns {Boolean}
- */
-function isWarningGroup(message) {
-  return message.type === MESSAGE_TYPE.CONTENT_BLOCKING_GROUP
-   || message.type === MESSAGE_TYPE.CORS_GROUP
-   || message.type === MESSAGE_TYPE.CSP_GROUP;
-}
-
-/**
- * Returns true if the message is a content blocking message.
- * @param {ConsoleMessage} message
- * @returns {Boolean}
- */
-function isContentBlockingMessage(message) {
-  const {category} = message;
-  return category == "cookieBlockedPermission" ||
-    category == "cookieBlockedTracker" ||
-    category == "cookieBlockedAll" ||
-    category == "cookieBlockedForeign" ||
-    category == "Tracking Protection";
-}
-
 module.exports = {
-  createWarningGroupMessage,
   getInitialMessageCountForViewport,
-  getParentWarningGroupMessageId,
-  getWarningGroupType,
-  isContentBlockingMessage,
   isGroupType,
   isPacketPrivate,
-  isWarningGroup,
   l10n,
   prepareMessage,
   // Export for use in testing.
   getRepeatId,
 };
--- a/devtools/server/actors/webconsole.js
+++ b/devtools/server/actors/webconsole.js
@@ -1514,17 +1514,16 @@ WebConsoleActor.prototype =
       errorMessageName: pageError.errorMessageName,
       exceptionDocURL: ErrorDocs.GetURL(pageError),
       sourceName: pageError.sourceName,
       sourceId: this.getActorIdForInternalSourceId(pageError.sourceId),
       lineText: lineText,
       lineNumber: pageError.lineNumber,
       columnNumber: pageError.columnNumber,
       category: pageError.category,
-      innerWindowID: pageError.innerWindowID,
       timeStamp: pageError.timeStamp,
       warning: !!(pageError.flags & pageError.warningFlag),
       error: !!(pageError.flags & pageError.errorFlag),
       exception: !!(pageError.flags & pageError.exceptionFlag),
       strict: !!(pageError.flags & pageError.strictFlag),
       info: !!(pageError.flags & pageError.infoFlag),
       private: pageError.isFromPrivateWindow,
       stacktrace: stack,
@@ -1713,17 +1712,16 @@ WebConsoleActor.prototype =
       return this.createValueGrip(dbgObj);
     });
 
     result.styles = Array.map(message.styles || [], (string) => {
       return this.createValueGrip(string);
     });
 
     result.category = message.category || "webdev";
-    result.innerWindowID = message.innerID;
 
     return result;
   },
 
   /**
    * Find the XUL window that owns the content window.
    *
    * @return Window