微信号:ardays

介绍:android每日绝对干货

今天的学习

2018-02-11 21:52 小Z

今天的学习。

Webkit是什么?

  1. webCore : 实现包含对html、css、等很多w3c规范的实现;

  2. 狭义上的webkit ,主要是各个平台的移植并提供的web接口,webview,提供操作和显示的作用。

  3. webkit2 网页渲染置于单独的线程,而接口层则在另外一个进程,他们之间的通过IPC来通讯,

  4. chromium 是一个建立在webkit 上的开源项目

  5. Chrome 是基于chromium 的开源项目




Webkit模块有:

HTML解析:负责HTML解析

Css解析:负责css 解析工作

图片解码:支持不同编码格式图片

js 引擎:js 语言的解析引擎,缺少的尸JavaScriptCore,但是目前Google的v8 javascript 被广泛使用

正则表达式

布局:负责布局计算和更新

文档对象模型(DOM):DOM 是w3c 定义的对象模型。该部分负责DOM树以及相应的接口。

渲染:与渲染相关的基础设施,例如渲染树、渲染层次树、

SVG:对SVG的支持

XML解析:XML语言解析执行。

XSLT:XSLT 语言的解析执行

URL解析器:URL规范的解析

Unicode编码解析:各种编码工作

移植

 

 

Chromium模块有:

Cookie管理器:cookie 生命周期的管理

历史管理器:历史记录管理‘

密码管理器:网页密码登录信息管理

窗口管理:多个tab 页的管理和切换

地址栏:地址栏功能智能地址填充与书签的协同工作

安全浏览器黑名单管理:安全浏览机智

网络栈:与网络传输相关的工作,

SSL/TLS:网络传输安全

磁盘缓存:

下载管理:

粘贴板:

书签管理:

URL解析器:

Unicode编码解析:

 

Chromium的多进程框架带来的三点好处:

1.避免单一页面崩溃影响整个浏览器的稳定性

2.第三方插件崩溃尸不会影响页面或者浏览器奔溃

3.安全模型的实施

 

 


任务传递机制

每个线程内部是如何处理这些事情和任务的?

MessageLoop,每个线程会有自己的MessageLoop,它们用来处理这些事情和任务。


chrome 线程:进程的主线程,browser 进程重要主要是负责 UI,当然也是管家;Renderer 进程中则是管家兼处理 WebKit 渲染的;gpu 进程中则是负责处理处理绘图请求并调用 openGL 进行绘制工作的。

Chrome_IOThread/Chrome_ChildIOThread线程:用来接受来自其它进程的 IPC 消息和派发自身消息到其它进程。 SignalSender 线程: V8 JavaScript 引擎中用于处理 Linux 信号的线程。

 


 
Android每日干货 更多文章 漫谈 CSS in JS JavaScript四舍五入的那些坑 探索 headless chrome react + redux性能优化之重复渲染 在react项目中使用redux or mobx?
猜您喜欢 Yunba.io 云巴2017届秋季校园招聘现已正式启动! 一起来玩捕捉新功能的小游戏 不以留人为目的的招聘都是耍流氓 VSAN - 超融合架构领袖,用户数超过3000 【摘文】周例会流程及说明