chromium 浏览器开发 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
antowa
V2EX    程序员

chromium 浏览器开发

  •  
  •   antowa 2017-06-12 09:52:10 +08:00 10191 次点击
    这是一个创建于 3042 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在要从头开始一浏览器项目研发。选用基于 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     Solana     2842 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:07 PVG 22:07 LAX 07:07 JFK 10:07
    Do have faith in what you're doing.
    ubao 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