Amaury Esparza
Amaury Esparza

Reputation: 1028

JXBrowser java.ipc.external=true VM argument

I'm wondering what exactly this argument do? and know about potencial downsides that this argument could cause.

I tried searching this VM argument on internet but I couldn't find anything of it.

Upvotes: 4

Views: 855

Answers (1)

Vladimir
Vladimir

Reputation: 2267

By default, on macOS JxBrowser initializes Chromium engine in Java process. It's required to support heavyweight rendering mode when Chromium window is embedded into Java frame. In macOS native window from one process (Chromium) cannot be embedded into a native window from another process (Java).

Initializing Chromium in Java process might cause deadlock issues on macOS. It's because SWT, JavaFX, and Chromium share the same Cocoa native thread in Java process.

The java.ipc.external=true VM option tells JxBrowser to initialize and run Chromium engine in separate native process. In this case Java and Chromium don't share Cocoa native thread. It allows solving deadlock issues on macOS platform.

As you may see, in this case heavyweight rendering mode cannot be used. So, in this case only lightweight rendering mode is used. This is the only downside of using this VM option.

Upvotes: 3

Related Questions