List icon 目录

发布日期 2017年12月12日

JxBrowser 6.18

我们非常高兴地宣布,JxBrowser 6.18 版本现已可供下载。在此版本中,我们专注于功能,增强用户的浏览安全性。该版本还包含多个用户请求的功能和改进。

U2F 身份验证

在此版本中,我们启用了对 U2F 身份验证标准的支持。您无需配置库或 Java 应用程序即可使用 U2F 标准进行身份验证。请注意,目前不支持 U2F 设备注册。您可以在 Google Chrome 或其他 Web 浏览器应用程序中注册您的 U2F 设备,然后在 JxBrowser 中使用它进行身份验证。

CacheStorage.clearHttpAuthenticationCache()

该 API 已扩展新功能,允许清除 HTTP Auth 缓存。以下代码演示了如何使用此新功能:

browser.getCacheStorage().

clearHttpAuthenticationCache(new Callback() {
    @Override
    public void invoke () {
        System.out.println("HTTP Auth 缓存已清除");
    }
});

Cookies 加密

JxBrowser 默认不加密 cookies。要启用 cookies 加密,请使用 --enable-cookie-encryption Chromium 开关。

JxBrowser 使用 Chromium 的 cookies 加密例程,因此它与 Chromium 使用相同的方式来存储 cookies。

在 Linux 上,JxBrowser 使用 GNOME Keyring 或 KWallet 来加密 cookies。尽管 Chromium 会自动选择使用哪个存储,但是也可以通过命令行参数指定要使用的存储:

  • --password-store=gnome(使用 GNOME Keyring)
  • --password-store=kwallet(使用 KWallet)

在 Windows 上,JxBrowser 仅使用 DPAPI 来加密 cookies。目前没有其他选择。

在 macOS 上,JxBrowser 使用 Keychain 应用程序中存储的私钥,通过 AES 加密来加密 cookies。

异步查找文本

在以前的版本中,在搜索完成之前无法取消当前搜索。在此版本中,我们扩展了 API,添加了新功能,允许在加载的网页上执行文本搜索,并可以随时取消搜索。

以下示例演示了如何使用此新 API:

SearchParams request = new SearchParams("要查找的文本");
browser.findText(request, new SearchResultCallback() {
    @Override
    public void onResultReceived (SearchResult result){
        // 如果搜索已完成,则获取匹配的数量。
        if (result.isCompleted()) {
            int numberOfMatches = result.getNumberOfMatches();
        }
        // 否则 - 取消搜索。
        else {
            browser.stopFindingText(StopFindAction.CLEAR_SELECTION);
        }
    }
});

Java 9 支持

现在,JxBrowser 可以在运行 JRE 9 的 Java 桌面应用程序中使用。

请注意,Java 9 支持存在几个限制:

  • JxBrowser 仅支持不使用 Java 平台模块系统的 Java 9 应用程序。对模块系统的支持将在后续版本中添加。
  • JxBrowser 不支持 SWT+Java 9。
  • JxBrowser 仅支持默认的 JVM 参数。如果您修改了默认值,例如将 VM 参数的默认值从 "--illegal-access=permit" 更改为 "--illegal-access=deny",则库可能在 JRE 9 上无法正常工作。

JxBrowser 的其余功能应该与在 JRE 6、7 和 8 上工作时的方式相同。

已修复的问题

  • 修复了当加载新网页时,有时会抛出 "IllegalStateException: HTML document is not available" 异常的问题。在处置 Browser 实例时,如果存在活跃的打印作业会导致本地崩溃的问题。现在,当启动打印的 Browser 实例被销毁时,挂起的打印作业将被取消。
  • 修复了在多线程环境中使用 Browser 实例时,macOS 和 Windows 上偶尔出现的本地崩溃问题。
  • 修复了在 Linux 上运行全屏模式的 Java 窗体时,右侧和底部出现单像素白色线条的问题。
  • 修复了在多线程 Java 环境中销毁 JSContext 实例时,Chromium 渲染进程中的本地崩溃问题。
  • 修复了在 Linux 平台上使用 AMD Radeon 和 nVIDIA GeForce GPU 设备运行 JavaFX 应用程序时,Chromium Main 进程中的本地崩溃问题。
  • 修复了将自定义客户端 SSL 证书传递给 Chromium 时,除非证书已在操作系统中注册,否则不会产生任何效果的问题。

改进

  • Chromium 二进制文件已使用时间戳进行签名。在以前的版本中,二进制文件使用 TeamDev 证书进行签名,该证书有效期至 2018 年 4 月 25 日。签名过程中未使用时间戳,因此签名将从第二天开始无效。
  • 修复了 Chromium 漏洞 CVE-2017-5124(Chromium 62)的修复程序已被反向移植到 JxBrowser 6.18 中使用的 Chromium 60。
  • 我们还改进了在加载的网页上多次使用相同的搜索请求查找文本时的性能。

请发送电子邮件至 customer-care@teamdev.com 以获取 JxBrowser 6.18 的下载链接。