Edge浏览器参考架构

一般浏览器的主要结构都是下图这样的。所以参考下图来绘制Edge的架构。

浏览器bs架构 浏览器架构图_Web

首先打开一个edge浏览器,然后我们用任务管理器去查看,会看到下图这样的结果。

浏览器bs架构 浏览器架构图_Windows_02

查阅相关资料得知,老版本的Edge由MicrosoftEdge.exeMicrosoftEdgeCP.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的进程有这么几个,和任务管理器大同小异。

浏览器bs架构 浏览器架构图_Windows_03

查看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

浏览器bs架构 浏览器架构图_浏览器bs架构_04

结合以上信息,可以初步绘制Edge参考架构:

浏览器bs架构 浏览器架构图_前端_05

reference: