Posted on December 15, 2020
We are glad to announce a patch update with several important fixes and improvements.
CFProcessPathenvironment 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. The
CFProcessPathenvironment 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.
Advancedbutton 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 the
CertificateErrorCallbackas shown below:
browser.set(CertificateErrorCallback.class, (params, tell) -> tell.allow());
jxbrowser.force.dpi.awarenesssystem 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 to
Systembefore launching the Main Chromium process.
This property addresses the HiDPI issue in Java 8u211+. When creating an
Engineinstance 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 starts
unawareand 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
Engineinitialization 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 during
- Chromium crash when loading
- Chromium crash when loading a data URI to a non-main frame.
- Chromium crash when accessing content document of an
IFRAMEif loading content of the
- 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
- 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
- Thread deadlock when frequently showing/hiding JavaFX
BrowserViewin the hardware accelerated rendering mode on Windows.
NumPadkeys in the off-screen rendering mode.
Backspacekeys when dispatching the
KeyTypedevent in the hardware accelerated rendering mode on Swing.
KeyboardEvent.locationpassed for the
Rightkeys 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
IFRAMEwhich loads a web page from another domain.
- Scrolling not working after SWT
BrowserViewis once hidden in the off-screen rendering mode.
- Chromium window getting destroyed after JavaFX
Stageis hidden with the embedded
BrowserViewin the hardware accelerated rendering mode on Linux.
Entertwice in the off-screen rendering mode.
- Drag and Drop between JavaFX
BrowserViewand 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
BrowserViewafter hiding then showing in the off-screen rendering mode.
- HTML slider not working in SWT
BrowserViewin the off-screen rendering mode.
- Incorrect size of the popup that is displayed after suppressing the previous popup.
Subscribe to @JxBrowserTeam on Twitter to get notified of the library updates.