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

请教浏览器大佬,关于换皮浏览器 chromium 内核, firefox,webkit

  •  
  •   badboy17 · 2023-07-04 15:09:10 +08:00 · 3809 次点击
    这是一个创建于 537 天前的主题,其中的信息可能已经有所发展或是发生改变。

    市面上很多的浏览器基于 chromium 内核换皮的,所以基于 chromium 换皮应该是比较好做的 我如果想要基于 firefox 的 gecko 内核和 webkit 内核打包一个自己用的浏览器,可行吗,难度如何

    我在 windows 下可以打包编译出一个在 linux 上运行的包吗

    听说 webkit 只是一个内核,缺少了作为一个完整的浏览器的其他部分,包括 ui 等等 那么基于 firefox 火狐重新打包一个自己的浏览器可行性如何

    17 条回复    2023-07-05 18:19:48 +08:00
    codehz
        1
    codehz  
       2023-07-04 15:28:33 +08:00   ❤️ 1
    firefox 没多少人做主要是协议问题,做了必须开源
    webkit 还是有很多人做的,linux 下 gnome 用的哪个浏览器就是 webkit 的
    chromium 肯定不能算好做,因为官方更新太快了,你的修改很容易就会和官方的更新冲突,然后如果你版本锁死不更新的话,那 chromium 这么大占有率,发现个什么漏洞你就完了
    tool2d
        2
    tool2d  
       2023-07-04 15:28:57 +08:00
    electron 有二进制发布,和 chrome 同内核,应该是目前最简单自定义浏览器的方案了。
    PepperEgg
        3
    PepperEgg  
       2023-07-04 15:34:35 +08:00
    可行性 100%,根据官方文档自己编译就行了。
    badboy17
        4
    badboy17  
    OP
       2023-07-04 15:40:22 +08:00
    @codehz 我不需要跟着官方更新,这个主要自己做着玩的,自己用。firefox 的源码我拿来,可以直接编译打包成一个可执行的吗,webkit 是不是只是一个内核,需要自己搞定 ui 组件之类的
    0o0O0o0O0o
        5
    0o0O0o0O0o  
       2023-07-04 15:54:37 +08:00 via iPhone   ❤️ 1
    最近也在搞这方面,个人体验:

    如果只是 chromium 编译,根据官方文档用官方建议的环境/容器,有够好的网络,没什么难度;

    想开发,光成功导入自己常用的 IDE 让它有正常的开发体验这一步我觉得就够难的了;

    想动一些核心组件,热门点的有很多解析文章还可以跟着学,一些比较冷门的就得自己啃了;

    如果还想紧跟上游,那无论是 patch 的方式,还是流程管理,个人都要摸索很久,可以参考 ungoogled-chromium 。
    Finnn
        6
    Finnn  
       2023-07-04 15:58:24 +08:00
    也不是不行, 毕竟洋葱就是出身于 Firefox
    但是你没有这么多资源精力从开源版做起
    qiyuey
        7
    qiyuey  
       2023-07-04 16:30:58 +08:00
    Tor Brower 就是基于火狐
    NoOneNoBody
        8
    NoOneNoBody  
       2023-07-04 16:54:52 +08:00
    主要是你自己“玩”有没有必要做个“浏览器”
    浏览器的概念有点大,需要知道很多网络相关的知识,session 管理,就做一个 block 功能都累死人,各种容错想想都头大……

    我倒是写了几个 webviewUI 脚本,就针对某个 domain/url ,自动加载相应的 css 和脚本,打开提取关注的内容(必要时自动保存),不考虑容错,省事很多
    agagega
        9
    agagega  
       2023-07-04 17:07:20 +08:00
    火狐的源码应该是最完整的,拉下来 mach build 出来就是一个完整的 firefox nightly

    webkit 在 macOS 上编译完需要注入到某个 safari 里才能运行,linux 上有另外的方案( gnome 里好像用到了 webkit ,而 webkit 本来就来自于 kde 的 khtml )
    AoEiuV020JP
        10
    AoEiuV020JP  
       2023-07-04 17:10:49 +08:00
    > 在 windows 下可以打包编译出一个在 linux 上运行的包
    这是想交叉编译?应该是理论上可行但估计没有文档得自己研究,不如直接虚拟机或者 wsl ,
    badboy17
        11
    badboy17  
    OP
       2023-07-04 17:49:07 +08:00
    @NoOneNoBody 暂时我不需要增加什么功能,我只需要能够从源码,在我本地然后经过我的编译,能够在跑起来就行了
    NoOneNoBody
        12
    NoOneNoBody  
       2023-07-04 18:31:26 +08:00
    @badboy17 #11
    感觉对话不在一个频道

    A. 用一个浏览器内核单进程展示一个页面或者几个页面是很简单的
    B. 但达到“浏览”的级别,例如访问不同的网站,要做前进后退、cookies 管理、session 管理这些,就已经是项目了,这些都是浏览器的很基础的功能,并不是增加什么高级需求,但内核是不带这些的,都需要“套壳”时自己写;再进一步,多 tab ,要做 tab 管理,网络并发管理,界面多进程处理等等,这也是现在浏览器的基本功能,但也是需要在“套壳”时自己写的

    所以我说要想清楚是不是要做一个浏览器(B),还是只是展示特定内容(A)就够了

    C. 当然也可以完全下载人家一整套开源的浏览器代码,只改动很少的部分,例如 logo 、字体、配色、一些名称、不影响浏览的排版……这样重新编译也是简单的,只是我觉得这样没太大意思(意义)
    badboy17
        13
    badboy17  
    OP
       2023-07-04 20:36:08 +08:00
    @NoOneNoBody 谢谢大佬的耐心解释,浏览器内核我不太清楚,所以一开始理解有误,我以为内核套上 ui 控件,就基本可用了,我其实我的本意是想基于这些开源内核自己做一个指纹浏览器,所以我希望只修改跟指纹有关的部分,控件和 sesseion ,cookie 管理我都没有必要自己花时间写,我希望拿到一个完整的代码,然后自己编译
    janus77
        14
    janus77  
       2023-07-04 21:17:15 +08:00
    不是有个 waterfox 吗,就是基于 firefox 的
    yuekcc
        15
    yuekcc  
       2023-07-04 22:08:12 +08:00
    ms 的 webview2 也可以考虑一下。理论上 vb6 也可以操作 webview2 (未证实)。毕竟古时候 vb6 也可以搞个套壳 ie 出来的。还有一个 cef 控件,.net 也能用。

    现代最方便开发定制浏览器还是利用 electron 。成品有 https://github.com/yessGlory17/programmer-browserhttps://github.com/minbrowser/min ,都是很有特色的产品。
    sloknyyz
        16
    sloknyyz  
       2023-07-05 09:38:15 +08:00
    自己编译的浏览器上大多数网站都没问题,但是像 Netflix 这种就不行,没有被认可的签名过的程序没法看视频。
    realpg
        17
    realpg  
       2023-07-05 18:19:48 +08:00
    @NoOneNoBody #12
    他想换皮,就是 firefox 改改图标 字符串替换一下就 i 成他的产品了
    其他代码逻辑功能一概不想动
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   976 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 19:02 · PVG 03:02 · LAX 11:02 · JFK 14:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.