Chromium之启动篇

Chromium代码编译完成了!!!

这庞然大物如何发动的呢,工程如此浩大,为了跨平台,为了组织那么多工程。各种Wrapper,领着人云里来雾里去,有种只可远观,不可玩弄的感觉,这货怎么添加自己的代码啊。

好吧,咱就先从入口开始吧,只要有空就记录一下子,希望给感兴趣的人一点帮助吧!(希望如此,不知道会不会误人子弟呢。。。。。。。。)。

以Windows为例,Linux我也不会。。。。。。。在Linux的版本还没编译出来。。。。。


大家知道Windows上的可执行程序肯定会有个入口点函数的,也就是Main函数。咱就从她开始了!

chrome_exe_main_win.cc中的
int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE prev, wchar_t*, int)就是Chromium的入口了,这里她把字符串相关的都指定为了Unicode,wchar_t,wstring等,不知道为什么这样写死呢,为啥不用_T来自适应呢?

初始化一下环境,就进入了RunChrome中,只有退出程序才会从这里返回了。RunChrome主要就是定位chrome.dll的位置,然后把它加载进来::LoadLibraryExW(),这里有给定的W结尾的函数。然后定位ChromeMain的地址。
DLL_MAIN entry_point =
      reinterpret_cast<DLL_MAIN>(::GetProcAddress(dll_, "ChromeMain"));
ChromeMain位于chrome_main.cc

此后她有转战content_main.cc中的content::ContentMain(instance, sandbox_info, &chrome_main_delegate);

然后再杀回browser_main.cc中的int BrowserMain(const MainFunctionParams& parameters).

途径void BrowserMainLoop::CreateThreads().启动Browser进程中的各种线程,以备将来干活用之。

其中void BrowserMainLoop::MainMessageLoopStart() 是Browser进程中的UI线程,来响应咱们界面的事件。

未完待续,上班了先。哪里有错请指正,欢迎交流!!!!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值