1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/ */
4 ChromeUtils.defineESModuleGetters(globalThis, {
5 SyncedTabs: "resource://services-sync/SyncedTabs.sys.mjs",
8 const SYNCED_URI = syncedTabsData1[0].tabs[1].url;
10 add_task(async function test_keyboard_focus() {
11 await SpecialPowers.pushPrefEnv({
12 set: [["accessibility.tabfocus", 7]],
15 await withFirefoxView({}, async browser => {
16 const { document } = browser.contentWindow;
18 const sandbox = setupRecentDeviceListMocks();
19 const syncedTabsMock = sandbox.stub(SyncedTabs, "getRecentTabs");
20 let mockTabs1 = getMockTabData(syncedTabsData1);
21 syncedTabsMock.returns(mockTabs1);
23 await setupListState(browser);
25 testVisibility(browser, {
27 "ol.synced-tabs-list": true,
31 let tabPickupEle = document.querySelector(".synced-tab-a");
32 document.querySelector(".page-section-header").focus();
34 EventUtils.synthesizeKey("KEY_Tab");
38 document.activeElement,
39 "The first tab pickup link is focused"
42 let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, SYNCED_URI);
43 EventUtils.synthesizeKey("KEY_Enter");
48 gBrowser.selectedBrowser.currentURI.displaySpec,
49 "We opened the tab via keyboard"
52 let sessionStorePromise = BrowserTestUtils.waitForSessionStoreUpdate(
55 gBrowser.removeTab(gBrowser.selectedTab);
56 await sessionStorePromise;
58 window.FirefoxViewHandler.openTab();
60 let recentlyClosedEle = await TestUtils.waitForCondition(() =>
61 document.querySelector(".closed-tab-li-main")
63 document.querySelectorAll(".page-section-header")[1].focus();
65 EventUtils.synthesizeKey("KEY_Tab");
69 document.activeElement,
70 "The recently closed tab is focused"
73 newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, SYNCED_URI);
74 EventUtils.synthesizeKey("KEY_Enter");
78 gBrowser.selectedBrowser.currentURI.displaySpec,
79 "We opened the tab via keyboard"
81 gBrowser.removeTab(gBrowser.selectedTab);
83 sessionStorePromise = TestUtils.topicObserved(
84 "sessionstore-closed-objects-changed"
86 SessionStore.forgetClosedTab(window, 0);
87 await sessionStorePromise;