JxBrowser是将基于Chromium的浏览器与Java应用程序集成,以处理和显示HTML5、CSS3、JavaScript、Flash等。
近日,JxBrowser v7.5发布啦(点击下载),JAVA应用程序集成控件JxBrowser更新至7.5,允许将JavaScript对象转换为JSON字符串,扩展了允许获取当前加载的网页的图标的功能,修复多项Bug。以下是具体的更新内容。
新增功能
- JSON格式:JxBrowser 7.5允许将JavaScript对象转换为JSON字符串,并从JSON字符串获取JavaScript对象。例如:
<pre>
Json json = frame.json();
JsObject jsObject = json.parse("{"one":1,"two":2}");
String jsObjectJson = json.stringify(jsObject);
browser.on(FaviconChanged.class, event -> {
Bitmap newFavicon = event.favicon();
});
- Element.scrollIntoView(AlignTo alignTo)
- Node.compareDocumentPosition(Node otherNode)
frame.renderProcess().pid();
改进
- 使用DOM和JavaScript对象时,此版本的性能更好。
- 所有敏感信息(例如键盘和鼠标输入,密码等)都不会打印在调试日志消息中。
- DefaultStartDownloadCallback中显示的“文件保存”对话框现在对于Swing和JavaFX实现都是模态的。
- Navigation.loadUrlAndWait()方法现在可以处理当前加载的网页内部的导航(例如,对内部#链接的导航)。
- 适用于Windows 32位和64位的所有Chromium二进制文件均使用有效且经授权的TeamDev签名进行签名。
Bug修复
- 修复IllegalStateException错误,当在硬件加速渲染模式下删除另一个BrowserView并关闭其Browser之后将BrowserView聚焦时。
- 修复在非屏幕渲染模式下在加载的网页上进行主动渲染(例如播放HTML5视频)期间访问功能时,线程锁定。
- 修复在Windows的屏幕外渲染模式下关闭“打印预览”对话框时,线程死锁问题。
- 修复在Windows上以硬件加速渲染模式调整BrowserView大小时,由负宽度和高度引起的IllegalArgumentException错误。
- 修复当关闭浏览器实例时,当它们的引擎仍处于活动状态时,内存泄漏。
- 修复从容器中删除BrowserView组件时,发生内存泄漏。
- 调整BrowserView大小时,macOS上的Chromium GPU进程中的内存泄漏。根本原因在于两种渲染模式下未发布的mach端口。万一所有可用端口都被占用,此泄漏可能会导致系统重新引导。
- 修复调用XPathResult。 asSnapshotNodes()方法在应返回空集合时抛出XPathException错误。
- 修复将当Document实例属于IFRAME时,Document.frame()方法返回错误的Frame。
- 修复当HTTP标头在ReceiveHeadersCallback中被覆盖时,CanGetCookiesCallback回调未从Web服务器接收预期的cookie。
- 修复将Swing BrowserView组件嵌入JTabbedPane容器时,Web内容显示在主屏幕的左上角。