function findTabs(tabs) { var selection = []; if (searchBar.value != "") { for (let tab of tabs) { var title = tab.title; if (title.toLowerCase().includes(searchBar.value.toLowerCase())) { selection.push(tab); } } if (selection.length > 1) { logTabs(selection); errHandler.style.display = "none"; clearNodes(errHandler); } else { if (selection[0] != undefined) { searchBar.value = ""; errHandler.style.display = "none"; clearNodes(errHandler); if (selection[0].windowId == focusedWinID) { loadSelTab(selection[0].id); } else { browser.windows.update(selection[0].windowId, {focused: true}) .finally(loadSelTab(selection[0].id)); } getTabs(); } else { errHandler.style.display = "block"; errHandler.appendChild(notFoundText); } } } else { logTabs(tabs); } } function clearNodes(targetNode) { while (targetNode.firstChild) { targetNode.removeChild(targetNode.firstChild); } } function loadSelTab(id) { browser.tabs.update(id, { active: true }); } function searchTabs() { var elm = document.getElementById("searchMode"); var currentMode = (elm.getAttribute("searchwindowsmode") == "false"); clearNodes(listZone); storageArea.get("searchMode").then((results) => { if (Object.keys(results).length > 0) { var fileKeys = Object.keys(results); for (let fileKey of fileKeys) { var key = results[fileKey]; if (key) { tabsAction.query({}).then(findTabs, onError) .then(resetWinIndex, onError); } else { tabsAction.query({currentWindow: true}) .then(findTabs, onError) } } } }); }