本节介绍Firefox OS 初始化Shell的过程。
在Firefox OS启动过程分析-b2g进程启动
一节中,b2g进程在初始化过程中就会在某点开始加载Shell入口(它是所有应用的container)
从b2g/app/b2g.js中,我们得知Shell的入口:
pref("toolkit.defaultChromeURI", "chrome://b2g/content/shell.html");
那么shell.html是何时加载的?
具体运行流程如下所示:
main
|
|-RunProcesses
|
|-b2g_main
|
|-do_main
|
|-XRE_main
|
|-XREMain::XRE_main
|
|-mScopedXPCOM->Initialize();
| |
| |-NS_InitXPCOM2
|
|-XREMain::XRE_mainRun()
|
|--mozilla::ipc::ProcLoaderClientGeckoInit();
|
|-cmdLine->Init(...)
|
|-cmdLine->Run(); ((toolkit/components/commandlines/nsCommandLine.cpp))
| |
| |-nsCommandLine::EnumerateValidators
| |
| |-nsCommandLine::EnumerateHandlers
| |
| |-EnumRun
| |
| **|-nsICommandLineHandler->Handle**
|