1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-22 03:03:43 +00:00

reload popup on open of safari app popover

This commit is contained in:
Kyle Spearrin
2019-08-16 20:46:19 -04:00
parent 42c44c381a
commit 6fe414ffbd
4 changed files with 13 additions and 5 deletions

View File

@@ -16,7 +16,7 @@ class SafariExtensionHandler: SFSafariExtensionHandler {
page.getPropertiesWithCompletionHandler { properties in
// NSLog("The extension received a message (\(messageName)) from a script injected into (\(String(describing: properties?.url))) with userInfo (\(userInfo ?? [:]))")
DispatchQueue.main.async {
SafariExtensionViewController.shared.replyMessageFromScript(msg: userInfo)
SafariExtensionViewController.shared.sendMessage(msg: userInfo)
}
}
}
@@ -35,5 +35,11 @@ class SafariExtensionHandler: SFSafariExtensionHandler {
override func popoverViewController() -> SFSafariExtensionViewController {
return SafariExtensionViewController.shared
}
override func popoverWillShow(in window: SFSafariWindow) {
DispatchQueue.main.async {
SafariExtensionViewController.shared.sendMessage(msg: ["command": "reloadPopup"])
}
}
}

View File

@@ -153,12 +153,12 @@ class SafariExtensionViewController: SFSafariExtensionViewController, WKScriptMe
webView.evaluateJavaScript("window.bitwardenSafariAppMessageReceiver(\(json));", completionHandler: nil)
}
func replyMessageFromScript(msg: [String : Any]?) {
func sendMessage(msg: [String : Any]?) {
if(webView == nil) {
return;
}
let newMsg = AppMessage()
newMsg.command = "cs_message"
newMsg.command = "app_message"
do {
let jsonData = try JSONSerialization.data(withJSONObject: msg as Any, options: [])
newMsg.data = String(data: jsonData, encoding: .utf8)