Bug 1383208 - Allow for null functionName in console messages;r=baku
MozReview-Commit-ID: 47O6kPQ3W8o
--- a/devtools/client/webconsole/test/browser_console.js
+++ b/devtools/client/webconsole/test/browser_console.js
@@ -62,16 +62,22 @@ function consoleOpened(hud) {
Cu.nukeSandbox(sandbox);
// Add a message from a content window.
content.console.log("bug587757b");
// Test eval.
hud.jsterm.execute("document.location.href");
+ // Test eval frame script
+ hud.jsterm.execute(`
+ gBrowser.selectedBrowser.messageManager.loadFrameScript('data:application/javascript,console.log("framescript-message")', false);
+ "framescript-eval";
+ `);
+
// Check for network requests.
let xhr = new XMLHttpRequest();
xhr.onload = () => console.log("xhr loaded, status is: " + xhr.status);
xhr.open("get", TEST_URI, true);
xhr.send();
// Check for xhr error.
let xhrErr = new XMLHttpRequest();
@@ -124,16 +130,28 @@ function consoleOpened(hud) {
},
{
name: "jsterm eval result",
text: "browser.xul",
category: CATEGORY_OUTPUT,
severity: SEVERITY_LOG,
},
{
+ name: "jsterm eval result 2",
+ text: "framescript-eval",
+ category: CATEGORY_OUTPUT,
+ severity: SEVERITY_LOG,
+ },
+ {
+ name: "frame script message",
+ text: "framescript-message",
+ category: CATEGORY_WEBDEV,
+ severity: SEVERITY_LOG,
+ },
+ {
name: "exception message",
text: "foobarExceptionBug587757",
category: CATEGORY_JS,
severity: SEVERITY_ERROR,
},
{
name: "network message",
text: "test-console.html",
--- a/toolkit/components/processsingleton/ContentProcessSingleton.js
+++ b/toolkit/components/processsingleton/ContentProcessSingleton.js
@@ -54,18 +54,18 @@ ContentProcessSingleton.prototype = {
}
case "console-api-log-event": {
let consoleMsg = subject.wrappedJSObject;
let msgData = {
level: consoleMsg.level,
filename: consoleMsg.filename.substring(0, MSG_MGR_CONSOLE_INFO_MAX),
lineNumber: consoleMsg.lineNumber,
- functionName: consoleMsg.functionName.substring(0,
- MSG_MGR_CONSOLE_INFO_MAX),
+ functionName: consoleMsg.functionName &&
+ consoleMsg.functionName.substring(0, MSG_MGR_CONSOLE_INFO_MAX),
timeStamp: consoleMsg.timeStamp,
addonId: consoleMsg.addonId,
arguments: [],
};
// We can't send objects over the message manager, so we sanitize
// them out, replacing those arguments with "<unavailable>".
let unavailString = "<unavailable>";