diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2023-09-13 18:39:01 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2023-09-13 18:39:01 +0200 |
| commit | 4a191e8036581893bf5f4cfb284770d1bfe9a807 (patch) | |
| tree | abbf7be12b65b56c9b6a11861fd96ad406ad4590 /safari/Junction Extension/SafariWebExtensionHandler.swift | |
| parent | 06b7617a863d00dbcc91d1e46f09942c6aad366e (diff) | |
Add safari code
Diffstat (limited to 'safari/Junction Extension/SafariWebExtensionHandler.swift')
| -rw-r--r-- | safari/Junction Extension/SafariWebExtensionHandler.swift | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/safari/Junction Extension/SafariWebExtensionHandler.swift b/safari/Junction Extension/SafariWebExtensionHandler.swift new file mode 100644 index 0000000..58f680c --- /dev/null +++ b/safari/Junction Extension/SafariWebExtensionHandler.swift @@ -0,0 +1,38 @@ +// +// SafariWebExtensionHandler.swift +// Junction Extension +// +// Created by Ruben Beltran del Rio on 9/13/23. +// + +import SafariServices +import os.log + +class SafariWebExtensionHandler: NSObject, NSExtensionRequestHandling { + + func beginRequest(with context: NSExtensionContext) { + let request = context.inputItems.first as? NSExtensionItem + + let profile: UUID? + if #available(iOS 17.0, macOS 14.0, *) { + profile = request?.userInfo?[SFExtensionProfileKey] as? UUID + } else { + profile = request?.userInfo?["profile"] as? UUID + } + + let message: Any? + if #available(iOS 17.0, macOS 14.0, *) { + message = request?.userInfo?[SFExtensionMessageKey] + } else { + message = request?.userInfo?["message"] + } + + os_log(.default, "Received message from browser.runtime.sendNativeMessage: %@ (profile: %@)", String(describing: message), profile?.uuidString ?? "none") + + let response = NSExtensionItem() + response.userInfo = [ SFExtensionMessageKey: [ "echo": message ] ] + + context.completeRequest(returningItems: [ response ], completionHandler: nil) + } + +} |