Releases

Contents

Posted on

JxBrowser 9.0.0

JxBrowser 9.0.0 introduces per-browser rendering modes, GraalVM native image support, and Chromium 147. Native input, which was previously an opt-in experimental feature, is now enabled by default.

This version does not introduce breaking changes.

Rendering mode per browser 

Previously, the rendering mode was fixed for the entire Engine. All browsers created from that engine shared the same mode, which made it impossible to share a profile between an off-screen and a hardware-accelerated browser.

In JxBrowser 9.0.0, you can specify the rendering mode for each Browser instance individually:

import static com.teamdev.jxbrowser.engine.RenderingMode.OFF_SCREEN;

var browser = engine.newBrowser(OFF_SCREEN);

Browsers created with Engine.newBrowser() or Profile.newBrowser() without arguments still use the engine’s default rendering mode. Popup browsers inherit the rendering mode of their parent browser.

Learn more in the Rendering guide.

GraalVM native image 

JxBrowser now supports building GraalVM native images. A new artifact, jxbrowser-native-image, bundles the GraalVM reachability metadata required for JxBrowser. It covers reflection and JNI configuration across the library. Add it to your project when you need native image support:

dependencies {
    implementation(jxbrowser.nativeImage)
}

Learn more in the Native image guide.

Native input by default 

In this version, native input is enabled by default. That is the mode of handling input that was introduced as an experimental feature in JxBrowser 7.39.0 and is now promoted to the default behavior. It is used in the OFF_SCREEN rendering mode, and the HARDWARE_ACCELERATED mode on macOS.

In the previous approach, JxBrowser read keyboard and mouse events from a Java UI toolkit and forwarded them to Chromium. In the native input mode, JxBrowser receives input events directly from the operating system.

To use the older approach, set the following VM parameter:

-Djxbrowser.native.input.enabled=false

New permission types 

The PermissionType enum has been extended with 19 new values to keep it in sync with Chromium, including PAYMENT_HANDLER, IDLE_DETECTION, DISPLAY_CAPTURE, SPEAKER_SELECTION, KEYBOARD_LOCK, POINTER_LOCK, AUTOMATIC_FULLSCREEN, LOCAL_NETWORK, LOOPBACK_NETWORK, GEOLOCATION_APPROXIMATE, and others.

Chromium 147.0.7727.117 

We upgraded Chromium to a newer version, which introduces 50 security fixes. Among them:

You can read more about it in the Chromium blog posts:

Quality enhancements 

  • Fixed an issue where native input dispatched mouse events even when BrowserView was disabled.
  • Fixed incorrect BrowserView positioning when a MenuBar is present in Compose Desktop, in the HARDWARE_ACCELERATED mode on Windows.

Download JxBrowser 9.0.0

Please share your email with us, and we'll send you download instructions.

Sending...
EmailBox Please check your inbox.

We were unable to send the email. Please use the direct link to download JxBrowser.

If you are a registered customer you don't need to do anything to use this update.

If you would like to evaluate the product, you need an evaluation license.

Get free 30-day trial