前言   基础篇 WebKit, WebKit2, Chromium和Chrome介绍 WebKit和Blink WebKit和Chromium代码目录结构介绍 WebKit和Chromium功能模块 Chromium界面(UI) Chromium多进程模型 Chromium的多线程机制 消息循环 页面渲染的基本过程 HTML解析和DOM CSS基础 WebKit渲染基础 渲染主循环(main loop)和requestAnimationFrame WebKit资源加载机制 Chromium的多…
转载请注明原文地址:http://blog.csdn.net/milado_nju ##概述 插件和扩展是一种扩充浏览器功能的技术,在之前我们介绍过NPAPI插件技术,在Chromium中,远远不只是这一种技术,这里面包括PPAPI机制,NativeClient技术和Extension机制.这些新技术极大的扩展了浏览器的能力,下面逐次来介绍它们.限于篇幅,这里只是简单介绍一下它们的基础知识,详细的内容会有专门的文章来介绍它们. ## PPAPI插件 PPAPI的提出是因为NPAPI的可移植性和性…
转载请注明原文地址:http://blog.csdn.net/milado_nju ## 概述 在前面的章节中,笔者介绍了WebKit渲染引擎是如何有HTML网页构建DOM树.RenderObject树到RenderLayer树,以及它们之间的对应关系.这一渲染基础被软件渲染和硬件渲染共享,也就是说不管哪种类型的渲染机制,WebKit渲染引擎都会构建它们.不过对于软件渲染而言,到RenderLayer树就结束了,后面不会建立其它额外的树来对应于RenderLayer树.但是,对于硬件渲染来说,这…
转载请注明原文地址:http://blog.csdn.net/milado_nju 1. Android上的调试技术 在Android系统上,开发人员能够使用两种不同的语言来开发应用程序,一种是Java语言,开发人员使用的是Android SDK来配置和编译这些代码,生成Java语言的class文件,也就是Java虚拟机执行的二进制代码.Android系统使用.dex文件将一系列的class文件压缩在一起.第二种是C/C++语言,使用Android NDK来配置和编译这些代码.这些代码经过NDK…
转载请注明原文地址:http://blog.csdn.net/milado_nju ## 概述 相信读者已经注意到了,在最新的Android 4.4 Kitkat版本中,原本基于Android WebKit的WebView实现被换成基于Chromium的WebView实现.在前面的章节中,笔者也介绍过基于Chromium的WebView实现即将成为Android系统上的缺省实现方式,笔者也一直期待这一重大转变,现在它真的发生了.而之前基于WebView接口的应用程序甚至可以直接工作在该实现上而不…
转载请注明原文地址:http://blog.csdn.net/milado_nju ## 概述 前面介绍了一些渲染引擎的功能,包括网络,资源加载,DOM树,RenderObject树等等,但是,给人以零乱的感觉,因为没有一个整体的过程描述它们在这个过程中的位置,它们只是整个渲染引擎工作的一个或者多个步骤而已. 渲染引擎的主要目的就是从一个网页的URL开始,经过一系列的复杂处理过程之后,变成一个可视化的结果,这一过程就是这里所说的页面渲染的基本过程. 所谓的渲染,就是根据描述或者定义构建数学模型,…
转载请注明原文地址:http://blog.csdn.net/milado_nju ## 概述 想象一下,如果没有磁盘缓存的世界.当用户访问网页的时候,每次浏览器都需要从网站下载网页,图片,JS等资源,这其实费力又不讨好.解决这一问题的方法就是将之前浏览器下载的资源保存下来,存到磁盘中,以备今后使用.当然,资源有时效性,也会变的不再有效,所以有相应的退出机制来解决这一问题.在现代浏览器中,绝大多数浏览器都有磁盘缓存机制,因为它确实能够提高网页的加载速度,能够省去了网络的时间. ## 特性 为了适…
转载请注明原文地址:http://blog.csdn.net/milado_nju ##概述 前面介绍了WebKit中的资源加载机制,其实它只是一个框架性的东西,实际的资源加载依赖于各个WebKit移植的实现.在Chromium中,它采用了多进程资源加载机制.本章带你了解背后的故事. ##多进程资源加载机制 Chromium的资源加载机制,其实也就是实现ResourceHandle之下的工作.Chromium的资源加载进程如下图所示. 通过对Chromium多进程架构的了解,我们知道Browse…
转载请注明原文地址:http://blog.csdn.net/milado_nju ## 数据对比 前面介绍过Chromium WebView的时候,说过有关ChromiumWebView同Chrome浏览器有很多不同之处,下面以Chromium Content Shell来对比来描述Chromium WebView,这是因为Chrome浏览器的渲染机制等同Content Shell是类似的,不过Chrome浏览器上层代码是源的,所以笔者使用自己编译的Content Shell来分析. 在仔细介…
转载请注明原文地址:http://blog.csdn.net/milado_nju 1. 什么是JavaScript引擎 什么是JavaScript引擎?简单来讲,就是能够提供执行JavaScript代码的运行环境.要解释这一概念,需要了解一些编译原理的基础概念和现代语言需要的一些新编译技术. 首先来看C/C++语言.它们是比较悠久的语言了,实际上就是使用编译器直接将它们编译成本地代码,这一切都是由开发人员在代码编写完成之后实施.用户只是使用这些编译好的本地代码,这些本地代码被系统的加载器加载执…