文章      动态     相关文章     最新文章     手机版动态     相关动态     |   首页|会员中心|保存桌面|手机浏览

1n85wu

http://www78564.xrbh.cn/com1n85wu/

相关列表
文章列表
  • 暂无文章
推荐文章
Chrome代码笔记 1 -- Chrome的启动 I
发布时间:2024-12-31        浏览次数:11        返回列表

我们知道一般的Windows程序都会有一个WinMain函数,Chrome的这个函数在chromeappchrome_exe_main_win.cc这个文件中:

Chrome代码笔记 1 -- Chrome的启动 I

首先,这个函数初始化了CommandLine,它是一个singleton,用来保存和管理当前进程中的所有参数。然后又创建了一个AtExitManager,它是用来负责所有singleton的销毁工作的。若是在Win8下并满足MetroDriver的检测的话,就可能通过MetroDriver::RunInMetro来启动Chrome。下面将详细看一下用的比较多的RunChrome函数。

RunChrome中的第一个先调用ShowRestartDialogIfCrashed,Chrome若是之前崩溃了,这个函数就互弹出一个MessageBox,告诉你崩溃的情况,是否需要再开启Chrome,若要开启,下面的代码再跑一遍,重新打开Chrome。

接下来初始化sandbox,sandbox对象创建完后,必须要用content::InitializeSandboxInfo初始化。

由于,Chrome的实际内容并不在Chrome.exe中,而在Chrome.dll中,所以下面有个创建MainDllLoader对象的过程 —— MakeMainDllLoader()。然后通过这个对象的Launch方法将整个Chrome加载起来,这个方法有两个参数:一个是WinMain中的HINSTANCE,另一个是之前创建的那个sandbox。