From 4dc8efd76cb2ff649cfcec5dfa88686ea79b4ee2 Mon Sep 17 00:00:00 2001 From: Gaming4JC Date: Sun, 9 Jun 2019 14:52:19 -0400 Subject: 1283712 - Part 11.1: Show notes in devtools console. --- .../components/message-types/evaluation-result.js | 2 ++ .../components/message-types/page-error.js | 2 ++ .../new-console-output/components/message.js | 31 +++++++++++++++++++++- .../new-console-output/selectors/messages.js | 9 +++++++ .../client/webconsole/new-console-output/types.js | 1 + .../new-console-output/utils/messages.js | 5 +++- 6 files changed, 48 insertions(+), 2 deletions(-) (limited to 'devtools/client/webconsole/new-console-output') diff --git a/devtools/client/webconsole/new-console-output/components/message-types/evaluation-result.js b/devtools/client/webconsole/new-console-output/components/message-types/evaluation-result.js index 992dc62cf..824bdb3fb 100644 --- a/devtools/client/webconsole/new-console-output/components/message-types/evaluation-result.js +++ b/devtools/client/webconsole/new-console-output/components/message-types/evaluation-result.js @@ -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); } diff --git a/devtools/client/webconsole/new-console-output/components/message-types/page-error.js b/devtools/client/webconsole/new-console-output/components/message-types/page-error.js index 77ea75ff7..c68b850bd 100644 --- a/devtools/client/webconsole/new-console-output/components/message-types/page-error.js +++ b/devtools/client/webconsole/new-console-output/components/message-types/page-error.js @@ -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); } diff --git a/devtools/client/webconsole/new-console-output/components/message.js b/devtools/client/webconsole/new-console-output/components/message.js index f36bff7e4..b3d206007 100644 --- a/devtools/client/webconsole/new-console-output/components/message.js +++ b/devtools/client/webconsole/new-console-output/components/message.js @@ -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 ) ); } diff --git a/devtools/client/webconsole/new-console-output/selectors/messages.js b/devtools/client/webconsole/new-console-output/selectors/messages.js index c4b1aee28..e405be2f8 100644 --- a/devtools/client/webconsole/new-console-output/selectors/messages.js +++ b/devtools/client/webconsole/new-console-output/selectors/messages.js @@ -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())) + )) ); } diff --git a/devtools/client/webconsole/new-console-output/types.js b/devtools/client/webconsole/new-console-output/types.js index 897ae5d3a..cb27aedab 100644 --- a/devtools/client/webconsole/new-console-output/types.js +++ b/devtools/client/webconsole/new-console-output/types.js @@ -38,6 +38,7 @@ exports.ConsoleMessage = Immutable.Record({ groupId: null, exceptionDocURL: null, userProvidedStyles: null, + notes: null, }); exports.NetworkEventMessage = Immutable.Record({ diff --git a/devtools/client/webconsole/new-console-output/utils/messages.js b/devtools/client/webconsole/new-console-output/utils/messages.js index f91209e9d..119bc7fba 100644 --- a/devtools/client/webconsole/new-console-output/utils/messages.js +++ b/devtools/client/webconsole/new-console-output/utils/messages.js @@ -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, }); } } -- cgit v1.2.3