浏览器不支持回调_Java浏览器集成控件JxBrowser v7.10上线

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

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

新增功能

渲染效果优化

屏幕外渲染模式已重新实现,以提高其在所有受支持的平台和UI工具包上的渲染性能。以下是在不同平台上以每秒帧数(FPS)的HTML5视频进行渲染性能测试的结果:

Windows

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

macOS

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

Linux

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

Chromium Traffic

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

当无法访问Web服务或您不希望这些额外流量时,可以使用以下API:

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(); // 

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

// 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()方法调度键盘事件时的顺序不正确。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值