abl*_*lmf 38 browser architecture google-chrome multiprocess
我们被告知Google Chrome会在单独的流程中运行每个标签.因此,一个选项卡中的崩溃不会导致其他选项卡出现问题.
AFAIK,多进程主要用于没有GUI的程序.我从来没有读过任何可以将多个GUI流程嵌入到单个GUI流程中的技术.
Chrome是如何做到的?
我问这个问题是因为我正在设计CCTV软件,它将使用来自多个相机制造商的视频解码SDK,其中一些远非稳定.所以我更喜欢在不同的流程中运行这些SDK,我认为这与Chrome类似.
Dan*_*llo 42
基本上,他们使用另一个过程将它们全部粘合到GUI中.
Google Chrome会创建三种不同类型的流程:浏览器,渲染器和插件.
浏览器: 只有一个浏览器进程,用于管理浏览器的选项卡,窗口和"chrome".此过程还处理与磁盘,网络,用户输入和显示的所有交互,但它不会尝试从Web解析或呈现任何内容.
渲染器: 浏览器进程创建许多渲染器进程,每个进程负责渲染网页.渲染器进程包含用于处理HTML,JavaScript,CSS,图像等的所有复杂逻辑.Chrome使用开源WebKit渲染引擎实现了这一点,该引擎也被Apple的Safari Web浏览器使用.每个渲染器进程都在沙箱中运行,这意味着它几乎不能直接访问磁盘,网络或显示器.与Web应用程序的所有交互(包括用户输入事件和屏幕绘制)都必须通过浏览器进程.这使浏览器进程可以监视呈现器是否存在可疑活动,如果它怀疑已经发生了攻击,则会将其终止.
插件: 浏览器进程还为正在使用的每种类型的插件创建一个进程,例如Flash,Quicktime或Adobe Reader.这些进程只包含插件本身,以及一些粘合代码,以便它们与浏览器和渲染器进行交互.
| 归档时间: |
|
| 查看次数: |
10281 次 |
| 最近记录: |