chromium之extension机制简单分析一:extension初始化

最近抽时间分析了一下chromium的extension机制,总的来说其架构是比较清晰的,但是由于需要与chromium浏览器(或OS)运行时的各个模块交互,实现起来就比较复杂了,主要代码集中分布于如下几个目录中:./extensions/、./chrome/browser/extensions/、./chrome/common/extensions/、./chrome/renderer/extensions/;刚开始入手分析时试图从这几个目录的实现代码中找到分析突破口,走了不少弯路,总是剪不断,理还乱,几个回合下来还是一头雾水,最后尝试从chromium浏览器启动流程上跟下来,结果豁然开朗。接下来总结下extension系统的初始化过程(主要建立起依赖关系图)、extensionservice的创建及初始化、WebStore应用商店app的安装、WebRequest回调的实现这几个模块的分析情况。

首先可以将浏览器主线程的初始化作为extension系统的初始化入口,此处从BrowserMainRunnerImpl::Initialize方法开始进行分析,为便于进行描述,大致可以分为如下两个阶段:

阶段一:预初始化(从BrowserMainRunnerImpl::Initialize到ChromeBrowserMainExtraPartsProfiles::EnsureBrowserContextKeyedServiceFactoriesBuilt),关键流程如图所示:


注释1:在上图中ChromeContentBrowserClient::CreateBrowserMainParts方法中根据具体的运行平台创建对应的ChromeBrowserMainParts实现对象main_parts(此处以基类代替):

  ChromeBrowserMainParts* main_parts;
  // Construct the Main browser p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值