0. chromium源代码分析 - 序
本打算在CSDN写完这系列文字,却因为在CSDN中误删了一篇blog,该篇blog被移到了回收站。然而CSDN居然没有从回收站撤销删除的操作方法。联想到之前CSDN泄密的问题,其可靠性值得怀疑。随转向CNBlog来写这些文字。
偷得浮生半日闲。忙中偷闲看看chromium代码。看过一段,不禁感慨,不亏是一流的公司,写出的架构也是不一般。不看代码,就凭chrome在windows上运行的效率也能感受到chromium代码上的高效。
本人能有幸看到chromium的源代码,还要感谢google为开源事业做的支持。本人学疏才浅,能有chromium代码学习的机会,真是有幸。希望能借chromium之力,提升自我。
能写这系列文档,首先感谢google的开源,在我的印象中开源的东西要么就是功能简陋,要么就是bug满天飞,抑或是满篇代码没有半点注释。但chromium却很不一样,速度快,界面清爽,bug少。看其代码,注释也是满满的。
再次要感谢的是早期将chromium的UI抽取出来的前辈(很早期的前辈,现在baidu、google都无法找到了,未能记录前辈姓名十分惭愧。),前辈将chromium的UI部分抽取并公开出来--chromiumFrame。前辈已经将chromium的UI框架抽出,消息处理,基础类库等等都有分装。前人栽树后人乘凉,感谢前辈分析后能公开出来,我也是在前辈的chromiumFrame基础上再做深入的分析学习。
CSDN上研究Chromium的大神很多,我写这系列文章,只为自己记录点滴,不能与大神们做类比。且本人不善写作,很多文字只有自己能看明白,写在blog上,又不免会有看客看过。如有写不明道不白的地方还希望看客不要深究。若有错误之处,请回复指出,本人不胜感激。
言归正传。准备工具和代码,一览chromium风采。先要下载前辈的chromiumFrame,链接就请去前辈的blog查找。其次是工具sourceinsight,vs2008必备。
我这不编译Chromium。3年前i5+8G的机器,chromium我编译了整整4个小时,vs调试起来也非常的慢。这种方式导致我一直没有深入的的学习chromium。3年后的今天我决定用2012年的代码开始学习框架。我相信chromium这4年来在框架上变化应该不会太大。
以下是大神文章的参考,记录不全,如有参考定不敢遗漏,日后增补。
上文提到的前辈暂时无法找到,日后定要寻到并记录:
http://blog.csdn.net/caimouse/archive/2008/09/07/2893806.aspx
http://www.2cto.com/kf/201312/261130.html
http://blog.csdn.net/makefish/article/details/5700279
0. chromium源代码分析 - 序的更多相关文章
- 《LINUX3.0内核源代码分析》第二章:中断和异常 【转】
转自:http://blog.chinaunix.net/uid-25845340-id-2982887.html 摘要:第二章主要讲述linux如何处理ARM cortex A9多核处理器的中断.异 ...
- Android5.0 Recovery源代码分析与定制(一)【转】
本文转载自:http://blog.csdn.net/morixinguan/article/details/72858346 版权声明:本文为博主原创文章,如有需要,请注明转载地址:http://b ...
- 1.4. chromium源代码分析 - chromiumframe - 消息系列
Message framework 是对消息循环的封装和扩展,Chromium在消息循环中增加处理内部任务的工作.将内部工作处理寄生在Windows的消息循环中,会有一个问题,就是没有Windows自 ...
- 1.3. chromium源代码分析 - chromiumframe - 窗口系列
在_tWinMain中有这样两条语句: MainWindowDelegate delegate; view::Window::CreateNativeWindow(NULL, gfx::Rect(), ...
- 1.2. chromium源代码分析 - chromiumframe - 入口函数
ChromiumFrame的入口函数在main.cpp中,打开main.cpp.中包含3个类和_tWinMain函数._tWinMain就是我们要找的入口函数.我做了部分注释: int APIENTR ...
- 1.1. chromium源代码分析 - chromiumframe - 介绍
本人能力有效,面对chromium庞大的代码就头大.还是先由前辈的chromiumFrame入手. 1. chromeFrame概貌 chromiumFrame是前辈的心血之作,以最小化的方式抽出ch ...
- Android HandlerThread 源代码分析
HandlerThread 简单介绍: 我们知道Thread线程是一次性消费品,当Thread线程运行完一个耗时的任务之后.线程就会被自己主动销毁了.假设此时我又有一 个耗时任务须要运行,我们不得不又 ...
- Spark SQL Catalyst源代码分析之UDF
/** Spark SQL源代码分析系列文章*/ 在SQL的世界里,除了官方提供的经常使用的处理函数之外.一般都会提供可扩展的对外自己定义函数接口,这已经成为一种事实的标准. 在前面Spark SQL ...
- chromium源代码下载(Win7x64+VS2013sp2, 39.0.2132.2)
chromium源代码下载(Win7x64+VS2013sp2, 39.0.2132.2) http://www.aichengxu.com/diannao/1000251.htm 前后折腾了四天,当 ...
随机推荐
- vmlinux,vmlinuz,bzimage,zimage,initrd.img的区别与联系
1.vmlinux vmlinux是未压缩的内核,vmlinux 是ELF文件,即编译出来的最原始的文件.用于kernel-debug,产生system.map符号表,不能用于直接加载,不可以作为启动 ...
- ie8不兼容input的placeholder属性但是要实现其效果的方法
通过学习前辈的思想,个人想法整理如下: 通过两个元素标签,仿造出placeholder的内容 使用position定位好两个元素标签 第一要隐藏两个元素标签display:none,在<!--[ ...
- SharePoint 2013 WebPart属性面板配置
为WebPart添加右侧的属性面板,方便将来对于WebPart的配置,我们只需要在CustomWebPart.cs文件里面,声明一下变量即可: private string url = string. ...
- SqlServer导库语句
GO /****** 对象: StoredProcedure [dbo].[sp_ExportDatabase] 脚本日期: 07/18/2013 12:37:26 ******/ SET ANSI_ ...
- leetcode LRU Cache python
class Node(object): def __init__(self,k,x): self.key=k self.val=x self.prev=None self.next=None clas ...
- leetcode Remove Duplicates from Sorted Array python
class Solution(object): def removeDuplicates(self,nums): if len(nums) <= 0: return 0 j=0 for i in ...
- QF——OC字符串
OC中的字符串: C中没有字符串类型,用字符数组和指针代替. OC中引入了字符串类型,它包括NSString 和 NSMutableString两种 NSString是不可变的,已经初始化便不能更改: ...
- 初识JavaScript,感觉整个人都不好了。。。
学习web前端的开发已经将近一个月了,开发中的三个大兄弟——“html”.“css”.“JavaScript”,小哥我已经深入接触了前两位,并与他俩建立的深厚的友谊.在编写过程中,不能说达到各位大神的 ...
- Java编程中提高性能的几点建议
尽量减少对变量的重复计算 如 for(int i=0;i<list.size();i++) 应该改为 for(int i=0,len=list.size();i<len;i++) 并且在循 ...
- 对config配置文件的读取和修改
在c#中想要使用对congfig文件的操作必要引用一个dll“system.configuration.dll” 读取 : string str= System.Configuration.Conf ...