--- a/mail/components/extensions/parent/ext-messages.js
+++ b/mail/components/extensions/parent/ext-messages.js
@@ -337,20 +337,22 @@ this.messages = class extends ExtensionA
context.extension
);
},
async update(messageId, newProperties) {
let msgHdr = messageTracker.getMessage(messageId);
if (!msgHdr) {
return;
}
- const msgs = Cc["@mozilla.org/array;1"].createInstance(
+ // Stopgap for nsIArray removal (Bug 1612239).
+ const msgsArray = Cc["@mozilla.org/array;1"].createInstance(
Ci.nsIMutableArray
);
- msgs.appendElement(msgHdr);
+ msgsArray.appendElement(msgHdr);
+ let msgs = [msgHdr];
if (newProperties.read !== null) {
msgHdr.folder.markMessagesRead(msgs, newProperties.read);
}
if (newProperties.flagged !== null) {
msgHdr.folder.markMessagesFlagged(msgs, newProperties.flagged);
}
if (newProperties.junk !== null) {
@@ -360,20 +362,20 @@ this.messages = class extends ExtensionA
msgHdr.folder.setJunkScoreForMessages(msgs, score);
}
if (Array.isArray(newProperties.tags)) {
let currentTags = msgHdr.getStringProperty("keywords").split(" ");
for (let { key: tagKey } of MailServices.tags.getAllTags()) {
if (newProperties.tags.includes(tagKey)) {
if (!currentTags.includes(tagKey)) {
- msgHdr.folder.addKeywordsToMessages(msgs, tagKey);
+ msgHdr.folder.addKeywordsToMessages(msgsArray, tagKey);
}
} else if (currentTags.includes(tagKey)) {
- msgHdr.folder.removeKeywordsFromMessages(msgs, tagKey);
+ msgHdr.folder.removeKeywordsFromMessages(msgsArray, tagKey);
}
}
}
},
async move(messageIds, destination) {
return moveOrCopyMessages(messageIds, destination, true);
},
async copy(messageIds, destination) {