mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug 1171298 - Show the ConsoleAPI message prefix in web/browser consoles. r=bgrins,Mossop
--HG-- extra : commitid : IP32ABnsILt extra : rebase_source : 53b2ac21e5f137e7739e3d895d639816baeb750f
This commit is contained in:
parent
dd1be2fe6e
commit
0967be5f0a
@ -47,7 +47,7 @@ branch.addObserver(SDK_LOG_LEVEL_PREF, logLevelObserver, true);
|
||||
function PlainTextConsole(print, innerID) {
|
||||
|
||||
let consoleOptions = {
|
||||
prefix: self.name + ": ",
|
||||
prefix: self.name,
|
||||
maxLogLevel: logLevel,
|
||||
dump: print,
|
||||
innerID: innerID,
|
||||
|
@ -683,6 +683,7 @@ Messages.Simple = function(message, options = {})
|
||||
this.severity = options.severity;
|
||||
this.location = options.location;
|
||||
this.timestamp = options.timestamp || Date.now();
|
||||
this.prefix = options.prefix;
|
||||
this.private = !!options.private;
|
||||
|
||||
this._message = message;
|
||||
@ -712,6 +713,12 @@ Messages.Simple.prototype = Heritage.extend(Messages.BaseMessage.prototype,
|
||||
*/
|
||||
location: null,
|
||||
|
||||
/**
|
||||
* Message prefix
|
||||
* @type string|null
|
||||
*/
|
||||
prefix: null,
|
||||
|
||||
/**
|
||||
* Tells if this message comes from a private browsing context.
|
||||
* @type boolean
|
||||
@ -809,6 +816,7 @@ Messages.Simple.prototype = Heritage.extend(Messages.BaseMessage.prototype,
|
||||
|
||||
rid.category = this.category;
|
||||
rid.severity = this.severity;
|
||||
rid.prefix = this.prefix;
|
||||
rid.private = this.private;
|
||||
rid.location = this.location;
|
||||
rid.link = this._link;
|
||||
@ -841,6 +849,13 @@ Messages.Simple.prototype = Heritage.extend(Messages.BaseMessage.prototype,
|
||||
icon.className = "icon";
|
||||
icon.title = l10n.getStr("severity." + this._severityNameCompat);
|
||||
|
||||
let prefixNode;
|
||||
if (this.prefix) {
|
||||
prefixNode = this.document.createElementNS(XHTML_NS, "span");
|
||||
prefixNode.className = "prefix devtools-monospace";
|
||||
prefixNode.textContent = this.prefix + ":";
|
||||
}
|
||||
|
||||
// Apply the current group by indenting appropriately.
|
||||
// TODO: remove this once bug 778766 is fixed.
|
||||
let indent = this._groupDepthCompat * COMPAT.GROUP_INDENT;
|
||||
@ -862,6 +877,9 @@ Messages.Simple.prototype = Heritage.extend(Messages.BaseMessage.prototype,
|
||||
this.element.appendChild(timestamp.element);
|
||||
this.element.appendChild(indentNode);
|
||||
this.element.appendChild(icon);
|
||||
if (prefixNode) {
|
||||
this.element.appendChild(prefixNode);
|
||||
}
|
||||
this.element.appendChild(body);
|
||||
if (repeatNode) {
|
||||
this.element.appendChild(repeatNode);
|
||||
@ -1280,6 +1298,7 @@ Messages.ConsoleGeneric = function(packet)
|
||||
timestamp: packet.timeStamp,
|
||||
category: "webdev",
|
||||
severity: CONSOLE_API_LEVELS_TO_SEVERITIES[packet.level],
|
||||
prefix: packet.prefix,
|
||||
private: packet.private,
|
||||
filterDuplicates: true,
|
||||
location: {
|
||||
|
@ -7,11 +7,11 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
let test = asyncTest(function*() {
|
||||
add_task(function*() {
|
||||
let storage = Cc["@mozilla.org/consoleAPI-storage;1"].getService(Ci.nsIConsoleAPIStorage);
|
||||
storage.clearEvents();
|
||||
|
||||
let console = Cu.import("resource://gre/modules/devtools/Console.jsm", {}).console;
|
||||
let {console} = Cu.import("resource://gre/modules/devtools/Console.jsm", {});
|
||||
console.log("bug861338-log-cached");
|
||||
|
||||
let hud = yield HUDService.toggleBrowserConsole();
|
||||
@ -134,4 +134,35 @@ let test = asyncTest(function*() {
|
||||
name: "bug851231prop",
|
||||
value: "bug851231value",
|
||||
}], { webconsole: hud });
|
||||
|
||||
yield HUDService.toggleBrowserConsole();
|
||||
});
|
||||
|
||||
add_task(function* test_prefix() {
|
||||
let storage = Cc["@mozilla.org/consoleAPI-storage;1"].getService(Ci.nsIConsoleAPIStorage);
|
||||
storage.clearEvents();
|
||||
|
||||
let {ConsoleAPI} = Cu.import("resource://gre/modules/devtools/Console.jsm", {});
|
||||
let consoleOptions = {
|
||||
maxLogLevel: "error",
|
||||
prefix: "Log Prefix",
|
||||
};
|
||||
let console2 = new ConsoleAPI(consoleOptions);
|
||||
console2.error("Testing a prefix");
|
||||
console2.log("Below the maxLogLevel");
|
||||
|
||||
let hud = yield HUDService.toggleBrowserConsole();
|
||||
|
||||
yield waitForMessages({
|
||||
webconsole: hud,
|
||||
messages: [{
|
||||
name: "cached console.error message",
|
||||
prefix: "Log Prefix:",
|
||||
severity: SEVERITY_ERROR,
|
||||
text: "Testing a prefix",
|
||||
}],
|
||||
});
|
||||
|
||||
hud.jsterm.clearOutput(true);
|
||||
yield HUDService.toggleBrowserConsole();
|
||||
});
|
||||
|
@ -1292,6 +1292,11 @@ function waitForMessages(aOptions)
|
||||
aRule.clickableElements = clickables;
|
||||
}
|
||||
|
||||
if ("prefix" in aRule) {
|
||||
let prefixNode = aElement.querySelector(".prefix");
|
||||
is(prefixNode && prefixNode.textContent, aRule.prefix, "Check prefix");
|
||||
}
|
||||
|
||||
let count = aRule.count || 1;
|
||||
if (!aRule.matched) {
|
||||
aRule.matched = new Set();
|
||||
|
@ -23,10 +23,11 @@ a {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.message > .prefix,
|
||||
.message > .timestamp {
|
||||
flex: none;
|
||||
color: GrayText;
|
||||
margin: 4px 6px 0 0;
|
||||
margin: 3px 6px 0 0;
|
||||
}
|
||||
|
||||
.message > .indent {
|
||||
|
@ -443,7 +443,7 @@ function stopTimer(aName, aTimestamp) {
|
||||
function dumpMessage(aConsole, aLevel, aMessage) {
|
||||
aConsole.dump(
|
||||
"console." + aLevel + ": " +
|
||||
aConsole.prefix +
|
||||
(aConsole.prefix ? aConsole.prefix + ": " : "") +
|
||||
aMessage + "\n"
|
||||
);
|
||||
}
|
||||
@ -533,6 +533,7 @@ function sendConsoleAPIMessage(aConsole, aLevel, aFrame, aArgs, aOptions = {})
|
||||
functionName: aFrame.functionName,
|
||||
timeStamp: Date.now(),
|
||||
arguments: aArgs,
|
||||
prefix: aConsole.prefix,
|
||||
};
|
||||
|
||||
consoleEvent.wrappedJSObject = consoleEvent;
|
||||
|
Loading…
Reference in New Issue
Block a user