From 4a191e8036581893bf5f4cfb284770d1bfe9a807 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Wed, 13 Sep 2023 18:39:01 +0200 Subject: Add safari code --- .../SafariWebExtensionHandler.swift | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 safari/Junction Extension/SafariWebExtensionHandler.swift (limited to 'safari/Junction Extension/SafariWebExtensionHandler.swift') 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) + } + +} -- cgit