Skip to content

使用 Jsoup 解析并渲染 HTML 页面#3321

Merged
Glavo merged 8 commits intoHMCL-dev:mainfrom
Glavo:javafx-web
Oct 13, 2024
Merged

使用 Jsoup 解析并渲染 HTML 页面#3321
Glavo merged 8 commits intoHMCL-dev:mainfrom
Glavo:javafx-web

Conversation

@Glavo
Copy link
Copy Markdown
Member

@Glavo Glavo commented Oct 12, 2024

目前 HMCL 使用 JavaFX WebView 渲染部分页面,这存在以下问题:

  • HMCL 在 Windows x86-64 平台自动补全 JavaFX 一共要下载 36.2MiB 的文件,其中 javafx.webjavafx.media 模块占 27.4MiB,但 HMCL 只会在个别非常用场景中使用它们,这对于用户的流量和磁盘空间是一种浪费。
  • 并不是所有平台都支持 javafx.web(比如 Linux ARM32 平台),HMCL 在这些平台上会与其他平台上表现不一致,这使得我们不得不付出额外的维护和测试成本来保证 HMCL 能在这些平台正常工作
  • JDK 即将弃用 javafx.web 模块所依赖的 jdk.jsobject 模块,对于高版本 JDK 我们不得不自己下载该模块,这使得未来 JavaFX 的补全逻辑会更加复杂。
  • 我们难以及时更新此模块,其中捆绑的落后的浏览器内核可能会存在严重漏洞,攻击者可以利用它攻击用户的电脑
  • WebView 的行为也过于复杂和不可控,我们难以让它与 HMCL 主界面保持良好的一致性

本 PR 基于 Jsoup 实现了一个将 HTML 渲染为 TextFlow 的简易渲染器,用其替代 HMCL 中 WebView 的所有用例,从而解决以上问题。

@zkitefly
Copy link
Copy Markdown
Member

image

image

看起来不错

这个可以用来做 站点公告 Announcements 和 主页公告

@Glavo Glavo merged commit 1c864ba into HMCL-dev:main Oct 13, 2024
@Glavo Glavo deleted the javafx-web branch October 13, 2024 11:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants