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

2023-07-04 15:09:10 +08:00
 badboy17

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

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

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

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

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

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

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

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

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

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

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

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

C. 当然也可以完全下载人家一整套开源的浏览器代码,只改动很少的部分,例如 logo 、字体、配色、一些名称、不影响浏览的排版……这样重新编译也是简单的,只是我觉得这样没太大意思(意义)
badboy17
2023-07-04 20:36:08 +08:00
@NoOneNoBody 谢谢大佬的耐心解释,浏览器内核我不太清楚,所以一开始理解有误,我以为内核套上 ui 控件,就基本可用了,我其实我的本意是想基于这些开源内核自己做一个指纹浏览器,所以我希望只修改跟指纹有关的部分,控件和 sesseion ,cookie 管理我都没有必要自己花时间写,我希望拿到一个完整的代码,然后自己编译
janus77
2023-07-04 21:17:15 +08:00
不是有个 waterfox 吗,就是基于 firefox 的
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
2023-07-05 09:38:15 +08:00
自己编译的浏览器上大多数网站都没问题,但是像 Netflix 这种就不行,没有被认可的签名过的程序没法看视频。
realpg
2023-07-05 18:19:48 +08:00
@NoOneNoBody #12
他想换皮,就是 firefox 改改图标 字符串替换一下就 i 成他的产品了
其他代码逻辑功能一概不想动

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/953998

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX