第三章 WebKit架构
2018-02-05 本文已影响0人
小胡萝卜秧
1. WebKit架构
WebKit架构2. Chromium浏览器的架构和模块
Chromium浏览器是基于WebKit(blink)的。
1. 架构和模块
Chromium的架构模块Content模块是指用来渲染网页内容的模块,通过Content模块,浏览器的开发者不仅可以在WebKit的Chorme的移植上渲染网页内容,而且可以获得沙箱模型、跨进程的GPU硬件加速机制、众多的H5功能。
2. 多进程模型
相信你一定有过这样的经历:在使用浏览器打开多个页面的时候,不幸的是其中某个页面不响应了或者崩溃了,随之而来的可能是更不幸的事——其他所有页面也不响应或崩溃了。
Chromium多进程模型多进程的引入有以下几点好处:
- 不会因为单个页面的不响应或崩溃而影响整个浏览器的稳定性,特别是对用户界面的影响;
- 当第三方插件崩溃的时候,不会影响页面或浏览器的稳定性,这是因为第三方插件也被使用单独的进程来运行;
- 它方便了安全模型的实施,也就是说沙箱模型也是基于多进程架构的。
Chromium浏览器主要包括以下进程类型:
- Browser进程:浏览器的主进程,负责浏览器主界面的显示、各个页面的管理,是其他所有进程的祖先,负责它们的创建和销毁工作,它有且仅有一个。
- Render进程:网页的渲染进程,负责页面的渲染工作,blink/WebKit的渲染工作主要在这个进程完成。
- NPAPI插件进程:该进程是为NPAPI类型的插件而创建的。
- GPU进程:最多只有一个,当且仅当GPU硬件加速打开的时候才会被创建,主要用于对3D图形加速调用的实现。
- Pepper插件进程:类似于NPAPI进程。
总结:
- Browser进程和页面的渲染是分开的,这保证了页面渲染导致的崩溃不会导致浏览器主界面的崩溃。
- 每个页面是独立的进程,这保障了页面之间相互不影响。
- 插件进程也是独立的,插件本身的问题不会影响浏览器主界面和网页。
- GPU硬件加速进程也是独立的。