Bug 1431105 - Prefix in Console when used by JSM, r=bgrins draft
authorAndrea Marchesini <amarchesini@mozilla.com>
Wed, 17 Jan 2018 09:19:36 -0800
changeset 721657 077e1f6eedff24b11b5e229b7a60d0278bbe4dde
parent 720848 e4107773cffb1baefd5446666fce22c4d6eb0517
child 746405 e64b7b5c0d689003730d67c4b63f9756824b2e8e
push id95914
push userbgrinstead@mozilla.com
push dateWed, 17 Jan 2018 17:19:48 +0000
reviewersbgrins
bugs1431105
milestone59.0a1
Bug 1431105 - Prefix in Console when used by JSM, r=bgrins MozReview-Commit-ID: Bb0iZw18wLo
devtools/client/webconsole/new-console-output/test/fixtures/stubs/consoleApi.js
dom/console/Console.cpp
dom/console/Console.h
dom/console/ConsoleInstance.cpp
dom/console/tests/test_jsm.xul
dom/webidl/Console.webidl
--- a/devtools/client/webconsole/new-console-output/test/fixtures/stubs/consoleApi.js
+++ b/devtools/client/webconsole/new-console-output/test/fixtures/stubs/consoleApi.js
@@ -1502,16 +1502,17 @@ stubPackets.set("console.log('foobar', '
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924471,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -1528,16 +1529,17 @@ stubPackets.set("console.log(undefined)"
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924479,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -1552,16 +1554,17 @@ stubPackets.set("console.warn('danger, w
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "warn",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924487,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -1578,16 +1581,17 @@ stubPackets.set("console.log(NaN)", {
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924495,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -1604,16 +1608,17 @@ stubPackets.set("console.log(null)", {
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924501,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -1628,16 +1633,17 @@ stubPackets.set("console.log('鼬')", {
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924506,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -1650,16 +1656,17 @@ stubPackets.set("console.clear()", {
     "arguments": [],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "clear",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924512,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -1677,16 +1684,17 @@ stubPackets.set("console.count('bar')", 
       "count": 1,
       "label": "bar"
     },
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "count",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924515,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -1724,16 +1732,17 @@ stubPackets.set("console.assert(false, {
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "assert",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924521,
     "timer": null,
     "stacktrace": [
       {
         "columnNumber": 27,
         "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
@@ -1756,16 +1765,17 @@ stubPackets.set("console.log('hello \nfr
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924528,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -1780,16 +1790,17 @@ stubPackets.set("console.log('úṇĩçödê țĕșť')", {
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924586,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -1816,16 +1827,17 @@ stubPackets.set("console.dirxml(window)"
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "dirxml",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924596,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -1858,16 +1870,17 @@ stubPackets.set("console.log('myarray', 
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924604,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -1892,16 +1905,17 @@ stubPackets.set("console.log('myregex', 
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924610,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -1933,16 +1947,17 @@ stubPackets.set("console.table(['red', '
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "table",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924612,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -1993,16 +2008,17 @@ stubPackets.set("console.log('myobject',
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924614,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -2017,16 +2033,17 @@ stubPackets.set("console.debug('debug me
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "debug",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924621,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -2041,16 +2058,17 @@ stubPackets.set("console.info('info mess
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "info",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924625,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -2065,16 +2083,17 @@ stubPackets.set("console.error('error me
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "error",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924628,
     "timer": null,
     "stacktrace": [
       {
         "columnNumber": 27,
         "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
@@ -2120,16 +2139,17 @@ stubPackets.set("console.log('mymap')", 
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 5,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924631,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -2161,16 +2181,17 @@ stubPackets.set("console.log('myset')", 
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924746,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -2183,16 +2204,17 @@ stubPackets.set("console.trace()", {
     "arguments": [],
     "columnNumber": 3,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "testStacktraceFiltering",
     "groupName": "",
     "level": "trace",
     "lineNumber": 3,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924752,
     "timer": null,
     "stacktrace": [
       {
         "columnNumber": 3,
         "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
         "functionName": "testStacktraceFiltering",
@@ -2227,16 +2249,17 @@ stubPackets.set("console.time('bar')", {
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "time",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924757,
     "timer": {
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
     "category": "webdev"
@@ -2253,16 +2276,17 @@ stubPackets.set("timerAlreadyExists", {
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "time",
     "lineNumber": 3,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924758,
     "timer": {
       "error": "timerAlreadyExists",
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
@@ -2280,16 +2304,17 @@ stubPackets.set("console.timeEnd('bar')"
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "timeEnd",
     "lineNumber": 4,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924759,
     "timer": {
       "duration": 1.2149999999999181,
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
@@ -2307,16 +2332,17 @@ stubPackets.set("timerDoesntExist", {
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "timeEnd",
     "lineNumber": 5,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924759,
     "timer": {
       "error": "timerDoesntExist",
       "name": "bar"
     },
     "workerType": "none",
     "styles": [],
@@ -2334,16 +2360,17 @@ stubPackets.set("console.table('bar')", 
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "table",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924801,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2375,16 +2402,17 @@ stubPackets.set("console.table(['a', 'b'
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "table",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924859,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2399,16 +2427,17 @@ stubPackets.set("console.group('bar')", 
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "bar",
     "level": "group",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924863,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -2421,16 +2450,17 @@ stubPackets.set("console.groupEnd('bar')
     "arguments": [],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "bar",
     "level": "groupEnd",
     "lineNumber": 3,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924864,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2445,16 +2475,17 @@ stubPackets.set("console.groupCollapsed(
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "foo",
     "level": "groupCollapsed",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924870,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -2467,16 +2498,17 @@ stubPackets.set("console.groupEnd('foo')
     "arguments": [],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "foo",
     "level": "groupEnd",
     "lineNumber": 3,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924871,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2489,16 +2521,17 @@ stubPackets.set("console.group()", {
     "arguments": [],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "group",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "styles": [],
     "timeStamp": 1502884924878,
     "timer": null,
     "workerType": "none",
     "category": "webdev"
   }
 });
@@ -2511,16 +2544,17 @@ stubPackets.set("console.groupEnd()", {
     "arguments": [],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "groupEnd",
     "lineNumber": 3,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924879,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2536,16 +2570,17 @@ stubPackets.set("console.log(%cfoobar)",
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "log",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "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": 1502884924883,
     "timer": null,
     "workerType": "none",
@@ -2564,16 +2599,17 @@ stubPackets.set("console.group(%cfoo%cba
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "foo bar",
     "level": "group",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "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",
@@ -2589,16 +2625,17 @@ stubPackets.set("console.groupEnd(%cfoo%
     "arguments": [],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "foo bar",
     "level": "groupEnd",
     "lineNumber": 6,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924887,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2614,16 +2651,17 @@ stubPackets.set("console.groupCollapsed(
     ],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "foo baz",
     "level": "groupCollapsed",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "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",
@@ -2639,16 +2677,17 @@ stubPackets.set("console.groupEnd(%cfoo%
     "arguments": [],
     "columnNumber": 1,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "foo baz",
     "level": "groupEnd",
     "lineNumber": 6,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924893,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2704,16 +2743,17 @@ stubPackets.set("console.dir({C, M, Y, K
     ],
     "columnNumber": 27,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "dir",
     "lineNumber": 1,
+    "prefix": "",
     "private": false,
     "timeStamp": 1502884924899,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2731,16 +2771,17 @@ stubPackets.set("console.count | default
       "count": 1,
       "label": "default"
     },
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "count",
     "lineNumber": 2,
+    "prefix": "",
     "private": false,
     "timeStamp": 1511365913333,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2758,16 +2799,17 @@ stubPackets.set("console.count | default
       "count": 2,
       "label": "default"
     },
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "count",
     "lineNumber": 3,
+    "prefix": "",
     "private": false,
     "timeStamp": 1511365913334,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2785,16 +2827,17 @@ stubPackets.set("console.count | test co
       "count": 1,
       "label": "test counter"
     },
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "count",
     "lineNumber": 4,
+    "prefix": "",
     "private": false,
     "timeStamp": 1511365913334,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2812,16 +2855,17 @@ stubPackets.set("console.count | test co
       "count": 2,
       "label": "test counter"
     },
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "count",
     "lineNumber": 5,
+    "prefix": "",
     "private": false,
     "timeStamp": 1511365913334,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2839,16 +2883,17 @@ stubPackets.set("console.count | default
       "count": 3,
       "label": "default"
     },
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "count",
     "lineNumber": 6,
+    "prefix": "",
     "private": false,
     "timeStamp": 1511365913334,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2861,16 +2906,17 @@ stubPackets.set("console.count | clear",
     "arguments": [],
     "columnNumber": 5,
     "counter": null,
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "clear",
     "lineNumber": 7,
+    "prefix": "",
     "private": false,
     "timeStamp": 1511365913334,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2888,16 +2934,17 @@ stubPackets.set("console.count | default
       "count": 4,
       "label": "default"
     },
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "count",
     "lineNumber": 8,
+    "prefix": "",
     "private": false,
     "timeStamp": 1511365913335,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
@@ -2915,16 +2962,17 @@ stubPackets.set("console.count | test co
       "count": 3,
       "label": "test counter"
     },
     "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html",
     "functionName": "triggerPacket",
     "groupName": "",
     "level": "count",
     "lineNumber": 9,
+    "prefix": "",
     "private": false,
     "timeStamp": 1511365913335,
     "timer": null,
     "workerType": "none",
     "styles": [],
     "category": "webdev"
   }
 });
--- a/dom/console/Console.cpp
+++ b/dom/console/Console.cpp
@@ -1532,16 +1532,17 @@ Console::PopulateConsoleNotificationInTh
     // mConsoleEventNotifier.
     event.mID.Value().SetAsUnsignedLongLong() = 0;
     event.mInnerID.Value().SetAsUnsignedLongLong() = 0;
   }
 
   event.mConsoleID = mConsoleID;
   event.mLevel = aData->mMethodString;
   event.mFilename = frame.mFilename;
+  event.mPrefix = mPrefix;
 
   nsCOMPtr<nsIURI> filenameURI;
   nsAutoCString pass;
   if (NS_IsMainThread() &&
       NS_SUCCEEDED(NS_NewURI(getter_AddRefs(filenameURI), frame.mFilename)) &&
       NS_SUCCEEDED(filenameURI->GetPassword(pass)) && !pass.IsEmpty()) {
     nsCOMPtr<nsISensitiveInfoHiddenURI> safeURI = do_QueryInterface(filenameURI);
     nsAutoCString spec;
@@ -2597,18 +2598,18 @@ Console::MaybeExecuteDumpFunction(JSCont
     return;
   }
 
   nsAutoString message;
   message.AssignLiteral("console.");
   message.Append(aMethodName);
   message.AppendLiteral(": ");
 
-  if (!mDumpPrefix.IsEmpty()) {
-    message.Append(mDumpPrefix);
+  if (!mPrefix.IsEmpty()) {
+    message.Append(mPrefix);
     message.AppendLiteral(": ");
   }
 
   for (uint32_t i = 0; i < aData.Length(); ++i) {
     JS::Rooted<JS::Value> v(aCx, aData[i]);
     JS::Rooted<JSString*> jsString(aCx, JS_ValueToSource(aCx, v));
     if (!jsString) {
       continue;
@@ -2635,18 +2636,18 @@ Console::MaybeExecuteDumpFunctionForTrac
 {
   if (!aStack || (!mDumpFunction && !mDumpToStdout)) {
     return;
   }
 
   nsAutoString message;
   message.AssignLiteral("console.trace:\n");
 
-  if (!mDumpPrefix.IsEmpty()) {
-    message.Append(mDumpPrefix);
+  if (!mPrefix.IsEmpty()) {
+    message.Append(mPrefix);
     message.AppendLiteral(": ");
   }
 
   nsCOMPtr<nsIStackFrame> stack(aStack);
 
   while (stack) {
     nsAutoString filename;
     nsresult rv = stack->GetFilename(aCx, filename);
--- a/dom/console/Console.h
+++ b/dom/console/Console.h
@@ -439,17 +439,17 @@ private:
   uint64_t mOuterID;
   uint64_t mInnerID;
 
   // Set only by ConsoleInstance:
   nsString mConsoleID;
   nsString mPassedInnerID;
   RefPtr<ConsoleInstanceDumpCallback> mDumpFunction;
   bool mDumpToStdout;
-  nsString mDumpPrefix;
+  nsString mPrefix;
   bool mChromeInstance;
   ConsoleLogLevel mMaxLogLevel;
 
   enum {
     eUnknown,
     eInitialized,
     eShuttingDown
   } mStatus;
--- a/dom/console/ConsoleInstance.cpp
+++ b/dom/console/ConsoleInstance.cpp
@@ -74,17 +74,17 @@ ConsoleInstance::ConsoleInstance(const C
 
   if (aOptions.mDump.WasPassed()) {
     mConsole->mDumpFunction = &aOptions.mDump.Value();
   } else {
     // For historical reasons, ConsoleInstance prints messages on stdout.
     mConsole->mDumpToStdout = true;
   }
 
-  mConsole->mDumpPrefix = aOptions.mPrefix;
+  mConsole->mPrefix = aOptions.mPrefix;
 
   // Let's inform that this is a custom instance.
   mConsole->mChromeInstance = true;
 
   if (aOptions.mMaxLogLevel.WasPassed()) {
     mConsole->mMaxLogLevel = aOptions.mMaxLogLevel.Value();
   }
 
--- a/dom/console/tests/test_jsm.xul
+++ b/dom/console/tests/test_jsm.xul
@@ -33,29 +33,32 @@ consoleListener.prototype  = {
 
   observe: function(aSubject, aTopic, aData) {
     if (aTopic == "console-api-log-event") {
       var obj = aSubject.wrappedJSObject;
       if (obj.innerID == JSM) {
         is(obj.ID, "jsm", "ID and InnerID are correctly set.");
         is(obj.arguments[0], "Hello world!", "Message matches");
         is(obj.consoleID, "", "No consoleID for console API");
+        is(obj.prefix, "", "prefix is empty by default");
 
         // We want to see 2 messages from this innerID, the first is generated
         // by console.log, the second one from createInstance().log();
         ++this.count;
       } else if (obj.innerID == "CUSTOM INNER") {
         is(obj.ID, "jsm", "ID and InnerID are correctly set.");
         is(obj.arguments[0], "Hello world!", "Message matches");
         is(obj.consoleID, "wow", "consoleID is set by consoleInstance");
+        is(obj.prefix, "_PREFIX_", "prefix is set by consoleInstance");
         ++this.count;
       } else if (obj.innerID == "LEVEL") {
         // Nothing special... just we don't want to see 'invisible' messages.
         is(obj.ID, "jsm", "ID and InnerID are correctly set.");
         is(obj.arguments[0], "Hello world!", "Message matches");
+        is(obj.prefix, "", "prefix is empty by default");
         ++this.count;
       }
 
       if (this.count == 4) {
         is(dumpCalled, 2, "Dump has been called!");
         SpecialPowers.removeObserver(this, "console-api-log-event");
         SimpleTest.finish();
       }
--- a/dom/webidl/Console.webidl
+++ b/dom/webidl/Console.webidl
@@ -73,16 +73,17 @@ dictionary ConsoleEvent {
   // lazily.  Note that we're not making this whole thing an interface because
   // consumers expect to see own properties on it, which would mean making the
   // props unforgeable, which means lots of JSFunction allocations.  Maybe we
   // should fix those consumers, of course....
   // sequence<ConsoleStackEntry> stacktrace;
   DOMString groupName = "";
   any timer = null;
   any counter = null;
+  DOMString prefix = "";
 };
 
 // Event for profile operations
 dictionary ConsoleProfileEvent {
   DOMString action = "";
   sequence<any> arguments;
 };