
libcef 非常大,webview2 又有跨平台兼容问题,为什么没有人精简 WebKit 呢?
WebKit 编译时提供了非常多的开关,例如:--no-video 、--no-webgl
如果有人基于 WebKit 做一个精简的 Web 运行时,并且把 JavascriptCore 替换成 QuickJS 我觉得应该很受欢迎。
WebKit 的三个模块:WebKit2 、WebCore 、JavascriptCore
WebCore:可以去掉不需要的:Canvas 、音视频解码器、PDF 、WebGL 、拼音检查等等 JavascriptCore:可以换成 QuickJS
(虽然 QuickJS 没有 JIT ,但是核心模块可以用 C++、C#、Rust 等语言代替
我觉得整个下来,使用 7z 压缩后,应该可以控制在 10-15M 甚至更小
1 zhizunzz 2 天前 via Android 哥,首先我对你说的这些东西只有个概念,但是我觉得你说的是个实在的需求,没人做的话不正好趁机赚他一个亿么,不需要纠结为什么 |
3 hefish 2 天前 是啊,为什么这么好的需求没人做呢,别人肯定都是没想到,而我也和 op 一样想到了。 |
4 wwwcomcn 2 天前 早有大佬做过这块了。 https://github.com/weolar/miniblink49 |
5 gucheen 2 天前 因为不用好 你应该庆幸 Google 选择 fork webkit 研发了 blink ,以至于现在 Chromium 系能有这么出色的表现 我不明白你怎么会觉得你这一套设计会很好用?都不说你为什么会觉得 JavascriptCore 替换成 QuickJS 会很受欢迎。 Apple 又不是没做过 windows 版的 Safari ,估计只有真果粉能用得下去 |
6 codehz 2 天前 游戏领域已经有了啊,比如 Ultralight 就是裁剪的 webkit |
7 Isuxiz 2 天前 @龙泉寺扫地僧 |
8 wangtian2020 2 天前 没人在意大不大,反正我不在意,又不是我在意 |
9 jeesk 2 天前 我觉得很有前途,这个需要很大, 建议楼主上手亲自操刀. |
10 lambdaq 2 天前 有人做。然后被黑产疯狂利用。 |
11 lisongeee 2 天前 你的收益貌似只有降低文件大小,但绝大多数普通用户根本不关心这点 |
12 Lockroach 2 天前 你可以试着做做,说不定呢 |
13 powersee OP |
15 shunia 2 天前 听起来很复杂?收益抵得上这么复杂的实现流程吗?而且搞了半天最后还是依赖 Webkit ,后面维护起来也坑吧。 所以现在时兴从头开始写浏览器 |
16 Vogan 2 天前 想想就很费钱。吃力不讨好的事,谁愿意干谁去干。 |
17 unixipc 2 天前 这个 codebase 非常难搞,精简太难了 |
21 szdubinbin 1 天前 目前国内有意愿和能力去做,并且已经非常成功的给开发者/用户喂 shit 的只有 qq 浏览器的 x5 一家,也就是上面提到的扫地僧的老东家。大佬在知乎算是比较分享干货的,有很多文章介绍这块的原理可以参考,其中一篇: https://www.zhihu.com/question/290767285/answer/1200063036?utm_campaign=rss&utm_medium=rss&utm_source=rss&utm_cOntent=title |
22 ysc3839 1 天前 via Android WebKit 跨平台的潜在隐患更多吧? 苹果目前除了自家平台,应该只在 Windows iTunes 中使用 WebKit ,用户量极少。相比 Chrome 有大量用户踩坑,WebKit 很有可能存在许多未被发现的问题或隐患,性能优化可能也不如 Chrome 。 |
24 MindMindMax 1 天前 https://sciter.com/ 几十年历史的老牌子了。 |
25 14 1 天前 总有人需要一小部份功能,比如你这里举的例子 Canvas 和 PDF 我都需要,那我是不是用不了这个了? |
26 powersee OP @qrobot #18 要的是 WebKit 跨平台和 HTML5+CSS3 的特性,JS 部分可以用原生代码编译,例如 C++、C# 等 @szdubinbin #21 毕竟公司是追求利润和商业化的 @14 #25 大多数 GUI 是用不到这些的 |
27 flynaj 1 天前 via Android 大小小了,功能就少了,我的网页在其它浏览器上都正常,在你浏览器上就不正常,这个问题怎么解决? |
28 powersee OP @flynaj #27 我觉得精简 WebKit 的目的是创造一个更好的 GUI 框架,开发者应该知道哪些特性可以用,哪些不能用。 @MindMindMax #24 有点子东西啊,好像是自己实现的渲染引擎 |
29 faywong8888 1 天前 浏览器是一个 all in one 架构,换一个螺丝得把发动机里里外外全部改一遍,持续维护迭代成本极高,你说的这些轮子体积小了,但性能/功能并不全面,对完整 w3c 特性是有折损的,这个权衡取舍后的都是分散的场景化小需求。其次纯浏览器引擎、精简优化没有商业模式,没有经济收益可言。所以你说的这件事并没有持续地发生过。 |
30 powersee OP @faywong8888 #29 没有良好的商业模式的确很难让人有动力搞这个 |
31 qrobot 1 天前 @powersee v8 就是这样做的啊, 部分麻烦的地方用 js 来替代, 否则你写 C++ 搞死你, 至于 C# ? 除非脑子有水才会用这个。 这个和 Java 一样有个垃圾回收, 而且性能还差. 而且你说的这些又不是没有 https://github.com/litehtml/litehtml |
32 powersee OP @qrobot #31 v8 大啊,而且有些应用根本不需要高性能的脚本执行能力 + 渲染能力。 譬如:Postman: 就是一个管理 API 管理程序,用不到 Chromium 这么强大的东西吧?其中的 Script 功能用 QuickJS 代替应该也是可以的 |
33 qrobot 1 天前 @powersee #31 所以性能差啊, 你觉得 chromium 团队会放弃高性能的 v8, 转而投向低性能的 QuickJS 吗? 除非脑袋被驴踢了。 功能大,自然体积就大, 功能少自然体积就少。 你看看商业化的 sciter 都不知道阉割了多少功能了。 你要是希望把体积做小。 那么就用 wxwidget. 既要有要还想要, 这是不可能的 |
34 qrobot 1 天前 @powersee 说难听一点 vc++ runtime 还有 6mb, 然后又要解决 vc++ 不同 runtime 的依赖问题。 然后在打包 vc++ 检查用户有没有, 如果没有就自动安装对吧? 你看看 steam 的发展史就知道了。 安装软件体积从来不是问题。 软件质量才是 |
36 rarpainting 23 小时 3 分钟前 其实我不太理解为什么要做一个精简的 Web 运行时,用 web 框架不就是图它 all in one 嘛?如果是精简系统,跨平台框架不缺吧,需求不明 |
37 powersee OP @rarpainting #36 cef 和 chromium 太大了,打出来的包差不多 100Mb ,精简之后只需要 HTML5+CSS3 排版,音视频、WebGL 、Canvas 等都可以去掉 |
38 KinBob 20 小时 20 分钟前 op 如果能做出来,按开发结果精确裁剪的工具,那还是超级厉害的 |
39 a4390509 17 小时 37 分钟前 可以去知乎关注下#7 兄弟 @的大佬,最新好像在做这部分内容 |
40 qrobot 5 小时 22 分钟前 @powersee 这不是有精简的吗? https://github.com/litehtml/litehtml 发给给你了, 你又不愿意用 |
42 powersee OP @qrobot #40 这个 litehtml 比 WebKit 渲染效果差远了吧?(指的是对 H5 、CSS3 的兼容性,排版等等 |