List icon 目录

发布日期 2020年12月15日

JxBrowser 7.12.1

我们很高兴地宣布发布了一个补丁更新,其中包含了多项重要的修复和改进。

改进

  • 在 macOS 上启动 Main Chromium 进程时,现在会跳过 CFProcessPath 环境变量,防止 Chromium 找到其内部资源而导致启动失败。CFProcessPath 环境变量在 macOS 上用于允许将项目拖放到应用程序的 Dock 图标上进行处理,您的 Java 应用程序仍然可以使用它。
  • 当加载具有无效 SSL 证书的 HTTPS 网页时,错误页面上不再显示 Advanced 按钮。现在,加载具有无效 SSL 证书的网页的唯一方式是使用下面所示的 CertificateErrorCallback

      browser.set(CertificateErrorCallback.class, (params, tell) -> tell.allow());
    
  • 添加了 jxbrowser.force.dpi.awareness 系统属性。此属性的存在告诉库在启动 Main Chromium 进程之前,当前 Java 进程的 DPI 感知模式应被编程设置为 System

    此属性解决了 Java 8u211+ 中的 HiDPI 问题。在 UI 工具包初始化之前创建 Engine 实例时,Java 和 Chromium 进程最终会有不同的 DPI 感知模式。这会导致在 HiDPI 环境中出现渲染问题。原因是从 8u211 开始,Java 不再通过清单强制应用任何 DPI 感知模式。自 8u211 以来,Java 以 unaware 模式启动,并在 UI 工具包初始化期间让应用程序通过编程配置 DPI 感知模式。

    当库运行 Chromium 进程时,它不知道 UI 工具包是否已初始化以及 DPI 感知模式是否已配置。为了在 Java 和 Chromium 进程之间同步模式,了解这一点很重要。为了绕过这个问题,我们决定在设置此属性的情况下以编程方式设置 Java 的 DPI 感知模式。在这种情况下,我们无需知道是否已初始化UI工具包。我们只需设置模式并启动 Chromium 进程,即可确保 Java 和 Chromium 的 DPI 感知模式相同。

  • 现在,如果网页是从 JAR 归档文件中加载的,那么 JavaScript 可以访问 LocalStorage
  • Engine 初始化期间,Kaspersky 会显示安全警告 “Chromium 正在尝试访问网络摄像头”。我们更新了初始化流程,以便仅当网页请求访问网络摄像头功能时才初始化网络摄像头功能。它允许在 Engine 抑制警告对话框。

已修复的问题

  • 在加载 http://localhost/any.xml 后加载 about:blank 时,Chromium 崩溃。
  • 将数据 URI 加载到非主 Frame 时,Chromium 崩溃。
  • 如果取消了 IFRAME 内容的加载,则访问 IFRAME 的内容文档时,Chromium 崩溃。
  • 在 macOS 和 Linux 上打开 RPC 连接时,JVM 崩溃。
  • 在 Windows 和 Linux 的离屏渲染模式下,拖动/选择网页内的项目导致 Browser 无响应或 JVM 崩溃。
  • 在离屏渲染模式下,将 MouseMoved 事件分发给 Chromium 时,没有传递键盘修饰符,导致 JavaScript 端无法接收到键盘修饰符。
  • 在 Windows 的硬件加速渲染模式下,从主 SWT 线程访问当前加载的网页的主 Frame 时,线程死锁。
  • 在 Windows 硬件加速渲染模式下显示弹出窗口时,从主 SWT 线程访问当前加载的网页的 URL 时出现线程死锁。
  • 在 Windows 硬件加速渲染模式下,关闭 javafx.scene.control.TextInputDialog 后,从主 JavaFX 线程访问 cookies 时出现线程死锁。
  • 在 Windows 硬件加速渲染模式下,频繁显示/隐藏 JavaFX BrowserView 时出现线程死锁。
  • 在离屏渲染模式下,JavaScript 中 NumPad 键的键码无效。
  • 在 Swing 的硬件加速渲染模式中分发 KeyTyped 事件时,JavaScript 中 EnterTabBackspace 键的键码无效。
  • 在离屏渲染模式下,对于 NumPadLeftRight 键,传递的 KeyboardEvent.location 值不正确。
  • 当操作系统设置为非默认 DPI 时,弹出窗口的大小和位置计算不正确。
  • 无法访问从另一个域加载网页的 IFRAME 的内容文档。
  • 使用 JxBrowser DOM 和 JavaScript API 操作不同网页的 DOM 和 JavaScript 对象时,Chromium 渲染进程中的内存泄漏。
  • 一旦 SWT BrowserView 在离屏渲染模式下被隐藏,滚动功能将失效。
  • 在 Linux 的硬件加速渲染模式下,嵌入 BrowserView 的 JavaFX Stage 隐藏后,Chromium 窗口被销毁。
  • 在离屏渲染模式下,JavaFX BrowserView 会两次分发 Enter 事件。
  • 在 Linux 上,对于 JavaFX 14 之前的版本,JavaFX BrowserView 与其他 JavaFX 控件之间的拖放操作在离屏渲染模式下无效。
  • 在离屏渲染模式下,使用自定义拖放数据的网页上的拖放功能无法正常工作。
  • 在 JavaFX 的离屏渲染模式下,链接和文本的拖放操作在尝试多次时无效。
  • 在离屏渲染模式下,JavaFX BrowserView 在隐藏后再显示时会变黑。
  • 在离屏渲染模式下,SWT BrowserView 中的 HTML 滑块无法正常工作。
  • 在抑制前一个弹出窗口后显示的弹出窗口大小不正确。

下载 JxBrowser 7.12.1

请提供您的电子邮箱地址,我们会尽快将下载说明发送给您。

发送...
请检查您的收件箱。

我们无法发送电子邮件。请使用直接链接下载JxBrowser。

如果您已经是我们的注册客户,您无需任何操作,即可轻松享受此次更新。

如果您希望深入了解并体验我们的产品,您可以申请评估许可证。

获取免费 30 天体验
Go Top