浏览器的运行原理(简单)
一、用户在浏览器框输入内容。
浏览器进程获取输入内容判断是url地址还是搜索关键字,关键字就交给搜索引擎,url地址就启动一个网络进程进行DNS域名解析并发送访问请求。
二、网络请求完成。
网络进程请求返回数据,进行safebrowsing安全校验(提示网站存在安全风险),通过安全校验或忽略安全风险继续访问将生成一个渲染进程。
三、渲染进程
1. 浏览器进程通过IPC管道(进程之间的数据通信管道)将网络进程的数据(HTML数据)传递给渲染进程。
渲染进程的主线程将HTML数据进行解析生成DOM Tree,之后进行样式计算得到每个DOM的布局样式,生成 layout Tree, 之后遍历 layout Tree得到图层顺序表,最后生成 layer Tree,主线程将得到的 layout , layer Tree,传递给生成器线程。
2. ,生成器线程进行图层分层,并把图层分成多个图块,将每个图块传递给一个栅格进程。
3. 栅格进行对每个图块进行栅格化处理,栅格化完成将数据存入GPU内存中,并返回给 生成器线程 draw quads 的图块信息。
4. 生成器线程获取 draw quads 图块信息(包括数据在内存中的位置、图块页面渲染的位置信息)生成一个合成器帧,生成器将合成器帧通过IPC通道传递给浏览器进程。
四、浏览器进程
浏览器进程获取到合成器帧后传递给GPU进程,GPU进程进行页面渲染