
Chrome
Horky
爱探索、爱技术!简单地快乐着!
展开
-
Chrome的无痕浏览实现初探
一. 功能定义首先要从功能上明确无痕浏览的作用和目的。涉及的功能包括: Bookmark, History (Input, Browse, Download, Forms/Auto complete), SSL Certs,Cookie, Local Storage, WebSQL, Application Cache, HTTP Cache,Disk Cache, Web App/Plu原创 2014-03-12 01:03:03 · 12234 阅读 · 1 评论 -
2017 前端性能自查表
Smashing Magazine在年底做了一个有意义的事,把最新的Web性能优化实践做了盘点,这里提供其中大部分内容的翻译,供大家参考。有很多我自己也没有深入学习的点,翻译也不能保证准确,所以有时间还是看原文。翻译 2016-12-26 13:37:36 · 3784 阅读 · 0 评论 -
网络性能评价方法
目前度量网络的品质的方法如果仅以网络连接类型来区分,比如2G, 3G, Wifi等,无法有效感知到当时的网络状态。在同一网络连接类型下,网络的品质仍有大幅波动,可能会因为阻塞以及线路上问题导致延迟上抖动(jitter)、丢失数据包、数据包损坏等情况。本文基于对一段时间的网络数据的记录,进行算法处理,可以测出一个衡量当时网络状态的指标。原创 2016-03-08 00:41:45 · 17347 阅读 · 2 评论 -
Chromium中多线程及并发技术要点(C/C++)
Chromium中提供的线程机制,以及并发处理的工具类。原创 2016-01-09 00:46:31 · 5043 阅读 · 0 评论 -
[Chromium]如何安全的使用PostTask
一般场景决策树如何传递绑定的对象官方的解释总是最权威,有疑问看这里或者直接看代码中的说明: bind_helpers.h. 传值方式描述示例this 或 对象指针如果对象本身是一个RefCountedThreadSafe, 没有问题.如果是个裸指针,应当尽量避免,除非你可以保证它的线程安全.原创 2016-01-09 01:25:19 · 7303 阅读 · 0 评论 -
Chormium线程模型及应用指南
核心概念设计上遵循以下原则:1 不要在UI线程做任何阻塞式的I/O操作,以及其它耗时的操作,通过消息传递把各种操作传给相应用途的线程去做。2 不鼓励线程加锁机制和线程安全对象。对象只存在一个线程,通过消息来实现线程之间的通信,线程之间不互相阻塞。通过callback对象实现跨线程请求。一般情况下,我们应该利用一个现有的线程,尽量不要创建新的线程。UI线程实际上会被设置为不允许I/O操作,并且不允许原创 2016-01-09 01:12:54 · 4698 阅读 · 0 评论 -
Chromium中跨进程文件句柄传递
在POXIS下,允许不同进程间传递文件描述符(File Descriptor))的, 比如传递socket,或者普通文件,进而可以达到不需要重新打开文件,而对相同文件读写的效果(并不是分享文件句柄)。Chromium对这个特性做了封装。原创 2015-11-02 01:15:05 · 3337 阅读 · 0 评论 -
[OOD-More C++ Idioms] 内部类 (Inner Class)
不用通过多重继承就可以实现多套接口,同时可以自然地向上转换(Up-casting)。在单个抽象下提供相同接口的多个实现。翻译 2015-10-21 22:50:47 · 2515 阅读 · 0 评论 -
线程安全的观察者模式的设计
观察者模式的应用,主要的行为就是注册和移除观察者(observer),以及通知所有已注册的Observers。这里介绍的是Chromium项目中实现的线程安全的观察者管理及通知的基础类ObserverListThreadSafe。原创 2015-08-05 01:12:28 · 4883 阅读 · 0 评论 -
为什么浏览器采用多进程模型
为什么浏览器采用多进程模型这个问题的答案似乎是非常清楚的,可以概括为:为了安全、稳定、性能,只是要牺牲点内存作为代价。对于安全和稳定,利用系统的进程机制就可以完成。但是多进程下的进程间通讯(IPC)很慢,而分为多进程后,一些协作任务就要分开到两个进程,如何能保持良好的性能,更不说比单进程模型更高的性能了? 所以这里再次探讨浏览器选择多进程架构的原因,以及对应架构中的要点。原创 2015-08-14 01:31:38 · 4665 阅读 · 1 评论 -
Chromium设计原则总结
文档的思路从需求决定设计开始展开Chromium主要设计特点。从来没有复杂的设计,它们都可以转换为简单的描述。期望能从学习中解开Chromium设计要点。原创 2015-04-07 00:38:22 · 5167 阅读 · 0 评论 -
[Chromium] Chromium Android WebView层的设计
Chromium Android WebView是Chormium专为Android WebView提供一个对Content的封装层。从整体上来看可以理解为一个特殊化的Embedder, 功能可以概括为: 1. 对Content和部分Browser Components封装到Java实现,供AOSP WebView调用实现WebView功能。 2. 实现Android WebView使用的原创 2015-04-07 00:16:53 · 6664 阅读 · 2 评论 -
Chromium多进程机制解析
关于Chromium多进程分析的文章很多了,这篇尝试以浅显的方式解释Chromium多进程机制,以及IPC高性能的基础。原创 2015-03-21 16:38:14 · 5171 阅读 · 0 评论 -
如何扩展Chromium各层的接口
添加新功能时,可能需要增加各层的接口,接口如何加?必然需要向Chromium的原则看齐。首先Chromium的模块设计遵循依赖倒置原则,上层模块依赖于低层模块,低层模块不会依赖上层模块的实现。原创 2014-12-22 23:39:13 · 4264 阅读 · 2 评论 -
[Chrome]关于面向接口编程的应用
面向接口编程是OOP中有效隔离变化的手段,同时要求开发者必须对问题进行有效抽象。Chrome为了兼容AOSP WebView和Chromium Android WebView, 在实现中做了许多的抽象,充分做到了上层只依赖于接口的原则(依赖倒置),可以有效的兼容不同的WebView实现,隔离其内部的变化。原创 2014-12-10 01:25:33 · 2956 阅读 · 0 评论 -
解耦设计手法小结
解耦是隔离变化的重要手段,这里以解耦代言隔离变化,其思想就是以分工协作代替全面控制,接口的定义大于业务逻辑的定义。其思考路径是:分不分?如何分?如何分是具体形式的问题,下面详述。分不分则取决于功能需求! 在手法上可以分为四个层次。原创 2014-12-06 23:16:34 · 9892 阅读 · 0 评论 -
Chromimum Android渲染介绍
Chromimum Android渲染介绍从概念上一个使用硬件加速(AC)时,页面显示的结构是Viewport -> Layer(s) -> Tile(s),所谓的纹理就是Tile上显示的内容。分块最大的好处就是重绘的单元变小,更利于降低系统开销。原创 2017-03-14 00:31:46 · 3093 阅读 · 0 评论