DatL4g / KCEF

Kotlin implementation of jcefmaven with more modern setup and depending on JetBrains/jcef
https://datl4g.github.io/KCEF/
Apache License 2.0
48 stars 8 forks source link

Initialization fails on Ubuntu (23.10) #7

Open mikedawson opened 10 months ago

mikedawson commented 10 months ago

Expected behavior:

Initializing as per the example would download and initialize on Ubuntu (23.10) / OpenJDK 17:

e.g.

KCEF.init(builder = {
                                installDir(File("kcef-bundle"))
                                progress {
                                    onDownloading {
                                        println("KCEF downloading: $it to ${File("kcef-bundle").absolutePath}")
                                        downloading = max(it, 0F)
                                    }
                                    onInitialized {
                                        println("KCEF initialized!")
                                        initialized = true
                                    }
                                }
                                settings {
                                    cachePath = File("cache").absolutePath
                                }
                            }, onError = {
                                println("KCEF - ERROR!")
                                it?.printStackTrace()
                            }, onRestartRequired = {
                                restartRequired = true
                            })

Observed behavior:

KCEF downloading: 100.0 to /home/mike/StudioProjects/UstadMobile/app-desktop/kcef-bundle
JCEF(04:51:619): initialized stderr logger, severity=LOGSEVERITY_DEFAULT
JCEF_I(04:51:619): CefApp: set state NEW
JCEF_I(04:51:621): CefApp: set state INITIALIZING
JCEF_V(04:51:621): Initialize CefApp on Thread[CefInitialize-thread,5,main]
[0131/100451.688536:WARNING:policy_logger.cc(151)] :components/enterprise/browser/controller/chrome_browser_cloud_management_controller.cc(88) Could not create policy manager as CBCM is not enabled.
[0131/100451.699364:ERROR:browser_main_loop.cc(276)] GLib-GObject: cannot register existing type 'GdkDisplayManager'
[0131/100451.699388:ERROR:browser_main_loop.cc(276)] GLib: g_once_init_leave: assertion 'result != 0' failed
[0131/100451.699396:ERROR:browser_main_loop.cc(276)] GLib-GObject: g_object_new_with_properties: assertion 'G_TYPE_IS_OBJECT (object_type)' failed
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[0131/100451.868560:WARNING:gpu_memory_buffer_support_x11.cc(49)] dri3 extension not supported.

It seems like "GLib-GObject: cannot register existing type 'GdkDisplayManager'" is the important one. I have found discussion about this affecting Python https://github.com/JuliaGraphics/Gtk.jl/issues/192 .

When I attempt to use the browser (via the compose multiplatform webview), I get this:

JCEF_V(06:10:809): CefMessageRouter_N: org.cef.browser.CefMessageRouter_N@287b174: add delayed action addHandler
JCEF_E(06:10:830): CefBrowser_N: org.cef.browser.CefBrowserWr@2297a5f8: can't invoke native method 'setWindowVisibility' before native context initialized
JCEF_W(06:10:831): failed to retrieve platform window handle
JCEF_E(06:10:831): CefBrowser_N: org.cef.browser.CefBrowserWr@2297a5f8: can't invoke native method 'setParent' before native context initialized
JCEF_E(06:10:832): CefBrowser_N: org.cef.browser.CefBrowserWr@2297a5f8: can't invoke native method 'wasResized' before native context initialized
JCEF_V(06:10:834): CefMessageRouter_N: org.cef.browser.CefMessageRouter_N@3ecbb34a: add delayed action addHandler
JCEF_E(06:10:835): CefBrowser_N: org.cef.browser.CefBrowserWr@aac3d3a: can't invoke native method 'setWindowVisibility' before native context initialized
J
DatL4g commented 10 months ago

Works fine on Fedora and tested on Ubuntu, probably a graphics server issue