List icon Contents

Posted on December 23, 2022

JxBrowser 7.29

In this release, we upgrade Chromium to 108, introduce new API and improve configurability.

Chromium 108

We upgraded Chromium to 108.0.5359.125.

Among other fixes, this update contains 8 important security fixes.

Presentation API

We added support for JavaScript Presentation API.

When a JavaScript application starts the presentation, JxBrowser gives you a callback where you can select the receiving device or cancel the presentation:

browser.set(StartPresentationCallback.class, (params, tell) -> {
    MediaReceiver receiver = params.mediaReceivers().await(it -> {
        return it.supports(CastMode.PRESENTATION);
    });
    tell.start(receiver);
});

Casting API

It’s now possible to cast media content directly from JxBrowser to devices supported by Chromium. Here’s how easy it is:

MediaReceiver receiver = mediaReceivers.await(it -> {
    return it.supports(CastMode.SCREEN);
});
CompletableFuture<CastSession> future = browser.castScreen(receiver);

Check out the complete guide to this functionality.

Better LoadUrlParams

We introduced a high-level API for setting POST data when loading URLs. Instead of manually composing the POST data string, use one of the UploadData ancestors instead. For example:

MultipartFormData data =
        MultipartFormData.newBuilder()
                .addPair(Pair.of("name", "Janis Joplin"))
                .addPair(Pair.of("age", "27"))
                .build();
LoadUrlParams params =
        LoadUrlParams.newBuilder(url)
                .uploadData(data)
                .build();
browser.navigation().loadUrl(params);

New Engine options

We introduced two new engine options: rendererHangTimeout() and disableDnsQuickCheck().

The rendererHangTimeout() configures how long the renderer can be unresponsive before it is considered hung.

The disableDnsQuickCheck() turns off WPAD optimization, causing Chromium to wait longer for DNS-based WPAD servers.

Network prediction

We added a possibility to manage the network prediction in Chromium:

ProfilePreferences preferences = profile.preferences();
preferences.enableNetworkPrediction();
preferences.disableNetworkPrediction();
preferences.isNetworkPredictionEnabled();

Quality enhancements

  • Fixed a deadlock when closing the engine before the system print dialog appeared.
  • Made the JS-accessible members visible in the injected Java objects.
  • Fixed a detached window after the drag-and-drop on Linux.
  • Fixed point inspection not considering the scale factor.
  • Fixed point inspection returning shadow DOM elements.
  • Fixed IllegalStateException thrown when disabling drag-and-drop.
  • Fixed incorrect focus traversal in Swing.
  • Fixed crash when loading PDF sequentially.
  • Fixed broken caching when VerifyCertificateCallback is used.
  • Fixed missing microphone permissions in Microsoft Teams meetings.
  • Disabled navigation that appeared when pressing the Back/Forward mouse buttons.
  • Fixed silent crashes in the GPU processes.

Download JxBrowser 7.29

Please share your email with us, and we'll send you download instructions.

Sending...
Please check your inbox.

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.

Get free 30-day trial