JxBrowser(点击下载)是将基于Chromium的浏览器与Java应用程序集成,以处理和显示HTML5、CSS3、JavaScript、Flash等。
近日,JxBrowser v7.4发布啦,新增支持嵌入来自Netflix、Amazon Prime、Spotify和其他使用DRM解密的平台的视频和音频内容,同时允许将JxBrowser嵌入用于ARM设备的应用程序中,修复多项Bug。以下是具体的更新内容。
ARM
- JxBrowser 7.4在Linux 64位上支持ARM体系结构。已在以下环境中进行了测试:
- Raspberry Pi 2(900MHz四核ARM Cortex-A7 CPU)和AWS(AWS Graviton处理器);
- Ubuntu 16.04 LTS和18.04 LTS 64位;
- JDK 8 64位(JRE没有提供GUI),OpenJDK 11(Swing + JavaFX)。
专有功能
- 不需要使用启用的专有编解码器就可以请求播放H.264,MP4和AAC格式的单独* c版本。可以通过API启用专有编解码器,默认情况下将其禁用,如下所示:
Engine engine = Engine.newInstance( EngineOptions.newBuilder(renderingMode) .enableProprietaryFeature(ProprietaryFeature.AAC) .enableProprietaryFeature(ProprietaryFeature.H_264) .build());
注意:H.264和AAC编解码器是专有组件。通过启用这些编解码器,必须声明您知道H.264和AAC是专有组件,并且应该拥有许可证才能使用它们。 - Widevine的专有组件:允许在Netflix,Amazon Prime,Spotify上播放视频/音频内容,以及使用Widevine分发内容的其他Web服务上的内容。 默认情况下,Widevine组件是禁用的。使用以下代码将其启用:
Engine engine = Engine.newInstance( EngineOptions.newBuilder(renderingMode) .enableProprietaryFeature(ProprietaryFeature.WIDEVINE) .build());
- Windows Server 2019:该库正式支持Windows Server 2019
- 禁用DnD:默认情况下,Swing和JavaFX都启用了拖放功能BrowserView。要禁用拖放,请使用以下新API:
browserView.dragAndDrop().disable();
- DOM属性:DOM API已使用新功能扩展,该功能允许获取元素的属性节点列表。例如:
element.attributeNodes().forEach(attribute -> System.out.println("name = " + attribute.nodeName()));
改进
- Navigation类已使用browser()方法扩展,该方法允许获取与Navigation相关联的Browser实例。
- 拼写检查器词典将下载到用户数据目录中,而不是Windows上带有Chromium二进制文件的目录中。
- 添加NetError。Web服务器禁止帧嵌入时发生BLOCKED_BY_RESPONSE错误。
- 增加了对Document.visibilityState属性的支持。
- 用于macOS的JxBrowser二进制文件已签名并经过公证,以满足macOS Catalina的要求。
- 该库仅在缺少Linux时才创建指向系统库的符号链接。
- 允许从标有@JsAccessible批注的方法中引发异常。
- “打印预览”对话框中的“使用系统对话框打印...”操作已恢复,可以使用系统打印对话框来打印网页。
- 允许以适当的反应(例如加载并显示删除的文件)将文件(例如图像)拖放到BrowserView中。
Bug修复
- 修复向Swing或JavaFX容器中添加和删除BrowserView组件时发生内存泄漏。
- 修复在Linux上闲置约2个小时后,Chromium进程意外终止。
- 带有Java 13的Linux上的java.lang.UnsatisfiedLinkError异常是由于缺少依赖项引起的。
- 修复由于缺少语言包,在配置为西班牙语的macOS上,Chromium启动失败。问题。
- 修复将文件从文件系统拖动到具有Java 11及更高版本的macOS上的Swing BrowserView组件中时,出现java.lang.NullPointerException异常。
- 修复对于没有过期时间的会话cookie,返回了无效的cookie过期时间。
- 修复默认情况下,文本查找器向后迭代。
- 修复搜索匹配案例不适用于PDF的问题。
- 修复将Swing BrowserView组件嵌入JTabbedPane容器时,Web内容显示在主屏幕的左上角的问题。
- 硬件加速渲染模式下的JavaFX BrowserView开始分离本机窗口并由于缺少主要Chromium进程而遇到IllegalStateException时出现的问题。
- 修复在非屏幕渲染模式下在多个显示器之间移动BrowserView时,Chromium引擎发生本机崩溃的问题。
弃用的API
- 允许忽略SSL证书错误的CertificateErrorCallback功能已被标记为@deprecated,并将在下一版本中被删除。请改用VerifyCertificateCallback回调,可以在其中告诉引擎无效的SSL证书有效,并且引擎应继续加载资源。