市面上很多的浏览器基于 chromium 内核换皮的,所以基于 chromium 换皮应该是比较好做的 我如果想要基于 firefox 的 gecko 内核和 webkit 内核打包一个自己用的浏览器,可行吗,难度如何
我在 windows 下可以打包编译出一个在 linux 上运行的包吗
听说 webkit 只是一个内核,缺少了作为一个完整的浏览器的其他部分,包括 ui 等等 那么基于 firefox 火狐重新打包一个自己的浏览器可行性如何
1
codehz 2023-07-04 15:28:33 +08:00 1
firefox 没多少人做主要是协议问题,做了必须开源
webkit 还是有很多人做的,linux 下 gnome 用的哪个浏览器就是 webkit 的 chromium 肯定不能算好做,因为官方更新太快了,你的修改很容易就会和官方的更新冲突,然后如果你版本锁死不更新的话,那 chromium 这么大占有率,发现个什么漏洞你就完了 |
2
tool2d 2023-07-04 15:28:57 +08:00
electron 有二进制发布,和 chrome 同内核,应该是目前最简单自定义浏览器的方案了。
|
3
PepperEgg 2023-07-04 15:34:35 +08:00
可行性 100%,根据官方文档自己编译就行了。
|
4
badboy17 OP @codehz 我不需要跟着官方更新,这个主要自己做着玩的,自己用。firefox 的源码我拿来,可以直接编译打包成一个可执行的吗,webkit 是不是只是一个内核,需要自己搞定 ui 组件之类的
|
5
0o0O0o0O0o 2023-07-04 15:54:37 +08:00 via iPhone 1
最近也在搞这方面,个人体验:
如果只是 chromium 编译,根据官方文档用官方建议的环境/容器,有够好的网络,没什么难度; 想开发,光成功导入自己常用的 IDE 让它有正常的开发体验这一步我觉得就够难的了; 想动一些核心组件,热门点的有很多解析文章还可以跟着学,一些比较冷门的就得自己啃了; 如果还想紧跟上游,那无论是 patch 的方式,还是流程管理,个人都要摸索很久,可以参考 ungoogled-chromium 。 |
6
Finnn 2023-07-04 15:58:24 +08:00
也不是不行, 毕竟洋葱就是出身于 Firefox
但是你没有这么多资源精力从开源版做起 |
7
qiyuey 2023-07-04 16:30:58 +08:00
Tor Brower 就是基于火狐
|
8
NoOneNoBody 2023-07-04 16:54:52 +08:00
主要是你自己“玩”有没有必要做个“浏览器”
浏览器的概念有点大,需要知道很多网络相关的知识,session 管理,就做一个 block 功能都累死人,各种容错想想都头大…… 我倒是写了几个 webviewUI 脚本,就针对某个 domain/url ,自动加载相应的 css 和脚本,打开提取关注的内容(必要时自动保存),不考虑容错,省事很多 |
9
agagega 2023-07-04 17:07:20 +08:00
火狐的源码应该是最完整的,拉下来 mach build 出来就是一个完整的 firefox nightly
webkit 在 macOS 上编译完需要注入到某个 safari 里才能运行,linux 上有另外的方案( gnome 里好像用到了 webkit ,而 webkit 本来就来自于 kde 的 khtml ) |
10
AoEiuV020JP 2023-07-04 17:10:49 +08:00
> 在 windows 下可以打包编译出一个在 linux 上运行的包
这是想交叉编译?应该是理论上可行但估计没有文档得自己研究,不如直接虚拟机或者 wsl , |
11
badboy17 OP @NoOneNoBody 暂时我不需要增加什么功能,我只需要能够从源码,在我本地然后经过我的编译,能够在跑起来就行了
|
12
NoOneNoBody 2023-07-04 18:31:26 +08:00
@badboy17 #11
感觉对话不在一个频道 A. 用一个浏览器内核单进程展示一个页面或者几个页面是很简单的 B. 但达到“浏览”的级别,例如访问不同的网站,要做前进后退、cookies 管理、session 管理这些,就已经是项目了,这些都是浏览器的很基础的功能,并不是增加什么高级需求,但内核是不带这些的,都需要“套壳”时自己写;再进一步,多 tab ,要做 tab 管理,网络并发管理,界面多进程处理等等,这也是现在浏览器的基本功能,但也是需要在“套壳”时自己写的 所以我说要想清楚是不是要做一个浏览器(B),还是只是展示特定内容(A)就够了 C. 当然也可以完全下载人家一整套开源的浏览器代码,只改动很少的部分,例如 logo 、字体、配色、一些名称、不影响浏览的排版……这样重新编译也是简单的,只是我觉得这样没太大意思(意义) |
13
badboy17 OP @NoOneNoBody 谢谢大佬的耐心解释,浏览器内核我不太清楚,所以一开始理解有误,我以为内核套上 ui 控件,就基本可用了,我其实我的本意是想基于这些开源内核自己做一个指纹浏览器,所以我希望只修改跟指纹有关的部分,控件和 sesseion ,cookie 管理我都没有必要自己花时间写,我希望拿到一个完整的代码,然后自己编译
|
14
janus77 2023-07-04 21:17:15 +08:00
不是有个 waterfox 吗,就是基于 firefox 的
|
15
yuekcc 2023-07-04 22:08:12 +08:00
ms 的 webview2 也可以考虑一下。理论上 vb6 也可以操作 webview2 (未证实)。毕竟古时候 vb6 也可以搞个套壳 ie 出来的。还有一个 cef 控件,.net 也能用。
现代最方便开发定制浏览器还是利用 electron 。成品有 https://github.com/yessGlory17/programmer-browser 、https://github.com/minbrowser/min ,都是很有特色的产品。 |
16
sloknyyz 2023-07-05 09:38:15 +08:00
自己编译的浏览器上大多数网站都没问题,但是像 Netflix 这种就不行,没有被认可的签名过的程序没法看视频。
|
17
realpg 2023-07-05 18:19:48 +08:00
|