List icon Contents

Posted on January 28, 2017

JxBrowser 6.13

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, UIEvent, MouseEvent, and KeyEvent DOM events. To dispatch an event use the DOMEventTarget.dispatchEvent(DOMEvent event) method.

WebRTC IP handling policy

The 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 WebRTCIPHandlingPolicy enum.

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.

Improvements

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.

Fixes

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 BrowserView lost focus.
  • 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 DownloadItem.setDestinationFile() is ignored.
  • The issue when mouse clicks are ignored in dropdowns and are not recognized by some JavaScript libraries such as Hammer.js in 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 dropdowns, after disposing and creating Browser instances, on Windows platforms with HiDPI monitors. There were several root causes of the rendering issues. All of them are fixed in this version.

Write us at customer-care@teamdev.com to download JxBrowser 6.13.