Posted on January 28, 2017
JxBrowser 6.13 includes several new features such as functionality that allows programmatically triggering DOM events and configuring WebRTC IP handling policy. We also keep improving the library by implementing fixes requested by the users.
Creating and dispatching DOM events
In this version JxBrowser DOM Events API is extended with new methods and classes, which allow creating and triggering DOM events at the specified HTML element. Starting from v6.13 JxBrowser supports the Event,
KeyEvent DOM events. To dispatch an event use the
DOMEventTarget.dispatchEvent(DOMEvent event) method.
WebRTC IP handling policy
BrowserPreferences class is extended with the
setWebRTCIPHandlingPolicy(WebRTCIPHandlingPolicy policy) method that allows configuring WebRTC IP handling policy. The list of supported policies is available in the
No pain with OS detection in old JREs
The environment validation algorithm is improved. JxBrowser detects OS name and version using standard Java system properties such as “os.name” and “os.version”. Old JREs such as 1.6 do not recognize modern operating systems and detect them as “Windows NT (unknown)” which leads to the “com.teamdev.jxbrowser.chromium.internal.EnvironmentException: Unsupported operating system. Supported OS: Windows 7, 8, 10, Windows Server 2008 R2, 2012, 2016, macOS 10.9+ & Linux. Current OS: Windows NT (unknown), version: 6.2” exception. The workaround was to manually set “os.name” to a string that contains supported operating system name such as “Windows 7” or “Windows Server 2016”. This workaround was not convenient for JxBrowser customers.
In this update we made environment validation less strong. Now, JxBrowser checks only minimal supported OS and JRE version. It allows using the library with old JREs such as 1.6 on modern operating systems such as Windows Server 2016 without any workarounds or manipulations with the “os.name” system properties.
The following functionality got better in v6.13:
- JAWS support in heavyweight rendering mode.
- Memory usage on Windows, macOS and Linux platforms. We discovered and resolved several memory leaks related to lightweight rendering mode, virtual memory usage, internal IPC implementation, JNI code, etc.
Here’s what has been resolved in this update:
- The deadlock issue during drag and drop on macOS and Windows platforms in both Swing and JavaFX views. It was caused by a logical error in drag and drop implementation on Java side in lightweight rendering mode.
- The regression issue when mouse and keyboard events are not fired in heavyweight rendering mode is fixed. The issue arose after upgrade to Chromium 55. Now, this functionality works exactly as in previous JxBrowser versions based on previous Chromium builds.
- The issue when the onblur event is not fired when
- The issue when the “java.lang.IllegalArgumentException: The certificateStr cannot be null or empty” exception is thrown when loading HTTPS web pages.
- The regression issue when
Hammer.jsin the lightweight rendering mode is resolved. It was a regression issue after upgrade to Chromium 55. Now, this functionality works as expected.
- This update addresses the rendering issues on macOS and Windows in lightweight rendering mode in both Swing and JavaFX views. The rendering issues used to happen during resizing browser view, displaying drop downs, after disposing and creating
Browserinstances, on Windows platforms with HiDPI monitors. There were several root causes of the rendering issues. All of them are fixed in this version.