月度归档:2012年07月

chromium版本的选择

基于chromium开发浏览器的首要问题是选择chromium版本。一般不建议使用trunk分支,主要是chromium更新太疯狂了,而chromium release版本通常经过了严格的测试,bug很少。问题是,chromium的release版本非常多,选择同样是很头疼的事。

关于如何下载特定版本,请参考:http://dev.chromium.org/developers/how-tos/get-the-code#TOC-Check-out-the-source-for-a-specific

如何辨别所选版本的release号呢?

  1. 访问发布SVN页面: http://src.chromium.org/svn/releases
  2. 找到最近的里程碑版本。比如M21最新的版本为21.0.1180(1180是21.0.X的最新版本)
  3. 找到最新的release号。比如M21最新的release号为21.0.1180.56(56是21.0.1180.X的最新release号)

一般我们选择release号更新比较多的版本,Chrome的官方发布版本通常是选择这样的版本,比如当前Chrome最新版本为20.0.1132.57 m,在http://src.chromium.org/svn/releases页面我们可以看到1132有非常多的release小版本号。

给定release版本又是在trunk分支的哪个revision建的分支呢?有两个方法:

    方法A:
  1. 查看里程碑版本(21.0.1180)的最早release的DEPS文件,http://src.chromium.org/svn/releases/21.0.1180.0/DEPS
  2. 找到’src’: 行,21.0.1180.0对应的是’/trunk/src@142910′
    方法B:
  1. 访问viewvc页面:http://src.chromium.org/viewvc/chrome/branches/1180/src/
  2. 找到形式为"Branching for xxx @xxxxx”的日志记录,比如: Branching for 1180 @142910

通过以上方法,我们可以确定1180分支是从trunk的revision 142910创建出来的。

chromium代码更新

非常不幸的是chromium代码一直在疯狂的更新,更不幸的是chromium for android还没有稳定的分支,trunk分支上的android平台代码也不完善,所以不得不经常同步trunk上的代码。跟过WebKit代码的同学应该可以体会到这种痛苦,所以需要选择一种代码同步策略。

第一种策略是,针对我们修改的代码做patch文件,然后获取最新的chromium代码,将patch应用到最新chromium代码上。

另一种策略是,使用svn diff为chromium生成patch,然后将patch文件应用到我们的代码。

参考文档:

1. Introduce CEF release branches