2024
- v7.41.5
- v8.2.0
- v7.41.4
- v8.1.0
- v8.0.0
- v7.41.3
- v7.41.2
- v7.41.1
- v7.41.0
- v7.40.0
- v7.39.2
- v7.39.1
- v7.39.0
- v7.38.2
- v7.38.1
- v7.38.0
- v7.37.2
- v7.37.1
2023
- v7.37.0
- v7.36.3
- v7.36.2
- v7.36.1
- v7.36
- v7.35.2
- v7.35.1
- v7.35
- v7.34.1
- v7.34
- v7.33.2
- v7.33.1
- v7.33
- v7.32
- v7.31.1
- v7.31
- v7.30.3
- v7.30.2
- v7.30
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
Posted on November 27, 2024
JxBrowser 8.2.0
Chromium traffic
Some of our clients reported that Chromium sends unexpected requests to external web services sometimes. We figured out that Chromium features such as Google Cloud Messaging, Translate Ranker, Extensions Updater, Safe Browsing, Spell Checker, Widevine etc. make requests to the external Google web services such as https://ssl.gstatic.com, https://clients4.google.com, to work properly.
We understand that any unexpected request to an external web service might be treated as a security threat and should be blocked. We analyzed all the Chromium features that send requests to external web services and ensured you have full control over them via the JxBrowser API. The features you cannot control using the API are disabled by default to prevent unexpected requests to external web services.
In terms of this enhancement, we removed the disableChromiumTraffic
Engine option because it’s not needed anymore.
You can read more about the Chromium traffic control in the Chromium Traffic guide.
Java Records
You can now inject Java Record instances into JavaScript and work with them in the JavaScript code.
Let’s say you have the following Java Record class that is annotated with the @JsAccessible
annotation to make it accessible from JavaScript:
@JsAccessible
public record User(String fullName, String email) {}
You can create an instance of this type and inject it into the JavaScript code like any other Java object:
browser.set(InjectJsCallback.class, params -> {
JsObject window = params.frame().executeJavaScript("window");
window.putProperty("user", new User("John Doe", "john.doe@mail.com"));
return Response.proceed();
});
Now you can work with the injected user
and access all its auto-generated methods in the JavaScript code like that:
console.log(user.fullName());
console.log(user.email());
Context menu content type
The ShowContextMenuCallback.Params
class has been extended with the contentType()
method that allows you to get a better understanding of the web page content type the user right-clicked on. It allows you to fill your custom context menu with the appropriate items based on the content type:
browser.set(ShowContextMenuCallback.class, (params, tell) -> {
var contentType = params.contentType();
if (contentType.contains(ContextMenuContentType.CONTEXT_MENU_CONTENT_TYPE_COPY)) {
// Some text is selected, so you can add the "Copy" item to the context menu.
}
if (contentType.contains(ContextMenuContentType.CONTEXT_MENU_CONTENT_TYPE_EDITABLE)) {
// User right-clicked on the editable content, so you can add
// the "Paste" item to the context menu.
}
tell.close();
});
Chromium 131.0.6778.70
We upgraded Chromium to a newer version, which introduces 12 security fixes, including:
- CVE-2024-11110: Inappropriate implementation in Blink
- CVE-2024-11111: Inappropriate implementation in Autofill
- CVE-2024-11112: Use after free in Media
- CVE-2024-11113: Use after free in Accessibility
- CVE-2024-11117: Inappropriate implementation in FileSystem
For the complete list of Chromium fixes and improvements since the previous Chromium upgrade please visit the product blog posts for the following versions:
Quality enhancements
- The 7-zip library we use to extract Chromium binaries from JxBrowser JAR files has been updated to version 24.08.
- The
Implementation-Version
attribute with the JxBrowser version is now added to theMANIFEST.MF
file of the JxBrowser JARs with Chromium binaries. - Fixed broken HTML select dropdown when GPU is disabled on Windows in the hardware accelerated rendering mode.
- Fixed incorrect HTML select dropdown location on Windows in the off-screen rendering mode.
- Fixed
NullPointerException
in the JavaFXBrowserView
component when the cursor is changed in the off-screen rendering mode. - Fixed the issue when JxBrowser doesn’t detect the read-only directory on Linux and tries to extract the Chromium binaries, causing the
java.nio.file.FileSystemException
error. - Fixed the issue when the Adobe Acrobat Chrome extension fails to open the extension settings page in a new popup window when clicking the “Open PDF” button and then the “Turn on” button. The
ERR_ADDRESS_UNREACHABLE
error page is displayed instead because JxBrowser fails to load thechrome://extensions/...
URL. - Fixed the
java.lang.NullPointerException: Cannot invoke "javafx.scene.image.WritableImage.getPixelWriter()" because "this.image" is null
error in the JavaFXBrowserView
component during rendering the web page in the off-screen rendering mode.
Download JxBrowser 8.2.0
Please share your email with us, and we'll send you download instructions.
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.
Follow @JxBrowserTeam to get notified of the library updates.
Subscribe to our RSS feed to get instant updates on new releases.
Subscribe to get notifications about the latest releases.