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()方法調度鍵盤事件時的順序不正確。
相關文章
相關標籤/搜索