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 · 8653 次点击
    这是一个创建于 1549 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前用过 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 上的编译脚本
    45 条回复    2021-03-26 08:32:30 +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,除了第一次需要完整编译,后面都很快了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5902 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:41 · PVG 10:41 · LAX 18:41 · JFK 21:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.