第三章 WebKit架构

1. WebKit架构

WebKit架构

2. Chromium浏览器的架构和模块

Chromium浏览器是基于WebKit(blink)的。

1. 架构和模块

Chromium的架构模块

Content模块是指用来渲染网页内容的模块,通过Content模块,浏览器的开发者不仅可以在WebKit的Chorme的移植上渲染网页内容,而且可以获得沙箱模型、跨进程的GPU硬件加速机制、众多的H5功能。

2. 多进程模型

相信你一定有过这样的经历:在使用浏览器打开多个页面的时候,不幸的是其中某个页面不响应了或者崩溃了,随之而来的可能是更不幸的事——其他所有页面也不响应或崩溃了。


多进程的引入有以下几点好处:

  1. 不会因为单个页面的不响应或崩溃而影响整个浏览器的稳定性,特别是对用户界面的影响;
  2. 当第三方插件崩溃的时候,不会影响页面或浏览器的稳定性,这是因为第三方插件也被使用单独的进程来运行;
  3. 它方便了安全模型的实施,也就是说沙箱模型也是基于多进程架构的。
Chromium多进程模型

Chromium浏览器主要包括以下进程类型:

  1. Browser进程:浏览器的主进程,负责浏览器主界面的显示、各个页面的管理,是其他所有进程的祖先,负责它们的创建和销毁工作,它有且仅有一个。
  2. Render进程:网页的渲染进程,负责页面的渲染工作,blink/WebKit的渲染工作主要在这个进程完成。
  3. NPAPI插件进程:该进程是为NPAPI类型的插件而创建的。
  4. GPU进程:最多只有一个,当且仅当GPU硬件加速打开的时候才会被创建,主要用于对3D图形加速调用的实现。
  5. Pepper插件进程:类似于NPAPI进程。

总结:

  1. Browser进程和页面的渲染是分开的,这保证了页面渲染导致的崩溃不会导致浏览器主界面的崩溃。
  2. 每个页面是独立的进程,这保障了页面之间相互不影响。
  3. 插件进程也是独立的,插件本身的问题不会影响浏览器主界面和网页。
  4. GPU硬件加速进程也是独立的。

你可能感兴趣的:(第三章 WebKit架构)