上一页 1 ··· 121 122 123 124 125 126 127 128 129 ··· 191 下一页
摘要: 上一次说到消息转发,并分析了RenderThread类里处理消息的函数,其实大部份的消息都是在RenderView类里的OnMessageReceived函数处理,比如浏览的消息也是在这里处理。它的代码如下:#001 void RenderView::OnMessageReceived(const IPC::Message& message) {#002 // Let the resource dispatcher intercept resource messages first.如果是资源消息,就直接分发去处理,以便提高效率。#003 if (resource_dispatcher 阅读全文
posted @ 2008-10-07 21:34 ajuanabc 阅读(253) 评论(0) 推荐(0)
摘要: 上一次说到类RenderThread和类RenderView把消息处理,那么这两个类是怎么样处理消息的呢?又是怎么样处理浏览的消息呢?现在就带着这两个问题去分析它的源码,理解它处理消息的方法。类RenderThread处理消息的代码如下:#001 void RenderThread::OnMessageReceived(const IPC::Message& msg) {#002 // NOTE: We could subclass router_ to intercept OnControlMessageReceived, but#003 // it seems simpler to 阅读全文
posted @ 2008-10-05 11:55 ajuanabc 阅读(161) 评论(0) 推荐(0)
摘要: 上一次介绍到把网页连接地址生成一个消息通过IPC机制把消息发送出去,那么IPC的通讯机制是怎么样的呢?又是发送给谁呢?由于这个浏览器是使用多进程的架构来工作的,所以进程之间就需要相互交流,这种交流是就是通讯,可以从源码里看到它是使用IPC的机制来通讯,实际采用的技术,就是Windows的命名管道的方式。可以看到这段代码:#001 bool Channel::CreatePipe(const wstring& channel_id, Mode mode) {#002 DCHECK(pipe_ == INVALID_HANDLE_VALUE);#003 const wstring pipe 阅读全文
posted @ 2008-10-04 13:38 ajuanabc 阅读(201) 评论(0) 推荐(0)
摘要: 继续上一次分析到类WebContents的Navigate函数,在这个函数里通过参数entry传送入来,这样它只需要根据这个参数去下载网页回来显示,应就可以了吧,但到底是怎么样工作的呢?这需要深入去分析它,才知道它是什么样的结果。#001 #002 bool WebContents::Navigate(const NavigationEntry& entry, bool reload) {从渲染显示管理器里获取当前连接渲染显示对象。#003 RenderViewHost* dest_render_view_host = render_manager_.Navigate(entry);# 阅读全文
posted @ 2008-10-03 20:07 ajuanabc 阅读(140) 评论(0) 推荐(0)
摘要: 现在继续分析浏览器去下载网页的过程,上一次说到需要分析函数NavigateToPendingEntry,在这个函数又是怎么去处理下载网页的呢?那就需要分析它的源码了,如下:#001 void NavigationController::NavigateToPendingEntry(bool reload) {#002 TabContents* from_contents = active_contents_;#003 #004 // For session history navigations only the pending_entry_index_ is set.下面从历史里找到入口选项 阅读全文
posted @ 2008-10-02 10:15 ajuanabc 阅读(207) 评论(0) 推荐(0)
摘要: 当输入的网页连接传送给LoadURL函数之后,还需要处理很多内容,其实这是由类NavigationController来管理的,NavigationController类主要就是管理加载网页、退回、前进等等控制。#001 void NavigationController::LoadURL(const GURL& url,#002 PageTransition::Type transition) {#003 // The user initiated a load, we don't need to reload anymore.#004 needs_reload_ = fal 阅读全文
posted @ 2008-10-01 09:46 ajuanabc 阅读(171) 评论(0) 推荐(0)
摘要: 上一次说到需要调用这个OpenURLFromTab函数,那么这个函数是做什么的呢?从名称上可能猜到它是打开网页,但是是从目前TAB页里打开呢?还是新建一个?或者使用每个TAB页一个进程呢?这些疑惑,只能通过代码的分析来理解它的实现,代码如下:这个函数的参数意思:source是TAB内容。url是网络连接地址。disposition是窗口打开的位置。transition是连接传送的类型。override_encoding是编码类型。#001 void Browser::OpenURLFromTab(TabContents* source,#002 const GURL& url,#003 阅读全文
posted @ 2008-09-30 23:55 ajuanabc 阅读(178) 评论(0) 推荐(0)
摘要: 上一次说到发送命令给浏览器对象打开网页显示,但还没有分析它是怎么实现的,现在就来分析这方面的内容,如下:#001 voidBrowser::ExecuteCommand(int id) {#002 if (!IsCommandEnabled(id)){#003 NOTREACHED() <<id;#004 return;#005 }#006 // This might happenduring QMU testing.#007 if(!GetSelectedTabContents())#008 return;#009 #010 s... 阅读全文
posted @ 2008-09-29 23:45 ajuanabc 阅读(141) 评论(0) 推荐(0)
摘要: sql server出错-transaction can not start while firehose mode 今天用EM修改SQL-SERVER 里的一张表里的某个字段,退出时SQL-SERVER 提示:“transaction can notstart while firehose mode”(firehose 是系统提供的一种游标模式,是由EM直接存取表时所用到的,据资料说是因为其连接一直处于打开状态所以故称“firehose",以提供查询速度。并且在此模式下不可以执行事务。) 再进入发现记录没有修改。因为当时我正在编辑一个程序,其中需要读取这张表,所以以为是这个原因,. 阅读全文
posted @ 2008-09-27 14:11 ajuanabc 阅读(201) 评论(0) 推荐(0)
摘要: 1.IFrame引入IFRAME NAME="content_frame" width=100% height=30 marginwidth=0 marginheight=0 SRC="import.htm"/ 你会看到一个外部引入的文件,但会发现有一个类似外框的将其包围,可使用: iframe name="content_frame" marginwidth=0marginheight=0 width=100% height=30 src="import.htm"frameborder=0/ 但你会发现还会有点问 阅读全文
posted @ 2008-09-26 22:58 ajuanabc 阅读(940) 评论(0) 推荐(0)
上一页 1 ··· 121 122 123 124 125 126 127 128 129 ··· 191 下一页