List icon Contents

Posted on December 16, 2024

JxBrowser 8.2.1

Linux touch screens support

JxBrowser now supports touch screens on Linux in both rendering modes: hardware accelerated and off-screen. You can input text, drag and drop elements, display context menus, and interact with the web content using touch gestures on Linux touch screens.

Cookie domain (RFC 6265)

We have improved the Cookie API that the domain attribute of the cookie to comply with the RFC 6265 standard Section 4.1.2.3. Now, when you set the domain attribute of the cookie, JxBrowser will automatically add the leading dot to the domain name if it is not present. For example, if you set the domain attribute to example.com, JxBrowser will add the leading dot and set the domain attribute to .example.com to comply with the standard.

Media capturing in Chrome extensions

Now, the Chrome extensions like Loom can access the chrome.desktopCapture.chooseDesktopMedia API when running inside JxBrowser to capture the screen, window, or browser media streams.

Chromium 131.0.6778.140

We upgraded Chromium to a newer version, which introduces 10 security fixes, including:

For the complete list of Chromium fixes and improvements since the previous Chromium upgrade please visit the product blog posts for the following versions:

End of Rosetta 2 support

Starting from this version, JxBrowser no longer supports running Chromium x64 binaries on Macs with Apple silicon using Rosetta 2. We recommend using the native ARM64 version of the JxBrowser Chromium binaries packaged in the jxbrowser-mac-arm.jar file. You can still run JxBrowser using Java x64, but the library will now search for the native ARM64 version of the Chromium binaries.

The main reason for this change is that Chromium x64 binaries running on Apple silicon using Rosetta 2 have significant performance issues that make the browsing experience unacceptable.

Breaking changes

Public API

In this version, we moved all the enums inside the com.teamdev.jxbrowser.cast.rpc.* package to the com.teamdev.jxbrowser.cast.* package. So, if you use the CastMode, ResultCode, or MediaReceiverState enum in your code, you need to update the import statements to the new package.

System properties

JxBrowser supports a number of system properties that you can use to configure the library behavior. In this version we renamed several system properties to make them more consistent and easier to understand.

Renamed system properties:

  • jxbrowser.use.native.keyboard.input -> jxbrowser.native.keyboard.input.enabled
  • jxbrowser.jsaccessible.off -> jxbrowser.jsaccessible.disabled
  • jxbrowser.chromium.verification.off -> jxbrowser.chromium.binaries.verification.disabled
  • jxbrowser.disable.fork.extraction -> jxbrowser.jni.extraction.enabled
  • jxbrowser.nested.ui.message.loop.off -> jxbrowser.nested.ui.message.loop.disabled
  • jxbrowser.javafx.legacy.handle -> jxbrowser.javafx.jni.embedding.disabled
  • jxbrowser.linux.deps.check.off -> jxbrowser.linux.deps.check.disabled
  • jxbrowser.linux.touch.screen -> jxbrowser.linux.touch.screen.mode.enabled

Removed system properties:

  • jxbrowser.force.dpi.awareness. There’s no need in this system property since version 8.0.0.

JxBrowser will check if the old system properties are used during Engine initialization and throw IllegalStateException if they are detected. If you see the exception, then replace the old system properties with the new ones.

Quality enhancements

  • Optimized the memory usage when writing bytes to UrlRequestJob. In the previous versions, the written bytes were collected in the Chromium process memory until the job was completed and only then were sent to the client initiating the job. Now, the written bytes are immediately sent to the client side.
  • Disabled the BrowserMetrics *.pma files generation on Windows in the user data directory to avoid the disk space consumption. These files consist of the performance metrics data collected by the Chromium engine and are not used by JxBrowser.
  • Fixed the issue when the BrowserView SWT component scaled incorrectly on high DPI displays on Windows. It used to happen with SWT version 3.128.0 or newer in the hardware accelerated rendering mode.
  • Fixed the thread deadlock when displaying the BrowserView Swing component inside the PressKeyCallback callback.
  • The libtoolkit.dylib library included in both jxbrowser-mac.jar and jxbrowser-mac-arm.jar files has different names to avoid conflicts when assembling a fat JAR file.

Download JxBrowser 8.2.1

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

Sending...
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