Bug 1306124 - Emit consistent args to new-messages for damp support with new frontend;r=linclark draft
authorBrian Grinstead <bgrinstead@mozilla.com>
Mon, 22 Aug 2016 14:00:16 -0700
changeset 418657 fbf127dbac087e97cb2dc4c7fbddac2ff974c1f4
parent 418453 f148d84038400a368315d1d0391ed0ea498ca676
child 418658 5afa6e769bca55d55306b05bd4b65c3c2dc73668
push id30740
push userbgrinstead@mozilla.com
push dateWed, 28 Sep 2016 21:30:15 +0000
reviewerslinclark
bugs1306124
milestone52.0a1
Bug 1306124 - Emit consistent args to new-messages for damp support with new frontend;r=linclark MozReview-Commit-ID: 23PmnreOeMB
devtools/client/webconsole/new-console-output/test/mochitest/head.js
devtools/client/webconsole/webconsole.js
--- a/devtools/client/webconsole/new-console-output/test/mochitest/head.js
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/head.js
@@ -47,26 +47,29 @@ var openNewTabAndConsole = Task.async(fu
  * @param object options
  *        - hud: the webconsole
  *        - messages: Array[Object]. An array of messages to match. Current supported options:
  *            - text: Exact text match in .message-body
  */
 function waitForMessages({ hud, messages }) {
   return new Promise(resolve => {
     let numMatched = 0;
-    let receivedLog = hud.ui.on("new-messages", function messagesReceieved(e, newMessage) {
+    let receivedLog = hud.ui.on("new-messages", function messagesReceieved(e, newMessages) {
       for (let message of messages) {
         if (message.matched) {
           continue;
         }
 
-        if (newMessage.node.querySelector(".message-body").textContent == message.text) {
-          numMatched++;
-          message.matched = true;
-          info("Matched a message with text: " + message.text + ", still waiting for " + (messages.length - numMatched) + " messages");
+        for (let newMessage of newMessages) {
+          if (newMessage.node.querySelector(".message-body").textContent == message.text) {
+            numMatched++;
+            message.matched = true;
+            info("Matched a message with text: " + message.text + ", still waiting for " + (messages.length - numMatched) + " messages");
+            break;
+          }
         }
 
         if (numMatched === messages.length) {
           hud.ui.off("new-messages", messagesReceieved);
           resolve(receivedLog);
           return;
         }
       }
--- a/devtools/client/webconsole/webconsole.js
+++ b/devtools/client/webconsole/webconsole.js
@@ -3265,20 +3265,20 @@ WebConsoleConnectionProxy.prototype = {
    * Dispatch a message add on the new frontend and emit an event for tests.
    */
   dispatchMessageAdd: function(packet) {
     this.webConsoleFrame.newConsoleOutput.dispatchMessageAdd(packet);
 
     // Return the last message in the DOM as the message that was just dispatched. This may not
     // always be true in the case of filtered messages, but it's close enough for our tests.
     let messageNodes = this.webConsoleFrame.experimentalOutputNode.querySelectorAll(".message");
-    this.webConsoleFrame.emit("new-messages", {
+    this.webConsoleFrame.emit("new-messages", new Set([{
       response: packet,
       node: messageNodes[messageNodes.length - 1],
-    });
+    }]));
   },
 
   /**
    * Batched dispatch of messages.
    */
   dispatchMessagesAdd: function(packets) {
     this.webConsoleFrame.newConsoleOutput.dispatchMessagesAdd(packets);
   },