From 205498ef3b84c5acfe7ee2a76e4085260bc7a3ef Mon Sep 17 00:00:00 2001
From: toasted-nutbread <toasted-nutbread@users.noreply.github.com>
Date: Sat, 19 Oct 2019 22:45:29 -0400
Subject: Validate chrome.windows exists before usage

---
 ext/bg/js/api.js | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/ext/bg/js/api.js b/ext/bg/js/api.js
index e8379d10..9ae7c841 100644
--- a/ext/bg/js/api.js
+++ b/ext/bg/js/api.js
@@ -367,21 +367,23 @@ async function apiFindTab(timeout, checkUrl) {
 }
 
 async function apiFocusTab(tab) {
-    const tabWindow = await new Promise((resolve) => {
-        chrome.windows.get(tab.windowId, {}, (tabWindow) => {
-            const e = chrome.runtime.lastError;
-            if (e) { reject(e); }
-            else { resolve(tabWindow); }
-        });
-    });
-    if (!tabWindow.focused) {
-        await new Promise((resolve, reject) => {
-            chrome.windows.update(tab.windowId, {focused: true}, () => {
+    if (typeof chrome.windows === 'object' && chrome.windows !== null) {
+        const tabWindow = await new Promise((resolve) => {
+            chrome.windows.get(tab.windowId, {}, (tabWindow) => {
                 const e = chrome.runtime.lastError;
                 if (e) { reject(e); }
-                else { resolve(); }
+                else { resolve(tabWindow); }
             });
         });
+        if (!tabWindow.focused) {
+            await new Promise((resolve, reject) => {
+                chrome.windows.update(tab.windowId, {focused: true}, () => {
+                    const e = chrome.runtime.lastError;
+                    if (e) { reject(e); }
+                    else { resolve(); }
+                });
+            });
+        }
     }
     await new Promise((resolve, reject) => {
         chrome.tabs.update(tab.id, {active: true}, () => {
-- 
cgit v1.2.3