Posted on July 16, 2020

We are glad to announce the release of the new JxBrowser 7.9 with a few features and a lot of fixes and improvements!

What’s New

Disabling PDF Viewer

This version of JxBrowser allows disabling the built-in Chromium PDF Viewer. You can disable PDF Viewer if you would like to download PDF documents instead of displaying them in the PDF Viewer. The following example demonstrates how to do it:

engine.plugins().settings().disablePdfViewer();

Clearing HTTP Cache

You can now mark all HTTP cache entries stored in both disk and memory for deletion. The following example demonstrates how to clear all HTTP cache entries and wait until the entries are marked for deletion:

httpCache.clear().join();

Important: The HttpCache.clearDiskCache(Runnable) method is marked as @deprecated and will be removed in one of the next versions. Use the HttpCache.clear() method instead.

Overscroll History Navigation

JxBrowser now allows navigating back/forward with a left/right swipe on devices with the touch screen. By default, the overscroll navigation is disabled. You can enable it as follows:

browser.settings().enableOverscrollHistoryNavigation();

Improvements

  • Removed the about:blank web page from the list of inspectable pages when navigating to the localhost:<port> DevTools URL.
  • Removed the minimum size limitation of the BrowserView component on macOS and allowed resizing the component to the smallest size possible.
  • Now, you do not have to close Engine in different threads in JavaFX application like it was required before. So, the following approach is not required anymore:
      private static void close(Engine engine) {
          if (isMac()) {
              // On macOS the engine must be closed in UI thread
              engine.close();
          } else {
              // On Windows and Linux it must be closed in non-UI thread
              new Thread(engine::close).start();
          }
      }
    

Fixed issues

  • The OpenPopupCallback never called and, as a result, the popup never displayed when clicking a link with the rel='noopener noreferrer' attribute.
  • The java.lang.NullPointerException error when JavaFX BrowserView is embedded into the javafx.scene.control.Alert dialog.
  • The Swing Drag & Drop events blocked if a BrowserView is hidden before data drop.
  • The request permission dialog displayed when downloading multiple files.
  • The Chromium GPU crash when docking/undocking Swing BrowserView in NetBeans 11 window on Linux in the hardware accelerated rendering mode.
  • Swing BrowserView not resized properly when embedded into a JTabbedPane and the tabbed pane is being resized.
  • Closing Java window with at least one embedded BrowserView leading to unexpected closing of all Browser instances in the off-screen rendering mode on Windows.
  • Freeze when calling Browser.bitmap() in the off-screen rendering mode on Linux.
  • The BrowserView component displaying the window caption with the minimize, maximize, and close buttons for a short period of time in the off-screen rendering mode with disabled GPU and enabled transparent backgrounds on Windows.
  • The web form not being submitted if the file was set using the InputElement.file(String...) method.
  • The DOM change event not triggered when setting a file via the InputElement.file(String...) method.
  • The FrameLoadFailed event with the BLOCKED_BY_RESPONSE error is not fired when navigation inside an IFRAME fails because of the X-Frame-Options: sameorigin HTTP header.
  • The first loaded web page not rendered on Windows 7 and Windows Server 2008 R2 in the off-screen rendering mode.
  • The first loaded web page not rendered in JavaFX BrowserView if it becomes visible after the web page has been completely loaded in the corresponding Browser instance in the off-screen rendering mode.
  • The java.lang.IllegalStateException error when unfocusing SWT BrowserView when its corresponding Browser instance is already closed.
  • Thread deadlock when displaying multiple popups in the hardware accelerated rendering mode on Windows.
  • UrlRequest not having an ID when it is completed and destroyed.
  • The TitleChanged event not fired when navigating back/forward in the navigation history list.
  • The single-pixel white line in the fullscreen mode on Linux and the hardware accelerated rendering mode.
  • Angular on a web page not receiving the required DOM events when pressing Enter on a text field in the off-screen rendering mode.
  • Broken JavaScript animation because the library does not flush HTML canvas in the off-screen rendering mode with enabled transparent background on Windows.
  • Touchpad click causing Engine to crash on macOS when attached to a remote debugging URL.
  • Tooltips not displayed in the hardware accelerated rendering mode on Windows.
  • The IllegalStateException error when disposing SWT BrowserView asynchronously.
  • The IllegalStateException error when pressing Cmd+Q on macOS when mouse pointer is over JavaFX BrowserView.
  • Thread deadlock when closing Browser during disposal of another SWT component.
  • The Command key not being passed to a web page on macOS with JavaFX BrowserView.

Request evaluation license
Download JxBrowser 7.9

Go Top