Bug 1408845 - Release longString actors;r=bgrins. draft
authorNicolas Chevobbe <nchevobbe@mozilla.com>
Mon, 16 Oct 2017 09:55:50 +0200
changeset 680748 6fa120a8f3c6837f7b7877d5a873bae6790e8b1d
parent 680747 3100569824141538fc62144265aa951d7d04fc30
child 735956 c93120fa50cfa1e7108d7c98d37230155c532cc7
push id84612
push userbmo:nchevobbe@mozilla.com
push dateMon, 16 Oct 2017 08:21:05 +0000
reviewersbgrins
bugs1408845
milestone58.0a1
Bug 1408845 - Release longString actors;r=bgrins. MozReview-Commit-ID: H3Z1pp5vgUm
devtools/client/webconsole/new-console-output/reducers/messages.js
devtools/client/webconsole/new-console-output/test/store/release-actors.test.js
--- a/devtools/client/webconsole/new-console-output/reducers/messages.js
+++ b/devtools/client/webconsole/new-console-output/reducers/messages.js
@@ -475,27 +475,33 @@ function limitTopLevelMessageCount(state
 /**
  * Get an array of all the actors logged in a specific message.
  *
  * @param {Message} message: The message to get actors from.
  * @param {Record} state: The redux state.
  * @return {Array} An array containing all the actors logged in a message.
  */
 function getAllActorsInMessage(message, state) {
-  // Messages without argument cannot be associated with backend actors.
-  if (!message || !Array.isArray(message.parameters) || message.parameters.length === 0) {
-    return [];
+  const {
+    parameters,
+    messageText,
+  } = message;
+
+  let actors = [];
+  if (Array.isArray(parameters)) {
+    message.parameters.forEach(parameter => {
+      if (parameter.actor) {
+        actors.push(parameter.actor);
+      }
+    });
   }
 
-  const actors = [...message.parameters.reduce((res, parameter) => {
-    if (parameter.actor) {
-      res.push(parameter.actor);
-    }
-    return res;
-  }, [])];
+  if (messageText && messageText.actor) {
+    actors.push(messageText.actor);
+  }
 
   return actors;
 }
 
 /**
  * Returns total count of top level messages (those which are not
  * within a group).
  */
--- a/devtools/client/webconsole/new-console-output/test/store/release-actors.test.js
+++ b/devtools/client/webconsole/new-console-output/test/store/release-actors.test.js
@@ -86,18 +86,24 @@ describe("Release actor enhancer:", () =
       const secondMessageActor = packet.message.arguments[0].actor;
       dispatch(actions.messageAdd(packet));
 
       // Add an evaluation result message (see Bug 1408321).
       const evaluationResultPacket = stubPackets.get("new Date(0)");
       dispatch(actions.messageAdd(evaluationResultPacket));
       const thirdMessageActor = evaluationResultPacket.result.actor;
 
+      // Add a message with a long string messageText property.
+      const longStringPacket = stubPackets.get("TypeError longString message");
+      dispatch(actions.messageAdd(longStringPacket));
+      const fourthMessageActor = longStringPacket.pageError.errorMessage.actor;
+
       // Kick-off the actor release.
       dispatch(actions.messagesClear());
 
-      expect(releasedActors.length).toBe(3);
+      expect(releasedActors.length).toBe(4);
       expect(releasedActors).toInclude(firstMessageActor);
       expect(releasedActors).toInclude(secondMessageActor);
       expect(releasedActors).toInclude(thirdMessageActor);
+      expect(releasedActors).toInclude(fourthMessageActor);
     });
   });
 });