diff --git a/extension/safari/TabFS/TabFS Extension/SafariWebExtensionHandler.swift b/extension/safari/TabFS/TabFS Extension/SafariWebExtensionHandler.swift index a1ae4ff..e5a7b51 100644 --- a/extension/safari/TabFS/TabFS Extension/SafariWebExtensionHandler.swift +++ b/extension/safari/TabFS/TabFS Extension/SafariWebExtensionHandler.swift @@ -38,13 +38,13 @@ class SafariWebExtensionHandler: NSObject, NSExtensionRequestHandling { // need this one XPC call to actually initialize the service service?.upperCaseString("hello XPC") { response in os_log(.default, "Response from XPC service: %{public}@", response) - } - - // FIXME: report port back? - let response = NSExtensionItem() - response.userInfo = [ "message": [ "aResponse to": "moop" ] ] - context.completeRequest(returningItems: [response]) { (what) in - print(what) + + // FIXME: report port back? + let response = NSExtensionItem() + response.userInfo = [ "message": [ "aResponse to": "moop" ] ] + context.completeRequest(returningItems: [response]) { (what) in + print(what) + } } return diff --git a/extension/safari/TabFS/TabFS.xcodeproj/project.xcworkspace/xcuserdata/osnr.xcuserdatad/UserInterfaceState.xcuserstate b/extension/safari/TabFS/TabFS.xcodeproj/project.xcworkspace/xcuserdata/osnr.xcuserdatad/UserInterfaceState.xcuserstate index 93b8259..83f9da6 100644 Binary files a/extension/safari/TabFS/TabFS.xcodeproj/project.xcworkspace/xcuserdata/osnr.xcuserdatad/UserInterfaceState.xcuserstate and b/extension/safari/TabFS/TabFS.xcodeproj/project.xcworkspace/xcuserdata/osnr.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/extension/safari/TabFS/TabFSService/TabFSService.swift b/extension/safari/TabFS/TabFSService/TabFSService.swift index e49d80f..87321c1 100644 --- a/extension/safari/TabFS/TabFSService/TabFSService.swift +++ b/extension/safari/TabFS/TabFSService/TabFSService.swift @@ -34,7 +34,6 @@ class TabFSService: NSObject, TabFSServiceProtocol { var ws: NWListener! func startWs() { - // websocket server let port = NWEndpoint.Port(rawValue: 9991)! let parameters = NWParameters(tls: nil) parameters.allowLocalEndpointReuse = true @@ -56,9 +55,13 @@ class TabFSService: NSObject, TabFSServiceProtocol { var handleRequest: ((_ req: Data) -> Void)? ws.newConnectionHandler = { conn in conn.start(queue: .main) + handleRequest = { req in - conn.send(content: req, completion: .contentProcessed({ err in + let metaData = NWProtocolWebSocket.Metadata(opcode: .text) + let context = NWConnection.ContentContext(identifier: "context", metadata: [metaData]) + conn.send(content: req, contentContext: context, completion: .contentProcessed({ err in if err != nil { + os_log(.default, "%{public}@ error: %{public}@", String(data: req, encoding: .utf8) as! CVarArg, err!.debugDescription as CVarArg) // FIXME: ERROR } }))