List icon 目录

发布日期 2024年5月17日

JxBrowser 7.39.0

Chromium 124.0.6367.221

我们已将 Chromium 升级至最新版本,该版本引入了针对已知漏洞利用的安全修复:

如需查看 124.0.6367.221 版本中 Chromium 的完整修复和改进列表,请访问以下版本的产品博客文章:

重大变更

在此版本中,我们移除了 Scaling.fitToPage()Scaling.fitToPaper() 方法。这两个方法仅在使用系统打印机打印 PDF 文件时有用。当打印 HTML 页面或使用内置 PDF 打印机时,这些方法实际上是空操作(no-op),会让开发者感到困惑。

作为替代,我们引入了一个新的 Fit.fit() 方法,它仅适用于使用系统打印机打印 PDF 文件。

以下是之前实现 PrintPdfCallback 回调的方法:

browser.set(PrintPdfCallback.class, (params, tell) -> {
    SystemPrinter<PdfSettings> printer = params.printers().list().get(0);
    PdfSettings settings = printer.printJob().settings();
    settings.scaling(Scaling.fitToPage());
    ...
    tell.proceed(printer);
});

在 JxBrowser 7.39.0 中,PrintPdfCallback 的实现应该如下所示:

browser.set(PrintPdfCallback.class, (params, tell) -> {
    SystemPrinter<PdfSettings> printer = params.printers().list().get(0);
    PdfSettings settings = printer.printJob().settings();
    settings.fit(Fit.FIT_TO_PAGE);
    ...
    tell.proceed(printer);
});

本地键盘输入

在离屏渲染模式下,用户按下的任何键都会经过漫长的路径才能到达网页。操作系统将键盘事件分派给 Java UI,Java UI 将其传递给 JxBrowser,JxBrowser 再将其转发给 Chromium,最终交付给网页。

在此过程的每个阶段,键盘事件都会从一种数据结构转换为另一种。由于不同的键盘子系统及其数据结构并不完全匹配,因此事件的数据可能会丢失或被错误解释。这意味着在 JxBrowser 中的键盘交互可能会产生与 Chromium 中不同的 JavaScript 事件。

在 JxBrowser 7.39.0 中,我们引入了一个实验性功能,该功能直接将操作系统中的键盘事件转发给 Chromium。通过这种方式,在 JxBrowser 中生成的 JavaScript 事件应该始终与 Chromium 中的事件相匹配。

要激活该功能,请使用系统属性:

System.setProperty("jxbrowser.use.native.keyboard.input", "true");

请注意,目前在本地键盘输入中尚不支持输入法编辑器(IME)。

质量优化

  • 在 JavaFX 的 TabPane 中,Web 内容现在可以正确渲染。
  • 不再将重复的 JS 对象作为参数传递给 JsFunctionCallback
  • 在离屏渲染模式下,现在会考虑 --force-device-scale-factor Chromium 开关的值。

下载 JxBrowser 7.39.0

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

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

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

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

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

获取免费 30 天体验