V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
antowa
V2EX  ›  程序员

chromium 浏览器开发

  •  
  •   antowa · 2017-06-12 09:52:10 +08:00 · 9381 次点击
    这是一个创建于 2481 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在要从头开始一浏览器项目研发。选用基于 chromium 浏览器。请问谁有类似的实例或者是技术资料可以分享?十分感谢
    45 条回复    2017-06-14 09:40:34 +08:00
    ajan
        1
    ajan  
       2017-06-12 09:56:49 +08:00
    CEF
    gouchaoer
        2
    gouchaoer  
       2017-06-12 10:05:32 +08:00
    你是做桌面端还是安卓端还是 iOS 端?你们浏览器组有多少人?我最近也卡在这里了
    gouchaoer
        3
    gouchaoer  
       2017-06-12 10:05:43 +08:00
    浏览器定制挺难的
    ahtsiu
        4
    ahtsiu  
       2017-06-12 11:29:48 +08:00
    crosswalk
    antowa
        5
    antowa  
    OP
       2017-06-12 13:41:40 +08:00
    @gouchaoer 我们要做 LINUX 平台。组里正在招人。目标 25 人。现在人手不够。
    antowa
        6
    antowa  
    OP
       2017-06-12 13:42:13 +08:00
    @ajan 请问 CEF 是什么?我 Google 没有找到
    antowa
        7
    antowa  
    OP
       2017-06-12 13:43:16 +08:00
    @gouchaoer 现在发现 chromium 很吃内存和 CPU。机器配置都不行啊。带起来有点费劲
    antowa
        8
    antowa  
    OP
       2017-06-12 13:44:12 +08:00
    @ahtsiu 感谢。我在 github 上找到这个项目了
    ajan
        9
    ajan  
       2017-06-12 13:54:40 +08:00
    ajan
        10
    ajan  
       2017-06-12 13:55:29 +08:00
    Linux 平台的没弄过,不太清楚
    wuruxu
        11
    wuruxu  
       2017-06-12 14:05:56 +08:00
    @ahtsiu crosswalk 好像是停止开发了
    antowa
        12
    antowa  
    OP
       2017-06-12 14:07:04 +08:00
    @ajan 多谢!请问你有过 chromium 下的开发经验吗?机器硬件问题如何解决?想租用 AWS 来做编译服务器不知道是否可行
    wuruxu
        13
    wuruxu  
       2017-06-12 14:07:59 +08:00
    @antowa 你们是哪个公司呀? 25 个人的开发团队,应该差不多了
    wuruxu
        14
    wuruxu  
       2017-06-12 14:09:55 +08:00
    @antowa 编译这么大的工程,怎么都应该自己买个好点台式机,租用 AWS 不靠谱
    antowa
        15
    antowa  
    OP
       2017-06-12 14:22:40 +08:00
    @wuruxu 不想在这里公布公司。如果想了解加微信 risk_fox 吧
    hellove1985
        16
    hellove1985  
       2017-06-12 15:20:42 +08:00
    chromium 下有个 content_shell,入门必备。编译机器有个 16G 内存,100G 硬盘,4 核 CPU 也就可以了。
    springz
        17
    springz  
       2017-06-12 15:22:19 +08:00
    能把 chromium 编译跑起来就成功了一半了
    springz
        18
    springz  
       2017-06-12 15:23:08 +08:00
    我们之前也做过这块,到最后评估了下我们还是做插件算了。
    springz
        19
    springz  
       2017-06-12 15:23:35 +08:00
    主要是 chromium 是几个超大项目的混合
    hellove1985
        20
    hellove1985  
       2017-06-12 15:26:03 +08:00
    @springz 现在编译 chromium 比以前简单多了,只要网络没问题,几条命令就可以跑起来了。主要看自己真的需不需要套个壳。
    gouchaoer
        21
    gouchaoer  
       2017-06-12 15:52:38 +08:00
    crosswalk 都要完了
    cef 已经不是主流

    直接看官方的 chromium 的 repo 的指导吧,仅仅是编译 chromium 的话很简单,我编译的是安卓移动端: http://qsalg.com/?p=585

    然而没有卵用,我想加一些功能就得去读源码,读又读不懂,这个太难了
    antowa
        22
    antowa  
    OP
       2017-06-12 16:57:33 +08:00
    @springz 我现在已经把源码下了编译成功运行了。
    antowa
        23
    antowa  
    OP
       2017-06-12 16:58:50 +08:00
    @hellove1985 最近为了开发这个买了 16G 内存。但是 CPU 是硬伤,I7 的五年前的老四核笔记本处理器。
    antowa
        24
    antowa  
    OP
       2017-06-12 16:59:54 +08:00
    @gouchaoer 是的。chromium 项目庞大,理解起来不那么容易
    antowa
        25
    antowa  
    OP
       2017-06-12 17:01:03 +08:00
    @springz 我们主要是和 ARM 平台对接。然后裁剪定制一些功能。插件开发是一部分。很多东西都在摸索
    hellove1985
        26
    hellove1985  
       2017-06-12 18:22:23 +08:00
    @antowa 比较好奇 25 个人,你们要改啥。。。
    em70
        27
    em70  
       2017-06-12 18:27:05 +08:00 via Android
    chromium 的绿色版做得很好,可以参数控制很多浏览器行为,直接把 logo 改了就行,绝对比自己编译开发好啊,除非要定制内核
    pq
        28
    pq  
       2017-06-12 18:44:08 +08:00
    chromium 编译时能加入 x264 的支持么?原生 chromium 不支持 h264,基本就不想用了。。。
    htfy96
        29
    htfy96  
       2017-06-12 18:45:51 +08:00
    CEF 坑居多……
    pagxir
        30
    pagxir  
       2017-06-12 18:53:00 +08:00 via Android
    曾想边缘 quic 的,后来发现文件巨多生成文件巨大,就改为自己写了。
    likaci
        31
    likaci  
       2017-06-12 18:56:27 +08:00
    想起了被 crosswalk 支配的恐惧…
    光下源码就卡了好几天
    ivechan
        32
    ivechan  
       2017-06-12 19:00:27 +08:00   ❤️ 2
    直接看 https://www.chromium.org/developers,建议首先看 devs guide。
    不建议在其他移植开源上浪费时间,chromium 浏览器架构庞大,这些项目不一定反馈及时。
    以前因为 115 浏览器,稍微尝试过 chromium 编译(几天时间,经验仅供参考)
    下面是我的经验:
    1. 整个项目 clone 下来大概 25G 左右。(现在可能接近 30G )
    2. i5 4590 + 8G + SSD 从头编译大概耗时 4 个小时,仅供参考,不推荐非 SSD。
    3. chromium 的内核是 blink,不是 webkit,虽然同源,但是 blink 也加入了很多自己的东西,所以 webkit 方面的内容可以参考,但不能相信 。
    4. 利用好自带的 testing 可以节省很多时间。
    5. (选) 我研究的是 Web IDL,这是我推荐的资料。

    https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings
    https://trac.webkit.org/wiki/WebKitIDL#Overview
    tinyproxy
        33
    tinyproxy  
       2017-06-12 23:20:43 +08:00 via iPhone
    可以去 csdn 上搜朱永胜关于 chromium 的博客,印象中他出了本书。
    antowa
        34
    antowa  
    OP
       2017-06-13 15:55:26 +08:00
    @hellove1985 简单说依靠浏览器搭建一个通用平台吧。定制一些底层开放接口,对接到不同产品
    antowa
        35
    antowa  
    OP
       2017-06-13 15:56:59 +08:00
    @em70 现在还不能用绿色版。需要在完整 chromium 上做开发
    antowa
        36
    antowa  
    OP
       2017-06-13 15:58:05 +08:00
    @pagxir 的确,编译后代码量不小。请教下你自己写的话参考过哪些东西?比如插件方面呢?
    antowa
        37
    antowa  
    OP
       2017-06-13 15:58:29 +08:00
    @likaci 哈哈。这一关我已经过来了
    antowa
        38
    antowa  
    OP
       2017-06-13 16:01:54 +08:00
    @ivechan 感谢!你的宝贵经验很重要。谢谢分享。再问个问题:插件开发和 ARM 平台移植上是否有一些好的资料可以借鉴呢?
    antowa
        39
    antowa  
    OP
       2017-06-13 16:04:28 +08:00
    @tinyproxy 额,我点开朱永胜博客居然是太极。。。印象中关于浏览器开发的书籍比较少,知道有本《 webkit 开发指南》是不是他写的?
    pagxir
        40
    pagxir  
       2017-06-13 16:57:30 +08:00 via Android
    native 插件以前可以用 npapi,最新的应该只能用 C++的接口了。界面方面插件跟 Firefox 很接近,可以参考。一个 extendtion 基本稍微改改就可以同时在 chrome 跟 firefox 上跑。
    ivechan
        41
    ivechan  
       2017-06-13 18:50:27 +08:00
    @antowa chrome 支持很多插件形式,比如 npai,extension 等等,我不确定你所说的开发的插件需要使用那种方法。
    不过之前我研究 115 浏览器的时候, 它的实现方法,是通过 IDL bindings, 暴露接口给 javascript, 这样很多业务代码可以通过 js 写, 简化流程。
    tinyproxy
        42
    tinyproxy  
       2017-06-14 01:27:58 +08:00 via iPad
    antowa
        43
    antowa  
    OP
       2017-06-14 09:37:50 +08:00
    @ivechan 现阶段主要用 NPAPI 和 PPAPI。最近也在研究这些。对于 NPAPI,把大致的编程结构研究清楚了。但是内部实现原理还是没有弄透。
    antowa
        44
    antowa  
    OP
       2017-06-14 09:38:29 +08:00
    @tinyproxy 太棒了。感谢~很好的材料
    antowa
        45
    antowa  
    OP
       2017-06-14 09:40:34 +08:00
    @pagxir 我看 PPAPI 上既有 C reference 也有 C++ reference。对于开发应该先看哪个呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5003 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:14 · PVG 09:14 · LAX 18:14 · JFK 21:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.