JAVA浏览器集成控件JxBrowser v7.10全新来袭!附下载

JxBrowser是将基于Chromium的浏览器与Java应用程序集成,以处理和显示HTML五、CSS三、JavaScript、Flash等。浏览器

近日,JxBrowser v7.10发布啦!优化屏幕外渲染模式,优化Chromium功能,扩展获取网页上当前聚焦的HTML元素的方法,拼写检查功能已恢复,同时修复多项Bug。如下是具体的更新内容。(点击下载最新版安全

新增功能

渲染效果优化cookie

屏幕外渲染模式已从新实现,以提升其在全部受支持的平台和UI工具包上的渲染性能。如下是在不一样平台上以每秒帧数(FPS)的HTML5视频进行渲染性能测试的结果: 网络

Windows ide

  • 配备GPU GTX 1070的Intel Core i7 7700k 4.2 GHz
  • 影片尺寸:1920x1080

JAVA浏览器集成控件JxBrowser v7.10全新上线!IPC消息顺序优化

macOS工具

  • MacBook Pro 15英寸,英特尔酷睿i7 2.9GHz,带有GPU Radeon Pro 650 4GB
  • 影片尺寸:2880x1800

JAVA浏览器集成控件JxBrowser v7.10全新上线!IPC消息顺序优化

Linux性能

  • AMD FX-8300 3.3 GHz与GPU Radeon RX 480
  • 影片尺寸:1920x1080

JAVA浏览器集成控件JxBrowser v7.10全新上线!IPC消息顺序优化

Chromium Traffic测试

Chromium的功能,如谷歌云端通信,翻译排序器,扩展更新,安全浏览,拼写检查,Widevine的等发出请求外部谷歌的网络服务,如https://ssl.gstatic.com, https://clients4.google.com, etc.优化

当没法访问Web服务或您不但愿这些额外流量时,可使用如下API:ui

Engine engine = Engine.newInstance(
        EngineOptions.newBuilder(renderingMode)
                .disableChromiumTraffic()
                .build());

此选项仅容许禁用没法经过JxBrowser API访问的Chromium功能。例如,能够经过JxBrowser API访问SpellChecker和Widevine功能,所以该选项不会禁用由这些功能引发的流量。

重点DOM元素

DOM API已使用Document.focusedElement()容许获取网页上当前聚焦的HTML元素的方法进行了扩展:

document.focusedElement().ifPresent(element -> {
    ...
});

改进功能

  • 拼写检查功能已恢复。
  • com.teamdev.jxbrowser.view.swt.callback.DefaultStartDownloadCallback如今会在目标文件存在并将被覆盖时提示。
  • DevTools.remoteDebuggingUrl()方法如今返回能够在没有互联网链接的状况下使用的URL。

IPC消息顺序

在之前的版本中,调用同步回调时,可能会更改IPC消息顺序。例如,经过该Browser.dispatch()方法调度键盘事件可能会致使网页文本字段中字母随机混合的问题。

在此版本中,咱们改进了内部IPC逻辑以消除此类状况。这项改进对如何处理同步回调中的代码提出了一项重要要求。若是您执行一些逻辑,从而在同步回调内的单独线程中对库进行同步调用,并阻塞等待该逻辑执行以前的回调,则可能会出现死锁:

// Register a synchronous callback.
browser.set(SomeSyncCallback.class, params -> {
    // Invoke some logic in a separate thread and block the current
    // thread execution until the logic has been executed.
    invokeInSeparateThreadAndWait(() -> {
        // Invoke a synchronous method.
        browser.someSyncMethod(); // <-- Deadlock: this method will never return. }); return Response.proceed(); });

要摆脱僵局,请改用如下方法:

// Register a synchronous callback.
browser.set(SomeSyncCallback.class, params -> {
    // Invoke a synchronous method.
    browser.someSyncMethod();
    return Response.proceed();
});

Bug修复

  • BrowserView在macOS上以硬件加速渲染模式调整大小时,意外的内容缩放。
  • NavigationException: Failed to load resource: ABORTED后续Navigation.loadUrlAndWait()调用中的错误。
  • BrowserView在Windows上以硬件加速渲染模式退出并返回时,鼠标停留在平移上。
  • BrowserView隐藏Stage在屏幕外渲染模式后未显示JavaFX 。
  • 关闭引擎时发生碰撞或冻结。
  • 在Windows上以硬件加速呈现模式显示BrowserView时崩溃。
  • 库常常卡在IpcLibrary.sendData()上。
  • Swing、JavaFX和SWT UI工具包类必须位于单独的jar中,但它们位于jxbrowser.jar中。
  • 焦点恢复功能不能正常工做在SWT浏览器视图。
  • xpath()方法生成不正确的节点索引。
  • 引擎初始化停留在调用ldd命令来检查Linux上缺乏的系统库。
  • 访问非空cookie存储时死锁。
  • Windows Server 2012上的Chromium欢迎页面。
  • 使用Browser.dispatch()方法调度键盘事件时的顺序不正确。
相关文章
相关标签/搜索