Closed awmcclain closed 3 years ago
Ug. Silly me, when I had created a project for the GPU Helper, I had accidentally turned on App Sandboxing -- that caused the the dynamic loader to trip up (once I realized the sandbox logs to syslog) at the file level, which then prevents the sandbox from being reinitialized by any of the other processes.
Then I couldn't figure out why nothing would show up when the window loaded -- and it wasn't until i realized that I needed the ${PROJECT NAME} Helper (Renderer).app
subprocess (named exactly that way) in order to invoke correctly. I couldn't find anything in the CEF docs about that named subprocess distribution -- is that a CEFSwift thing?
I believe the "XXX Helper (Renderer)" is a relatively recent thing but if I look at any electron app right now (e.g. VSCode) they all have a "(Renderer)" subprocess. I'm not sure if it is a must, though.
Ah, yes, it is required -- https://groups.google.com/g/cef-announce/c/YK6CTvGNhlY (via the CEF forum)
I've copied over the C & swift app helpers into my own app -- but I keep running into:
SeatbeltExecServer: Failed to initialize sandbox: -1 Operation not permitted
when I call https://github.com/lvsti/CEF.swift/blob/df74c13691c7b0ec1bf8624d5875af2e31758d9d/Samples/CEFDemo/CEFDemo%20Helper/main.c#L24This is working for me in the demo, so I'm wondering if it might have to do with some linker flags or framework setup issues.
Also, what is the difference between all the different helpers? I notice that some of them are compiled as C only, and some of them (like the renderer) are using
SwiftHelper
.I know that CEF automatically looks for the helper app at
Frameworks/{$PROJECT_NAME} Helper.app
(unless you changeCEFSettings.browserSubprocessPath
). Is it doing some magic to choose each helper (i.e.CEFDemo Helper (GPU)
) based on their name? Are all of them needed?