准备做个定制版 Chromium - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Get Google Chrome
Vimium 在 Chrome 里使用 vim 快捷键
typetraits
V2EX    Chrome

准备做个定制版 Chromium

  •  6
     
  •   typetraits 2020-08-23 10:21:03 +08:00 960 次点击
    这是一个创建于 1941 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前用过 ungoogled-chromiumBrave ,各有优劣,但是也不能 100%满足需求,所以准备自己定制一些功能。

    现在从上述两个开源项目移植了一些 patch,从 Chromium 中移除 /禁用了下列功能:

    1. Safe Browsing
    2. Crash Reporter/Crashpad
    3. RLZ
    4. Rappor
    5. Network Time Tracker
    6. New Tab Page 中的推广信息
    7. IPv6 Probe
    8. 大量统计信息,Chromium 中几乎一切操作都会被统计(在chrome://histograms中可以查看)

    然后又从 Edge 抄了灰色 Web 控件颜色和直角、带阴影的 Tab 栏,接下来计划实现如下功能:

    1. 移植 Firefox Container
    2. 原生实现ClearURLs扩展的移除 URL 中统计参数的功能,毕竟多开一个扩展就多占一份内存
    3. 集成 Zotero Connector
    4. 移植 Brave 中的 Fingerprint Protection 功能。现在实现了返回随机数据(Panopticlick中部分 fingerprint 数据返回 randomized ),但是功能无法开关,对一些滑动验证功能有影响
    5. 再试试把 Chromium 中的tcmalloc内存分配器换成微软的mimalloc
    第 1 条附言    2020-08-28 20:53:40 +08:00
    放了个 GitHub repo https://github.com/bytanuky/dumb-browser
    暂时只在 macOS 上编译通过,Windows/Linux 上还未测试
    以后会更新一键编译脚本
    第 2 条附言    2020-08-28 23:54:04 +08:00
    恢复了旧版 Chrome 中标签页上的点击静音按钮:chrome://flags/#enable-tab-audio-muting
    第 3 条附言    2020-08-30 21:31:40 +08:00

    增加了自动移除URL中的追踪参数功能(规则来自ClearURLs

    第 4 条附言    2020-09-06 23:03:17 +08:00
    更新了 macOS 和 Windows 上的编译脚本
    46 条回复    2024-11-20 17:01:55 +08:00
    Redbeanw
        1
    Redbeanw  
       2020-08-23 10:59:56 +08:00
    加油,支持一下
    Leon6868
        2
    Leon6868  
       2020-08-23 11:08:23 +08:00 via Android   1
    支持
    提个建议:能否让 chromium 的体积更小一点

    有没有 timeline 之类的,我想看看项目进度
    sfqtsh
        3
    sfqtsh  
       2020-08-23 11:45:53 +08:00 via Android
    目前在用 vivaldi
    Huelse
        4
    Huelse  
       2020-08-23 11:47:53 +08:00
    支持,长远来看这是一项大工程,在性能与功能之间要不断做出调整和平衡。
    ifxo
        5
    ifxo  
       2020-08-23 11:58:10 +08:00
    正在用 Naver Whale,功能比较全面
    pp22
        6
    pp22  
       2020-08-23 12:20:45 +08:00 via Android
    我最想要去除只能在谷歌商店才能安装扩展的限制,可惜没能力
    ciaoly
        7
    ciaoly  
       2020-08-23 12:38:43 +08:00 via Android
    马克。楼主不打算和别人协作嘛?
    Perry
        8
    Perry  
       2020-08-23 12:43:51 +08:00 via iPhone
    @pp22 不是一直可以从本地倒入扩展的吗?
    SteveZou
        9
    SteveZou  
       2020-08-23 13:54:25 +08:00
    @pp22 只能在谷歌商店才能安装扩展?
    youthcould
        10
    youthcould  
       2020-08-23 14:13:47 +08:00
    zotero connector,我一直用小书签版,一样好用,还不用安装插件,推荐
    youthcould
        11
    youthcould  
       2020-08-23 14:15:35 +08:00   1
    如果是 win 版,建议可以考虑原生改进字体渲染,或者比如替换字体等
    miaomiao888
        12
    miaomiao888  
       2020-08-23 14:59:56 +08:00
    @pp22 cent 浏览器有实现
    typetraits
        13
    typetraits  
    OP
       2020-08-23 16:20:55 +08:00
    @pp22 #6 如果你愿意自己编译 Chromium 的话,修改 chrome/browser/extensions/crx_installer.cc 就可以了
    410-422 行
    kerro1990
        14
    kerro1990  
       2020-08-23 16:37:33 +08:00
    精简下体积,20M 左右就好了
    wdhwg001
        15
    wdhwg001  
       2020-08-23 16:44:10 +08:00 via iPhone
    @kerro1990
    @Leon6868
    体积小的嵌入库有 miniblink,可以自行补上浏览器的部分。
    typetraits
        16
    typetraits  
    OP
       2020-08-23 16:46:55 +08:00
    @Leon6868 #2 好提议
    现在 Chromium 中的组件太多了,移除掉一些可以减小体积
    timeline 暂时还没有,现在只在业余时间搞
    typetraits
        17
    typetraits  
    OP
       2020-08-23 16:48:09 +08:00
    @ciaoly #7 考虑过,但是现在只是业余时间搞一下
    以后可以慢慢找人协作
    typetraits
        18
    typetraits  
    OP
       2020-08-23 16:49:17 +08:00
    @kerro1990 #14
    编译之后 Blink 本身就 20M 了
    libchrome_dll 80M
    libcontent 42M
    20M 你只能得到一个 Blink 内核,连 UI 都没有
    kerro1990
        19
    kerro1990  
       2020-08-23 16:49:54 +08:00
    @wdhwg001 miniblink 太老了
    Leon6868
        20
    Leon6868  
       2020-08-23 17:45:51 +08:00
    @typetraits 你可以搞个 github 仓库,我们 watch 一下
    Whalko
        21
    Whalko  
       2020-08-23 17:59:10 +08:00
    码一下,作恶越来越过分了。= =
    Cielsky
        22
    Cielsky  
       2020-08-23 18:04:23 +08:00 via Android
    可以用 ublock orgin 和油猴就好了。
    发现第三方直接支持 ABP 规则的浏览器,基本上拦截效果都有点差劲
    pp22
        23
    pp22  
       2020-08-23 18:44:25 +08:00 via Android
    @Perry 开发者模式每次重新打开浏览器都有提醒,烦人
    pp22
        24
    pp22  
       2020-08-23 18:47:38 +08:00 via Android
    @SteveZou 不是吗,假如我打包好一个 crx 文件,发给你,你能正常安装吗,别说解压,开发者模式是给调试扩展的,不是正常安装使用的
    pp22
        25
    pp22  
       2020-08-23 18:49:24 +08:00 via Android
    @typetraits 谢谢指点,可能我编译不了,祝你定制顺利吧
    SteveZou
        26
    SteveZou  
       2020-08-23 20:23:06 +08:00 via Android
    @pp22 啊...我没遇到这种问题...我的开发者模式一直是打开的状态,目前我也在用好几个第三方插件,没感觉有啥不方便的啊...
    wtks1
        27
    wtks1  
       2020-08-23 20:25:49 +08:00 via Android
    要是帐号同步什么的能自建就好了....
    guanhui07
        28
    guanhui07  
       2020-08-23 21:01:59 +08:00
    支持一下
    expectation
        29
    expectation  
       2020-08-23 21:02:30 +08:00
    @Cielsky 自己利用 css 选择器编写规则不香么
    typetraits
        30
    typetraits  
    OP
       2020-08-23 23:23:30 +08:00
    typetraits
        31
    typetraits  
    OP
       2020-08-23 23:23:56 +08:00
    @Leon6868 #20 明天有空的时候建个 repo
    beanrobbie
        32
    beanrobbie  
       2020-08-24 00:09:54 +08:00
    win 一直在用 cent iron slimjet vivaldi edge
    Myprincess
        33
    Myprincess  
       2020-08-24 00:26:31 +08:00
    老大,我可不可以建议一个:
    在使用 CHROME 时,可以自动设置自动打开网站前端与后端,并且支持后端 DB 信息推送。不需要登陆。如果我想看,就直接点击那个通知。
    fugu37
        34
    fugu37  
       2020-08-30 08:01:52 +08:00
    > 8. 大量的统计信息

    没有必要删除,重要的是删除上报 Google 服务器的操作
    fugu37
        35
    fugu37  
       2020-08-30 08:06:39 +08:00   1
    使用代理插件时,Chromium 总会提示"Your Internet Connection is being controlled",希望可以去掉。
    typetraits
        36
    typetraits  
    OP
       2020-08-30 21:32:01 +08:00
    @fugu37 #35 加上了,后续考虑在设置中加入开关来控制 UI 中的各项改动
    LNmise
        37
    LNmise  
       2020-09-01 23:54:07 +08:00
    期待 windows 版本和一键编译脚本发布
    Quadverse
        38
    Quadverse  
       2020-09-02 14:27:42 +08:00
    在未来有计划或者可否增加对浏览器字体渲染处理的功能?

    如果工程太大,是否考虑增加对 GDIPP 的兼容?

    我选择 GDIPP 的理由是在 iris 商业软件中集成了 GDIPP,且相对同行软件 mactype 更快且在大量文字中不卡等优点,现在面临的问题是最新版本的火狐和 Chrome 都不兼容 GDIPP.
    typetraits
        39
    typetraits  
    OP
       2020-09-02 15:54:43 +08:00
    @Quadverse #38 抱歉,我不了解 GDIPP,但是搜了一下,这个软件应该是很久没有更新了吧?
    新版的 Chrome 已经使用 DirectWrite 进行字体渲染了,GDIPP 似乎并不支持 DirectWrite ?
    Quadverse
        40
    Quadverse  
       2020-09-03 02:14:36 +08:00
    @typetraits #39 你也许是对的!我并不了解商业集成 GDIPP 版与 CrendKing 的 GDIPP 版的区别,基于以上原因,探索答案似乎已经不再重要了,如要进行下去那么 sandbox 是最大的阻碍。

    如果其他人还是感兴趣,那么可以参阅
    https://bbs.themex.net/archive/index.php/t-16860846-p-4.html
    typetraits
        41
    typetraits  
    OP
       2020-09-06 23:03:52 +08:00
    @LNmise #37 刚刚 push 了新版,可以自己编译了
    但是需要配置好代理,Chromium 源码同步过程很慢
    rekulas
        42
    rekulas  
       2020-11-01 22:15:45 +08:00
    不要让 webdriver 被网站检测到。。。这个是很多人的刚需
    Shazoo
        43
    Shazoo  
       2020-12-01 15:00:29 +08:00
    @typetraits
    楼主,我这里有个需求,需要定制下 Chromium,配合 headless 模式做些业务。请问有时间吗?
    项目本身肯定付费,可以签订正式外包合同。

    如果有兴趣,回复我下。我会留给你联系方式。

    谢谢。
    gainsurier
        44
    gainsurier  
       2021-03-25 23:38:55 +08:00
    lz, 请教一下,你用啥配置进行构建的,大概需要多长时间?
    typetraits
        45
    typetraits  
    OP
       2021-03-26 08:32:30 +08:00 via iPhone   1
    @gainsurier 笔记本 i9-9880h
    以前有 jumbo build 的时候编译需要一个半小时,现在这选项被 Google 取消了,完整编译需要四个小时,所以我也用了 ccache,除了第一次需要完整编译,后面都很快了
    lanisle
        46
    lanisle  
       2024-11-20 17:01:55 +08:00
    看了下 github ,已经停更多年了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5086 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 01:24 PVG 09:24 LAX 17:24 JFK 20:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86