first Thanks a lot for your project, CEF is perfect and brings everything . I hope to bring with my stuff no problems to you.
I get it more and more stable step by step and plan to finish this year finally. Launched a few years ago, but went down again for a time.
The use of Kodi as a binary addon unfortunately required a few changes to the CEF. In Kodi, this addon is opened as a dll and not as a stand-alone app. The subprocesses, on the other hand, are then executed as EXE.
I had to make the following changes to use it as a Kodi addon on Windows and Linux:
- Oversteer the Chromium path with kodi_addon_dir_path in addition to CefSettings (worked on Linux, Windows and partly on Mac)(Mac still in todo)
- Enabling libcef to be loaded on Linux with cef_load_library (dlopen away).
- Querying Chromium whether root rights are necessary for sandbox under Linux
- Took some of the ARM processor-dependent Chromium patches from Ubuntu (but not yet fully tested)
- Forcing "libcef_dll_wrapper" to static, Kodi's addon CMake generates it otherwise as shared.
There are also a few other little things in it but try to take them more and more and keep the code the same with original.
Therefore, I also plan to bring some pull requests soon.
Here is the Kodi addon directory structure under Windows, but this must also be built on Linux and Mac and dignity downloaded as a ZIP by users:
- Code: Select all
addon.xml
chrome_elf.dll
d3dcompiler_47.dll
icudtl.dat
kodichromium.exe
libcef.dll
libEGL.dll
libGLESv2.dll
natives_blob.bin
snapshot_blob.bin
v8_context_snapshot.bin
web.browser.chromium.dll
./resources:
cef.pak
cef_100_percent.pak
cef_200_percent.pak
cef_extensions.pak
devtools_resources.pak
icon.png
settings.xml
./resources/locales:
am.pak
...
zh-TW.pak
./resources/shaders/GL/1.2:
frag.glsl
vert.glsl
./resources/shaders/GL/1.5:
frag.glsl
vert.glsl
./resources/shaders/GLES:
frag.glsl
vert.glsl
./resources/skins/skin.estuary/xml:
BrowserDialogKeyboard.xml
DialogCertificateError.xml
DialogCookies.xml
DialogDownloads.xml
./swiftshader:
libEGL.dll
libGLESv2.dll
Whether this would then work on iOS and Android, I do not know yet. The settings are stored in a Kodi user folder.
Here the used CEF:
https://github.com/kodi-web/cef (Branch kodi to your master and branch 3729-ForKodi to 3729.
Changes are still ugly but want to clean it up,
Here the used Kodi addon:
https://github.com/AlwinEsch/web.browser.chromium
Questions:
- Can this chromium path override by kodi_addon_dir_path be somehow avoided?
Saw e.g. under OS X a completely different structure is used, so I can think of no alternative.
Not complete sure that "PathService::Override" is enough, seen on some Chromium places special "#ifdefs" where other ways becomes used.
- Is it for you OK to allow dlopen way also under Linux?
- Is "libcef_dll_wrapper" in all cases static? Or somewhere as shared lib? Have forced it currently under "libcef_dll/CMakeLists.txt.in" to static.
General Question:
- Can the chromium ffmpeg stream player be somehow stopped by CEF? Goes around the time of unloading and quit, e.g. prevent the sending of the audio stream at this time.
EDIT:
Have forgot a bit viewtopic.php?f=6&t=13075, I try again now your note there.