Framework linking and loading changes on macOS starting with 3538 branch.

2,577 views
Skip to first unread message

Marshall Greenblatt

unread,
Dec 26, 2018, 11:42:22 AM12/26/18
to CEF Announce
CEF framework linking and loading on macOS has changed starting with 3538 branch as described below. These changes are necessary to support Chromium's V2 sandbox and must be made irrespective of whether the sandbox is enabled in your application.

The changes can be summarized as follows:

  • Executables should no longer directly link the CEF framework library. Instead, the libcef_dll_wrapper library now supports dynamic loading of CEF framework library at runtime via CefScopedLibraryLoader (using dlopen/dlsym internally). The CMake macros for fixing rpath have been removed because this is no longer necessary with dynamic loading.
  • Helper processes should link the new cef_sandbox library and initialize the V2 sandbox in the helper process using CefScopedSandboxContext.
  • Due to dynamic loading of the CEF framework, usage of the UnderlayOpenGLHostingWindow class must either be removed (the implementation is currently a no-op in Chromium) or loaded via NSClassFromString (example here).

Examples of the necessary changes to client applications can be found here and hereFor complete background and details see this issue.


To verify that the V2 sandbox is enabled you can look for the --seatbelt-client=[id] flag passed to the renderer process (using ps -ax | grep cefclient, for example).

Reply all
Reply to author
Forward
0 new messages