共 22 篇文章 |
|
Test Shell虽然也依赖content模块,但是它还依赖于chrome浏览器的很多基础设施和组件(android平台的chrome内核),更像是测试它们的一个简单浏览器,因为chrome for android的UI部分不开源,所以Test Shell应该是最接近它的一个工具,可以帮助理解chrome for android的架构和内部原理。目前,Android系统中的android.webkit.WebView是一个很重... 阅5412 转5 评0 公众公开 13-04-28 14:47 |
上图介绍的是WebKit的chromium移植接口和Content API在整个栈中所在的层次,“API boundary”是原来的WebKit的chromium移植所提供的公开接口,“Content API”表示的是新的content API所在的层次。其好处是,CEF3的接口相对比较简单,使用起来方便,同时不需要实现很多content API的回调接口,但是缺点就是,如果需要使用content API的很多功能... 阅1340 转5 评0 公众公开 13-04-28 14:30 |
Chromium移动版。抛开这些争论,Chromium的iOS版已经上线了,不过这是一个没有chromium内核的浏览器,其基于的是iOS提供的UIWebView(一个嵌入式的网络渲染模块,该模块提供对网页渲染和HTML5的支持),加上Chromium风格的UI。我们知道Chromium是一个开源的项目,但是,chromium的Android版从开始之初就是一个闭源的项目,其基于一个稳定的chro... 阅652 转0 评0 公众公开 13-04-28 14:04 |
因为多个renderer进程共享同一种的plugin进程,那么plugin进程如何为它们服务呢?当plugin进程创建成功时,browser进程会返回IPCchannel handle用于创建和plugin进程通讯的PluginChannelHost. 那它什么时候被销毁呢?当在plugin进程调用这些函数时,chromium会覆盖PluginHost的部分函数,而这些新的callback函数会调用NPObjectProxy来通过IPC发... 阅1922 转5 评0 公众公开 13-04-28 14:00 |
WebKit布局 (Layout)CSS布局计算是基于箱子模型来进行的,其基本构成是一个矩形区域,包含了外边距(margin),内边距(padding),边框(border)和内容(content),也就是说每个元素的布局都是按照箱子模型来排布的,通过设置这些属性,达到特定的布局效果。如果页面元素定义了其自己的宽高,那么webkit按照其定义的宽高来确定其大小,而对于象文本... 阅340 转1 评0 公众公开 13-04-28 11:14 |
WebKit的CSS实现。# CSS在WebKit和Chromium中的实现。被解析后的CSS样式其实就是一组样式规则,每一个规则包含一组选择器和一组样式属性。大致的过程是,JavaScript引擎调用设置属性值的公共处理函数,然后该函数调用属性值解析函数,在这个例子中则是CSS的JS绑定函数,而后将解析后的信息设置到元素的style属性的样式webkitTransform中,然后... 阅2833 转6 评0 公众公开 13-04-28 09:04 |
WebGL及其实现。# WebGL及在WebKit和Chromium中的实现。第一步,当JavaScript的代码通过HTML Canvas对象创建3D上下文时,WebGL模块便为其创建一个绘制3D图形用的上下文对象,该对象在GPU进程中会有一个实际的OpenGL ES的上下文对象对应。第六步和第七步,因为WebGL的纹理对象是在这些GL的上下文对象中共享的,WebGL模块切换到合成器的上下文对... 阅1582 转10 评0 公众公开 13-04-27 11:11 |
Canvas2D及其实现。本章将重点介绍Canvas 2D方面的只是及在WebKit和chromium中的实现, Canvas 3D也就是WebGL将在下一章中作介绍。Chromium中的Canvas2D的绘制操作的实现都是由图形库skia来完成,这里包括软件和硬件加速实现,chromium所要做的就是把WebKit中的调用交给skia来执行并和自己的绘制模型和硬件加速机制集成起来。实现WebKit中的平... 阅1697 转3 评0 公众公开 13-04-26 15:31 |
本节主要介绍WebKit中为硬件加速所做的另外一些基础设施,接着是chromium中为硬件加速合成所做的支持,最后介绍chromium中最新的合成器:chromium compositor(cc)。WebKit提供了基础设施, 但要实现硬件加速合成,各个移植还有很多事要做,chromium也是如此,见上图中的Chromium部分。大致地,可以把Chromium中的关于硬件加速合成部分分成两块... 阅654 转4 评0 公众公开 13-04-26 14:48 |
Chromium的GPU硬件加速。如果想使用Chromium的GPU硬件加速功能,首先需要你的GPU驱动程序不在chromium的黑名单中。Chromium只会创建一个GPU进程,该进程被所有的Renderer进程和Pepper plugin进程所共享,但是GPU进程会为不同的进程创建不同的command buffer的示例。Command Buffer主要用于GPU进程(且称为GPU 服务端)和GPU的调用者进程(且称G... 阅1502 转1 评0 公众公开 13-04-25 15:54 |