I am building an Android Studio plugin, and it would be really valuable to surface a webview inside a toolwindow. I am aware that Android Studio doesn’t provide JCEF bundled with their JDKs, and they haven’t for 4 years. So its probably not going to change anytime soon.
I want to avoid, if possible, recommending users to change their IDE JDK as this is not recommended by JetBrains or Android Studio.
I’ve found that the Flutter plugin (developed by google), uses a paid service JxBrowser as a fallback alternative in their Android Studio implementation. This seems like a bad sign to me.
In the earlier post the JFrog Maintainer mentions JCEFMaven, is this a viable alternative to the bundled Jetbrains JCEF? If it is, which features could be missing?
Hi Aidan,
I can’t answer the question of whether this is a viable alternative. We didn’t test it. I guess it technically possible to run other than JBCEF browsers.
Possible issues you may face trying to bring JCEF into your plugin:
Compatibility with JBCEF. Running 2 instances of a chromium browser within the same process most likely will result in a crash. So you won’t be able to run the browser from JCEFMaven if JBCEF is running and vice versa.
I think sandboxing will work only on Linux(if it’s needed)
There is some layer that integrates the browser into IJ platform. This won’t be available. I think the most important part here is offscreen rendering. That’s no necessary, the browser could work as a heavyweight component. But there are some issues with it.
The browser is a huge and quite complicated native dependency with all the consequences that follow.
As peace of advice I can add that maintaining such dependency could be quite costly. This should not break the existing platform functionality and stability. Simply speaking no JVM crashes, JBCEF should work. Practically, I think, it’s hardly possible with the browser.