Bug 1306124 - Emit consistent args to new-messages for damp support with new frontend;r=linclark
MozReview-Commit-ID: 23PmnreOeMB
--- 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);
},