V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
powersee
V2EX  ›  浏览器

为什么没有精简 WebKit?

  •  
  •   powersee · 1 天前 · 3699 次点击

    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 甚至更小

    39 条回复    2025-11-04 21:47:09 +08:00
    zhizunzz
        1
    zhizunzz  
       1 天前 via Android
    哥,首先我对你说的这些东西只有个概念,但是我觉得你说的是个实在的需求,没人做的话不正好趁机赚他一个亿么,不需要纠结为什么
    powersee
        2
    powersee  
    OP
       1 天前 via iPhone
    @zhizunzz #1 我没有这个技术,只是突发奇想😂
    hefish
        3
    hefish  
       1 天前
    是啊,为什么这么好的需求没人做呢,别人肯定都是没想到,而我也和 op 一样想到了。
    wwwcomcn
        4
    wwwcomcn  
       1 天前   ❤️ 1
    早有大佬做过这块了。
    https://github.com/weolar/miniblink49
    gucheen
        5
    gucheen  
       1 天前
    因为不用好
    你应该庆幸 Google 选择 fork webkit 研发了 blink ,以至于现在 Chromium 系能有这么出色的表现
    我不明白你怎么会觉得你这一套设计会很好用?都不说你为什么会觉得 JavaScriptCore 替换成 QuickJS 会很受欢迎。
    Apple 又不是没做过 windows 版的 Safari ,估计只有真果粉能用得下去
    codehz
        6
    codehz  
       1 天前
    游戏领域已经有了啊,比如 Ultralight 就是裁剪的 webkit
    Isuxiz
        7
    Isuxiz  
       1 天前   ❤️ 1
    @龙泉寺扫地僧
    wangtian2020
        8
    wangtian2020  
       1 天前
    没人在意大不大,反正我不在意,又不是我在意
    jeesk
        9
    jeesk  
       1 天前
    我觉得很有前途,这个需要很大, 建议楼主上手亲自操刀.
    lambdaq
        10
    lambdaq  
       1 天前
    有人做。然后被黑产疯狂利用。
    lisongeee
        11
    lisongeee  
       1 天前
    你的收益貌似只有降低文件大小,但绝大多数普通用户根本不关心这点
    Lockroach
        12
    Lockroach  
       1 天前
    你可以试着做做,说不定呢
    powersee
        13
    powersee  
    OP
       1 天前
    @wwwcomcn #4 这个好像也不小了,现在要 40-50MB 了,看作者说 Chromium 耦合性太大了

    @gucheen #5 精简 WebKit 目的应该是为了解决渲染问题而不是性能问题,因为 JavaScriptCore 替换成 QuickJS 后,JS 的性能会非常低,所以核心逻辑全都要使用编译型语言写。

    @Lockroach #12 如果是 Java ,我还可以试试。C++ 就难了
    miniliuke
        14
    miniliuke  
       1 天前
    @lambdaq 话说黑产用这个干啥?减少安装包体积节省成本?
    shunia
        15
    shunia  
       1 天前
    听起来很复杂?收益抵得上这么复杂的实现流程吗?而且搞了半天最后还是依赖 Webkit ,后面维护起来也坑吧。

    所以现在时兴从头开始写浏览器
    Vogan
        16
    Vogan  
       1 天前
    想想就很费钱。吃力不讨好的事,谁愿意干谁去干。
    unixipc
        17
    unixipc  
       1 天前
    这个 codebase 非常难搞,精简太难了
    qrobot
        18
    qrobot  
       1 天前
    @powersee 投入和收入不成正比。 并且 QuickJS 和 v8 比,QuickJS 慢了不少,QuickJS 所谓快是阉割功能导致。
    qrobot
        19
    qrobot  
       1 天前
    @powersee 你自己看看性能报告, 目前基本没人能超过 v8, 其次 QuickJS 比 v8 差的不是一点点,是非常非常多
    IDAEngine
        20
    IDAEngine  
       1 天前
    @powersee 把 ffmpeg 音视频库删掉就小了
    szdubinbin
        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
    ysc3839
        22
    ysc3839  
       1 天前 via Android
    WebKit 跨平台的潜在隐患更多吧?
    苹果目前除了自家平台,应该只在 Windows iTunes 中使用 WebKit ,用户量极少。相比 Chrome 有大量用户踩坑,WebKit 很有可能存在许多未被发现的问题或隐患,性能优化可能也不如 Chrome 。
    imicksoft
        23
    imicksoft  
       1 天前
    @miniliuke 模拟网页操作,读取和写入 cookie 换账号很方便,账号批量操作发帖
    MindMindMax
        24
    MindMindMax  
       1 天前
    https://sciter.com/ 几十年历史的老牌子了。
    14
        25
    14  
       1 天前
    总有人需要一小部份功能,比如你这里举的例子 Canvas 和 PDF 我都需要,那我是不是用不了这个了?
    powersee
        26
    powersee  
    OP
       1 天前 via iPhone
    @qrobot #18 要的是 WebKit 跨平台和 HTML5+CSS3 的特性,JS 部分可以用原生代码编译,例如 C++、C# 等


    @szdubinbin #21 毕竟公司是追求利润和商业化的


    @14 #25 大多数 GUI 是用不到这些的
    flynaj
        27
    flynaj  
       19 小时 17 分钟前 via Android
    大小小了,功能就少了,我的网页在其它浏览器上都正常,在你浏览器上就不正常,这个问题怎么解决?
    powersee
        28
    powersee  
    OP
       18 小时 5 分钟前 via iPhone
    @flynaj #27 我觉得精简 WebKit 的目的是创造一个更好的 GUI 框架,开发者应该知道哪些特性可以用,哪些不能用。


    @MindMindMax #24 有点子东西啊,好像是自己实现的渲染引擎
    faywong8888
        29
    faywong8888  
       17 小时 37 分钟前
    浏览器是一个 all in one 架构,换一个螺丝得把发动机里里外外全部改一遍,持续维护迭代成本极高,你说的这些轮子体积小了,但性能/功能并不全面,对完整 w3c 特性是有折损的,这个权衡取舍后的都是分散的场景化小需求。其次纯浏览器引擎、精简优化没有商业模式,没有经济收益可言。所以你说的这件事并没有持续地发生过。
    powersee
        30
    powersee  
    OP
       17 小时 32 分钟前 via iPhone
    @faywong8888 #29 没有良好的商业模式的确很难让人有动力搞这个
    qrobot
        31
    qrobot  
       17 小时 21 分钟前
    @powersee v8 就是这样做的啊, 部分麻烦的地方用 js 来替代, 否则你写 C++ 搞死你, 至于 C# ? 除非脑子有水才会用这个。 这个和 Java 一样有个垃圾回收, 而且性能还差.

    而且你说的这些又不是没有 https://github.com/litehtml/litehtml
    powersee
        32
    powersee  
    OP
       14 小时 55 分钟前
    @qrobot #31 v8 大啊,而且有些应用根本不需要高性能的脚本执行能力 + 渲染能力。

    譬如:Postman: 就是一个管理 API 管理程序,用不到 Chromium 这么强大的东西吧?其中的 Script 功能用 QuickJS 代替应该也是可以的
    qrobot
        33
    qrobot  
       12 小时 28 分钟前
    @powersee #31 所以性能差啊, 你觉得 chromium 团队会放弃高性能的 v8, 转而投向低性能的 QuickJS 吗? 除非脑袋被驴踢了。


    功能大,自然体积就大, 功能少自然体积就少。 你看看商业化的 sciter 都不知道阉割了多少功能了。


    你要是希望把体积做小。 那么就用 wxwidget.


    既要有要还想要, 这是不可能的
    qrobot
        34
    qrobot  
       12 小时 24 分钟前
    @powersee 说难听一点 vc++ runtime 还有 6mb, 然后又要解决 vc++ 不同 runtime 的依赖问题。 然后在打包 vc++ 检查用户有没有, 如果没有就自动安装对吧? 你看看 steam 的发展史就知道了。 安装软件体积从来不是问题。 软件质量才是
    powersee
        35
    powersee  
    OP
       11 小时 27 分钟前
    @qrobot #33 你没明白我意思,我的意思是有些程序不需要那么高的性能。如果只是做一个日历程序完全用不到 v8 吧?
    rarpainting
        36
    rarpainting  
       9 小时 41 分钟前
    其实我不太理解为什么要做一个精简的 Web 运行时,用 web 框架不就是图它 all in one 嘛?如果是精简系统,跨平台框架不缺吧,需求不明
    powersee
        37
    powersee  
    OP
       9 小时 2 分钟前
    @rarpainting #36 cef 和 chromium 太大了,打出来的包差不多 100Mb ,精简之后只需要 HTML5+CSS3 排版,音视频、WebGL 、Canvas 等都可以去掉
    KinBob
        38
    KinBob  
       6 小时 57 分钟前
    op 如果能做出来,按开发结果精确裁剪的工具,那还是超级厉害的
    a4390509
        39
    a4390509  
       4 小时 15 分钟前
    可以去知乎关注下#7 兄弟 @的大佬,最新好像在做这部分内容
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1133 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:02 · PVG 02:02 · LAX 10:02 · JFK 13:02
    ♥ Do have faith in what you're doing.