Posted on December 15, 2020
JxBrowser 7.12.1
We are glad to announce a patch update with several important fixes and improvements.
Improvements
The
CFProcessPath
environment variable on macOS is now skipped when launching the Main Chromium process, preventing Chromium from finding its internal resources which results in failure to start. TheCFProcessPath
environment variable is used on macOS to make it possible to drag items onto the application’s dock icon for processing. Your Java application will still be able to use it.No
Advanced
button is now shown on the error page that is shown when you load an HTTPS web page with an invalid SSL certificate. Now the only way to load a web page with an invalid SSL certificate is to use theCertificateErrorCallback
as shown below:browser.set(CertificateErrorCallback.class, (params, tell) -> tell.allow());
The
jxbrowser.force.dpi.awareness
system property has been added. The presence of this property tells the library that the DPI awareness mode of the current Java process should be programmatically set toSystem
before launching the Main Chromium process.This property addresses the HiDPI issue in Java 8u211+. When creating an
Engine
instance before the UI toolkit is initialized, the Java and Chromium processes end up with different DPI awareness modes. This leads to the rendering issues in the HiDPI environments. It happens because starting from 8u211, Java does not enforce any DPI awareness mode to the applications via manifest like before. Since 8u211, Java startsunaware
and lets the application configure the DPI awareness mode programmatically during UI toolkit initialization.When the library runs the Chromium process, it does not know whether a UI toolkit is initialized and the DPI awareness mode is configured. It is important to know this in order to synchronize the modes between Java and Chromium processes. To bypass the issue we decided to set the Java DPI awareness mode programmatically if this property is set. In this case, we do not need to know whether a UI toolkit has been initialized or not. We can just set the mode and launch the Chromium process and the DPI awareness mode of Java and Chromium will be the same.
It is now allowed to access
LocalStorage
from JavaScript if the web page was loaded from a JAR archive.During
Engine
initialization Kaspersky shows a security warning that “Chromium is attempting to get access to webcam”. We updated the initialization flow so that the webcam functionality is initialized only when the web page requests access to it. It allows suppressing the warning dialog duringEngine
startup.
Fixed issues
- Chromium crash when loading
about:blank
afterhttp://localhost/any.xml
. - Chromium crash when loading a data URI to a non-main frame.
- Chromium crash when accessing content document of an
IFRAME
if loading content of theIFRAME
was canceled. - JVM crash when opening RPC connection on macOS and Linux.
- Dragging/selecting items inside a web page leading to browser becoming unresponsive or JVM crashing in the off-screen rendering mode on Windows and Linux.
- No keyboard modifiers passed when dispatching the
MouseMoved
events to the Chromium in the off-screen rendering mode. resulting in no keyboard modifiers received on the JavaScript side. - Thread deadlock when accessing the main frame of the currently loaded web page from the main SWT thread in the hardware accelerated rendering mode on Windows.
- Thread deadlock when accessing the URL of the currently loaded web page from the main SWT thread in the hardware accelerated rendering mode on Windows when displaying popups.
- Thread deadlock when accessing cookies from the main JavaFX thread in the hardware accelerated rendering mode on
Windows after closing
javafx.scene.control.TextInputDialog
. - Thread deadlock when frequently showing/hiding JavaFX
BrowserView
in the hardware accelerated rendering mode on Windows. - Invalid key codes in JavaScript for the
NumPad
keys in the off-screen rendering mode. - Invalid key codes in JavaScript for the
Enter
,Tab
,Backspace
keys when dispatching theKeyTyped
event in the hardware accelerated rendering mode on Swing. - Incorrect
KeyboardEvent.location
passed for theNumPad
,Left
, andRight
keys in the off-screen rendering mode. - Popups size and location calculated improperly when non-default DPI is set in the operating system.
- Not being able to access the content document of an
IFRAME
which loads a web page from another domain. - Memory leak in the Chromium Render process when working with the DOM and JavaScript objects in the different web pages using JxBrowser DOM and JavaScript API.
- Scrolling not working after SWT
BrowserView
is once hidden in the off-screen rendering mode. - Chromium window getting destroyed after JavaFX
Stage
is hidden with the embeddedBrowserView
in the hardware accelerated rendering mode on Linux. - JavaFX
BrowserView
dispatchingEnter
twice in the off-screen rendering mode. - Drag and Drop between JavaFX
BrowserView
and other JavaFX controls not working in the off-screen rendering mode on Linux for JavaFX older than 14th. - Drag and Drop on the web pages that use the custom drag data not working properly in the off-screen rendering mode.
- Drag and drop for links and text not working, when attempted more than once in JavaFX off-screen rendering mode.
- Black JavaFX
BrowserView
after hiding then showing in the off-screen rendering mode. - HTML slider not working in SWT
BrowserView
in the off-screen rendering mode. - Incorrect size of the popup that is displayed after suppressing the previous popup.
Download JxBrowser 7.12.1
Please share your email with us, and we'll send you download instructions.
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.
Follow @JxBrowserTeam to get notified of the library updates.
Subscribe to our RSS feed to get instant updates on new releases.