From e12cce711c071dc055dd154110f7e21ec2368c84 Mon Sep 17 00:00:00 2001 From: Chad Scharf <3904944+cscharf@users.noreply.github.com> Date: Wed, 20 May 2020 10:01:58 -0400 Subject: [PATCH] Potential fix for swift nil unwrap exception --- .../SafariExtensionViewController.swift | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/safari/safari/SafariExtensionViewController.swift b/src/safari/safari/SafariExtensionViewController.swift index 41aab17003..6efc703cb3 100644 --- a/src/safari/safari/SafariExtensionViewController.swift +++ b/src/safari/safari/SafariExtensionViewController.swift @@ -101,10 +101,19 @@ class SafariExtensionViewController: SFSafariExtensionViewController, WKScriptMe let options: TabQueryOptions? = jsonDeserialize(json: m!.data) if options?.currentWindow ?? false { SFSafariApplication.getActiveWindow { win in - processWindowsForTabs(wins: [win!], options: options, complete: { tabs in - m!.responseData = jsonSerialize(obj: tabs) - self.replyMessage(message: m!) - }) + if win != nil { + processWindowsForTabs(wins: [win!], options: options, complete: { tabs in + m!.responseData = jsonSerialize(obj: tabs) + self.replyMessage(message: m!) + }) + } else { + SFSafariApplication.getAllWindows { wins in + processWindowsForTabs(wins: wins, options: options, complete: { tabs in + m!.responseData = jsonSerialize(obj: tabs) + self.replyMessage(message: m!) + }) + } + } } } else { SFSafariApplication.getAllWindows { wins in @@ -145,10 +154,12 @@ class SafariExtensionViewController: SFSafariExtensionViewController, WKScriptMe dismissPopover() replyMessage(message: m!) } else if command == "showPopover" { - SFSafariApplication.getActiveWindow { win in - win?.getToolbarItem(completionHandler: { item in - item?.showPopover() - }) + if popoverOpenCount <= 0 { + SFSafariApplication.getActiveWindow { win in + win?.getToolbarItem(completionHandler: { item in + item?.showPopover() + }) + } } } else if command == "isPopoverOpen" { m!.responseData = popoverOpenCount > 0 ? "true" : "false"