Edge浏览器参考架构
一般浏览器的主要结构都是下图这样的。所以参考下图来绘制Edge的架构。
首先打开一个edge浏览器,然后我们用任务管理器去查看,会看到下图这样的结果。
查阅相关资料得知,老版本的Edge由MicrosoftEdge.exe
和MicrosoftEdgeCP.exe
两个进程组成,后来的版本采用UWP架构,其进程主要由RuntimeBroker.exe
和其他进程组成。其中RuntimeBroker
和一些核心进程为中等完整性级别,其他进程都在AppContainer
中以低完整性级别运行。
AppContainer
是windows提出的进程隔离机制。通过将应用程序与不需要的资源和其他应用程序隔离,可以最大限度地减少恶意操纵的机会。
- Browser_Broker是broker进程,负责启动C网页,同时执行类似文件保存等高特权动作,以中等完整性级别运行。
- Runtime Broker是以中等完整性级别运行,负责权限管理。
- Chakra JIT Complier是JavaScript的编译器,负责解析和执行Javascript代码。
- User Interface Service顾名思义是提供用户接口服务。
- Background Tab Tool 是标签页工具。
- 百度一下你就知道是我打开的页面。Edge会为每一个标签页创建一个进程,是浏览器sandbox机制的体现。
- Microsoft Edge Mangaer是主要进程,有待进一步分析。
接下来使用Process Explorer工具来查找Edge各个部分所使用的模块。在process explore中发现Edge的进程有这么几个,和任务管理器大同小异。
查看MicrosoftEdgeCP.exe的dll,根据描述,推测:
- EdgeContent.dll是Edge的浏览器引擎
- edgehtml.dll是渲染引擎
- JS解释器:chakra.dll
- XML解释器:xmllite.dll
- 网络相关组件包含
- windows HTTP服务:winhttp.dll
- Win32的Internet扩展:wininet.dll
- Web客户端DLL:Windows.Web.dll
- 用户界面后端包含
- Windows DirectUI 引擎:dui70.dll
- Windows Direct User Engine:duser.dll
- DirectX Graphics Infrastructure:dxgi.dll
结合以上信息,可以初步绘制Edge参考架构:
reference:
- edge基础知识
- How browser work
- 浏览器时序图及Edge参考架构
- 浏览器安全 -原理 时序 Render DOM树构建