大坡3D软件开发

自主操作系统和CPU--用软件来改变世界

从抢票软件到浏览器设计

自从12306网站上售票之后,彻夜排队的囧态被刷系统的焦虑所取代,而互联网公司则顺势推出了不同版本的“抢票插件”。将插件镶嵌在浏览器上,自春运以来,金山、360们运作得风生水起。看似为用户带来方便、操作简单的一款小小插件,背后却隐藏着一场关于浏览器的争夺战,一场收获真金白银利益之争。 首先来看看抢...

2013-01-26 20:08:26

阅读数 4452

评论数 1

谷歌浏览器的源码分析(34)

通过上一次的分析,我们看到所有网页数据经过HTML分析器之后,都会变成一个一个RenderObject对象,那么这些RenderObject对象又是怎么样显示到界面上面的呢?现在就带着这个疑问来分析下面的代码,这样肯定会找到解决方法的。怎么样找到入口呢?其实可以先从界面显示的类开始,可以看到显示界...

2008-11-18 22:54:00

阅读数 16918

评论数 18

谷歌浏览器的源码分析(33)

上一次说到图像缓存起来,其实很多情况下是文本的显示,也就是HTML的解释。要把网页显示出来,肯定是先从HTTP里收到网页数据,然后再使用HTML分析器来解释HTML语言,最后根据HTML来生成所有可以显示的元素,再由于这些元素生成BMP位图,这样只需要把BMP位置显示到窗口里就万事大吉了。这个过程...

2008-11-16 16:21:00

阅读数 5538

评论数 1

谷歌浏览器的源码分析(32)

 上一次说到在类ResourceDispatcher会收到接收HTTP数据消息,并进一步处理数据。那么ResourceDispatcher类又把接收到的数据发往何处呢?这是需要我们去搞懂它的。通过进一步的跟踪,会发现在ResourceDispatcher::OnReceivedData函数调用We...

2008-11-13 22:35:00

阅读数 4892

评论数 3

谷歌浏览器的源码分析(31)

 上一次说到通过管道把接收到的HTTP数据通知另一个线程处理,它不是直接发送数据过去,而是把数据在共享内存里的句柄发送过去,达到高效通讯的目的。下面就来分析资源处理进程里,接收到这个消息之后,做些什么处理。这个消息的处理代码如下: #001  void ResourceDispatcher::On...

2008-11-09 23:30:00

阅读数 5994

评论数 7

谷歌浏览器的源码分析(30)

 上次说到函数WinHttpReadData接收数据到缓冲区里,那么这些数据又是怎么样传送给下一步处理的呢?带着这个问题,我们来分析下面这段代码,如下:#001  void HttpTransactionWinHttp::HandleStatusCallback(DWORD status,#002...

2008-11-05 22:51:00

阅读数 9545

评论数 0

谷歌浏览器的源码分析(29)

 上一次说到通过WinHTTP来接收网络数据,但没有具体介绍怎么样接收,现在就来分析这方面的代码。首先是通过函数WinHttpQueryHeaders来查询HTTP协议头的大小,接着还是通过函数WinHttpQueryHeaders把数据接收到缓冲区里。下面这段代码,就是做这样的事情:#001  ...

2008-11-02 19:40:00

阅读数 8173

评论数 3

谷歌浏览器的源码分析(28)

 上一次说到使用WinHTTP函数来创建HTTP连接,并且使用它来发送请求,那么数据接收回来,当然也是从它那里接收的,因此下面来分析它的接收数据的几个函数,然后再来看看chrome里收到数据后发送到那里处理。在WinHTTP里使用WinHttpOpen函数来创建HTTP连接,然后使用WinHttp...

2008-10-27 22:02:00

阅读数 7616

评论数 1

谷歌浏览器的源码分析(26)

 消息的流通过程,是一个不同类相互交流的过程,如果不了解这个过程,根本就不知道这些类是怎么样相互协作的。由于上一次说到ViewHostMsg_RequestResource消息已经发送出来,它的处理过徎其实就是一般资源的消息处理过程,下面就来看看这个消息的处理过程,如下:1.       base...

2008-10-14 20:56:00

阅读数 10822

评论数 5

谷歌浏览器的源码分析(25)

 上一次说到需要把显示的网络连接地址变成一个资源的消息发送出去,它是通过函数ResourceHandle::create来实现的,但这个函数到底是怎么样实现的呢?现在就分析它的实现代码,了解它怎么样把资源变换成消息,并且通过IPC机制把消息发送到资源下载进程去。数ResourceHandle::c...

2008-10-13 21:40:00

阅读数 7165

评论数 2

谷歌浏览器的源码分析(24)

继续上一次的分析,这里开始把连接址和其它相关的信息传送frame_->loader()->load函数里面,那么在这个函数里面到底是怎么样处理的呢,只有去分析它的代码,我们才能找到它的答案,现在就来开始看吧,如下:<span lang="EN-US" styl...

2008-10-12 13:54:00

阅读数 7008

评论数 1

谷歌浏览器的源码分析(23)

 继续上一次来分析LoadRequest的代码,在分析这个函数代码之前,先看看WebFrame类的继承层次关系,如下:class WebFrame : public base::RefCounted {WebFrame是一个接口类,但它先继承引用计数类RefCounted,这样对于这个对象多次访问...

2008-10-09 21:55:00

阅读数 7178

评论数 3

谷歌浏览器的源码分析(22)

 上一次说到消息转发,并分析了RenderThread类里处理消息的函数,其实大部份的消息都是在RenderView类里的OnMessageReceived函数处理,比如浏览的消息也是在这里处理。它的代码如下:#001  void RenderView::OnMessageReceived(con...

2008-10-07 21:34:00

阅读数 6846

评论数 0

谷歌浏览器的源码分析(21)

 上一次说到类RenderThread和类RenderView把消息处理,那么这两个类是怎么样处理消息的呢?又是怎么样处理浏览的消息呢?现在就带着这两个问题去分析它的源码,理解它处理消息的方法。类RenderThread处理消息的代码如下:#001  void RenderThread::OnMe...

2008-10-05 11:55:00

阅读数 6941

评论数 3

谷歌浏览器的源码分析(20)

 上一次介绍到把网页连接地址生成一个消息通过IPC机制把消息发送出去,那么IPC的通讯机制是怎么样的呢?又是发送给谁呢?由于这个浏览器是使用多进程的架构来工作的,所以进程之间就需要相互交流,这种交流是就是通讯,可以从源码里看到它是使用IPC的机制来通讯,实际采用的技术,就是Windows的命名管道...

2008-10-04 13:38:00

阅读数 7067

评论数 2

谷歌浏览器的源码分析(19)

 继续上一次分析到类WebContents的Navigate函数,在这个函数里通过参数entry传送入来,这样它只需要根据这个参数去下载网页回来显示,应就可以了吧,但到底是怎么样工作的呢?这需要深入去分析它,才知道它是什么样的结果。#001  #002  bool WebContents::Nav...

2008-10-03 20:07:00

阅读数 7600

评论数 5

谷歌浏览器的源码分析(17)

 当输入的网页连接传送给LoadURL函数之后,还需要处理很多内容,其实这是由类NavigationController来管理的,NavigationController类主要就是管理加载网页、退回、前进等等控制。#001  void NavigationController::LoadURL(c...

2008-10-01 09:46:00

阅读数 6807

评论数 1

谷歌浏览器的源码分析(16)

 上一次说到需要调用这个OpenURLFromTab函数,那么这个函数是做什么的呢?从名称上可能猜到它是打开网页,但是是从目前TAB页里打开呢?还是新建一个?或者使用每个TAB页一个进程呢?这些疑惑,只能通过代码的分析来理解它的实现,代码如下: 这个函数的参数意思:source是TAB内容。url...

2008-09-30 23:55:00

阅读数 6785

评论数 1

谷歌浏览器的源码分析(14)

 上一次说到控制类的派生类LocationBarView,现在就来分析这个函数的功能,看看它又把URL连接传到那里去,立即就去看代码,在这行代码controller_->OnAutocompleteAccept里,可以看到调用函数OnAutocompleteAccept,它的代码如下:#00...

2008-09-26 22:09:00

阅读数 7979

评论数 4

谷歌浏览器的源码分析(13)

 上一次说到调用函数OpenURL来打开网络连接,这仅是网络浏览的开始,现在再来分析它怎么样去下载网页数据,然后再显示出来。#001  void AutocompleteEdit::OpenURL(const std::wstring& url,#002                  ...

2008-09-24 21:29:00

阅读数 8136

评论数 2

提示
确定要删除当前文章?
取消 删除