1283712 - Part 11.1: Show notes in devtools console.

This commit is contained in:
Gaming4JC
2019-06-09 14:52:19 -04:00
committed by Roy Tam
parent 700a57c289
commit 9f71d02fcf
7 changed files with 87 additions and 4 deletions
@@ -34,6 +34,7 @@ function EvaluationResult(props) {
id: messageId,
exceptionDocURL,
frame,
notes,
} = message;
let messageBody;
@@ -57,6 +58,7 @@ function EvaluationResult(props) {
serviceContainer,
exceptionDocURL,
frame,
notes,
};
return Message(childProps);
}
@@ -44,6 +44,7 @@ function PageError(props) {
stacktrace,
frame,
exceptionDocURL,
notes,
} = message;
const childProps = {
@@ -62,6 +63,7 @@ function PageError(props) {
stacktrace,
serviceContainer,
exceptionDocURL,
notes,
};
return Message(childProps);
}
@@ -47,6 +47,10 @@ const Message = createClass({
onViewSourceInDebugger: PropTypes.func.isRequired,
sourceMapService: PropTypes.any,
}),
notes: PropTypes.arrayOf(PropTypes.shape({
messageBody: PropTypes.string.isRequired,
frame: PropTypes.any,
})),
},
getDefaultProps: function () {
@@ -90,6 +94,7 @@ const Message = createClass({
serviceContainer,
dispatch,
exceptionDocURL,
notes,
} = this.props;
topLevelClasses.push("message", source, type, level);
@@ -127,6 +132,29 @@ const Message = createClass({
});
}
let notesNodes;
if (notes) {
notes.map(note => dom.span(
{ className: "message-flex-body error-note" },
dom.span({ className: "message-body devtools-monospace" },
"note: " + note.messageBody
),
dom.span({ className: "message-location devtools-monospace" },
note.frame ? FrameView({
frame: note.frame,
onClick: serviceContainer
? serviceContainer.onViewSourceInDebugger
: undefined,
showEmptyPathAsHost: true,
sourceMapService: serviceContainer
? serviceContainer.sourceMapService
: undefined
}) : null
)));
} else {
notesNodes = [];
}
const repeat = this.props.repeat ? MessageRepeat({repeat: this.props.repeat}) : null;
// Configure the location.
@@ -167,7 +195,8 @@ const Message = createClass({
repeat,
location
),
attachment
attachment,
...notesNodes
)
);
}
@@ -126,6 +126,15 @@ function matchSearchFilters(message, filters) {
|| (message.parameters !== null
&& message.parameters.join("").toLocaleLowerCase()
.includes(text.toLocaleLowerCase()))
// Look for a match in notes.
|| (Array.isArray(message.notes) && message.notes.some(note =>
// Look for a match in location.
isTextInFrame(text, note.frame)
// Look for a match in messageBody.
|| (note.messageBody !== null
&& note.messageBody.toLocaleLowerCase()
.includes(text.toLocaleLowerCase()))
))
);
}
@@ -38,6 +38,7 @@ exports.ConsoleMessage = Immutable.Record({
groupId: null,
exceptionDocURL: null,
userProvidedStyles: null,
notes: null,
});
exports.NetworkEventMessage = Immutable.Record({
@@ -165,6 +165,7 @@ function transformPacket(packet) {
stacktrace: pageError.stacktrace ? pageError.stacktrace : null,
frame,
exceptionDocURL: pageError.exceptionDocURL,
notes: pageError.notes,
});
}
@@ -185,7 +186,8 @@ function transformPacket(packet) {
exceptionMessage: messageText,
exceptionDocURL,
frame,
result: parameters
result: parameters,
notes,
} = packet;
const level = messageText ? MESSAGE_LEVEL.ERROR : MESSAGE_LEVEL.LOG;
@@ -197,6 +199,7 @@ function transformPacket(packet) {
parameters,
exceptionDocURL,
frame,
notes,
});
}
}
+39 -2
View File
@@ -888,7 +888,8 @@ WebConsoleActor.prototype =
let evalResult = evalInfo.result;
let helperResult = evalInfo.helperResult;
let result, errorDocURL, errorMessage, errorGrip = null, frame = null;
let result, errorDocURL, errorMessage, errorNotes = null, errorGrip = null,
frame = null;
if (evalResult) {
if ("return" in evalResult) {
result = evalResult.return;
@@ -943,6 +944,23 @@ WebConsoleActor.prototype =
};
}
} catch (ex) {}
try {
let notes = error.errorNotes;
if (notes && notes.length) {
errorNotes = [];
for (let note of notes) {
errorNotes.push({
messageBody: this._createStringGrip(note.message),
frame: {
source: note.fileName,
line: note.lineNumber,
column: note.columnNumber,
}
});
}
}
} catch (ex) {}
}
}
@@ -967,6 +985,7 @@ WebConsoleActor.prototype =
exceptionDocURL: errorDocURL,
frame,
helperResult: helperResult,
notes: errorNotes,
};
},
@@ -1500,6 +1519,23 @@ WebConsoleActor.prototype =
lineText = lineText.substr(0, DebuggerServer.LONG_STRING_INITIAL_LENGTH);
}
let notesArray = null;
let notes = aPageError.notes;
if (notes && notes.length) {
notesArray = [];
for (let i = 0, len = notes.length; i < len; i++) {
let note = notes.queryElementAt(i, Ci.nsIScriptErrorNote);
notesArray.push({
messageBody: this._createStringGrip(note.errorMessage),
frame: {
source: note.sourceName,
line: note.lineNumber,
column: note.columnNumber,
}
});
}
}
return {
errorMessage: this._createStringGrip(aPageError.errorMessage),
errorMessageName: aPageError.errorMessageName,
@@ -1516,7 +1552,8 @@ WebConsoleActor.prototype =
strict: !!(aPageError.flags & aPageError.strictFlag),
info: !!(aPageError.flags & aPageError.infoFlag),
private: aPageError.isFromPrivateWindow,
stacktrace: stack
stacktrace: stack,
notes: notesArray,
};
},