Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import { BrowserTestUtils } from "resource://testing-common/BrowserTestUtils.sys.mjs";
/**
* Helper method to switch to a cards view with vertical layout.
*
* @param {Document} doc - The DOM document.
*/
export async function ensure_cards_view(doc) {
const about3Pane = doc.getElementById("tabmail").currentAbout3Pane;
const { threadTree } = about3Pane;
if (threadTree.getAttribute("rows") == "thread-card") {
return;
}
const switchedToCards = BrowserTestUtils.waitForAttribute(
"rows",
threadTree,
"thread-card"
);
Services.prefs.setIntPref("mail.pane_config.dynamic", 2);
Services.prefs.setIntPref("mail.threadpane.listview", 0);
await switchedToCards;
await new Promise(resolve => about3Pane.requestAnimationFrame(resolve));
}
/**
* Helper method to switch to a table view with classic layout.
*
* @param {Document} doc - The DOM document.
*/
export async function ensure_table_view(doc) {
const about3Pane = doc.getElementById("tabmail").currentAbout3Pane;
const { threadTree } = about3Pane;
if (threadTree.getAttribute("rows") == "thread-row") {
return;
}
const switchedToTable = BrowserTestUtils.waitForAttribute(
"rows",
threadTree,
"thread-row"
);
Services.prefs.setIntPref("mail.pane_config.dynamic", 0);
Services.prefs.setIntPref("mail.threadpane.listview", 1);
await switchedToTable;
await new Promise(resolve => about3Pane.requestAnimationFrame(resolve));
}