- 博客(17)
- 资源 (44)
- 收藏
- 关注
原创 谷歌浏览器的源码分析(16)
上一次说到需要调用这个OpenURLFromTab函数,那么这个函数是做什么的呢?从名称上可能猜到它是打开网页,但是是从目前TAB页里打开呢?还是新建一个?或者使用每个TAB页一个进程呢?这些疑惑,只能通过代码的分析来理解它的实现,代码如下: 这个函数的参数意思:source是TAB内容。url是网络连接地址。disposition是窗口打开的位置。transitio
2008-09-30 23:55:00 7185 1
原创 谷歌浏览器的源码分析(15)
上一次说到发送命令给浏览器对象打开网页显示,但还没有分析它是怎么实现的,现在就来分析这方面的内容,如下:<span lang="EN-US" style="font-family:新宋体;mso-fareast-language:ZH-CN">#001 voidBrowser::ExecuteCommand(int id) {<span lang="EN-US" styl
2008-09-29 23:45:00 6334 1
原创 谷歌浏览器的源码分析(14)
上一次说到控制类的派生类LocationBarView,现在就来分析这个函数的功能,看看它又把URL连接传到那里去,立即就去看代码,在这行代码controller_->OnAutocompleteAccept里,可以看到调用函数OnAutocompleteAccept,它的代码如下:#001 void LocationBarView::OnAutocompleteAccept(#0
2008-09-26 22:09:00 8453 4
原创 谷歌浏览器的源码分析(13)
上一次说到调用函数OpenURL来打开网络连接,这仅是网络浏览的开始,现在再来分析它怎么样去下载网页数据,然后再显示出来。#001 void AutocompleteEdit::OpenURL(const std::wstring& url,#002 WindowOpenDisposition disposition,
2008-09-24 21:29:00 8447 2
原创 谷歌浏览器的源码分析(12)
当我们根据自动提示,或者完全自己输入连接后,再按下回车键,这时浏览器就会去打开网页,或者去查找内容。那么浏览器是怎么样实现这些功能的呢?又是怎么判断去打开网页,还是去打开GOOGLE的搜索引擎的呢?下面就来分析这部份的代码,如下:<span lang="EN-US" style="font-family:新宋体;mso-fareast-language:ZH-CN">#001 boo
2008-09-23 00:22:00 10045 11
原创 谷歌浏览器的源码分析(11)
上一次介绍到怎么样从其它地方返回搜索到的超级连接,现在就来分析一下使用搜索引擎去查找的类<b style="mso-bidi-font-weight:normal">SearchProvider,它是通过搜索引擎来查找出来的,在这里是通过GOOGLE搜索引擎来查找出来。它的声明如下:<span lang="EN-US" style="font-family:新宋体;mso-fareas
2008-09-22 00:05:00 9051 4
原创 谷歌浏览器的源码分析(10)
上一次已经分析到输入字符后,就需要把这些关键字去查找历史的连接,或者相关的内容,那么可多米的浏览器又是从那里去找到这些数据呢?现在就来分析这方面相关的内容。它主要通下面的函数来实现:<span lang="EN-US" style="font-family:新宋体;mso-fareast-language:ZH-CN">#001 voidAutocompleteEdit::Upd
2008-09-19 22:00:00 8982
原创 谷歌浏览器的源码分析(9)
为了处理字符消息实现自动完成的功能,这是怎么样实现的呢?其实是先记录字符消息响应前的字符串以及选中状态,接着再处理消息,最后才查询可能的输入,做出智能提示。#001 void AutocompleteEdit::OnBeforePossibleChange() {#002 // Record our state. 记录当前已经输入的字符串。#003 text
2008-09-18 22:13:00 11826 3
原创 谷歌浏览器的源码分析(8)
上一次说到处理WM_CHAR消息,当用户每键入一个字符时,万能连接框就会去进行一次查找的过程,然后把智能提示信息显示出来。说到AutocompleteEdit::HandleKeystroke函数的操作,那么它为什么需要冻结这个函数的使用呢?现在就来分析这部份的内容。如下:ScopedFreeze freeze(this, GetTextObjectModel());在这行代码里,首
2008-09-17 23:14:00 11518 6
原创 谷歌浏览器的源码分析(7)
当我们键入字母或者文字开始时,那么类AutocompleteEdit就会从窗口消息里获取到相应的字母或者文字,然后根据输入的信息到本地或者网络上保存的信息库里查找相应的输入提示,这就是自动完成的实现。下面就来先分析输入的函数:#001 void AutocompleteEdit::OnChar(TCHAR ch, UINT repeat_count, UINT flags) {#0
2008-09-16 23:00:00 12803 8
原创 谷歌浏览器的源码分析(6)
前面已经介绍了这么引人的输入自动完成功能,并且可以在输入超级连接框里直接通过GOOGLE搜索所有的内容,这是比较大的创新,不但可以节省界面的占用面积,还很方便大家查询的需要,比如记不住的连接,根本不需要去记了,只要你记住需要的内容就行了。这样既不需要到什么门户网站去找连接,也不需要去记住众多的网站,这个功能是非常方便的。<span style="font-family:新宋体;mso-fa
2008-09-14 23:33:00 16755 9
原创 谷歌浏览器的源码分析(5)
当用户打开浏览器之后,最希望输入的地方,是浏览器的连接框。目前谷歌浏览器把输入连接框与搜索引擎输入合并到一起,可以说完美的组合,让界面更加简洁,方便实用,并且它自动完成的功能更加强劲,如下图所示: 上面输入了www.c时,它就会自动地在后面添加智能选择的连接,并且可以GOOGLE里搜索输入的内容,又如下面: 上
2008-09-12 23:32:00 15925 8
原创 谷歌浏览器的源码分析(4)
关于对话框,主要实现了让用户查看当前软件的版本、软件信息和检查升级的功能。因此这个类主要继续ChromeViews::View类、ChromeViews::DialogDelegate和GoogleUpdateStatusListener。其中ChromeViews::View实现窗口的布局和显示问题,ChromeViews::DialogDelegate实现了事件响应,或者窗口某时是否可以显示按
2008-09-12 14:29:00 22567 15
原创 谷歌浏览器的源码分析(3)
前面修改了chrome关于对话框,并且编译显示出来了,那么它是在那里调用显示的呢?现在就带你去了解它。由于它是界面显示,那么不用想,直接到界面的工程里查找它,也就是到目录src/chrome/browser/views里查看到文件about_chrome_view.cc。 这个文件里声明了一个类AboutChromeView,它就是主要负责初始化对话框、布局、显示字符串等等,比如显示“关于可乐
2008-09-10 22:23:00 36879 11
原创 谷歌浏览器的源码分析(2)
这么大的工程,我从哪里开始呢?我认为从界面开始,这样才可以快速地深入研究。下面就可以先尝试修改一个chrome的关于对话框,上一次看到它是英语的,那么我就来把它改成中文的吧,这样有目标了。从chrome的工程里可以看到它是支持多种语言的,在Windows平台上支持多语言的标准做法,就是写多个语言的DLL。因此,chrome也不例外,从app工程集里,就可以看到如下图所示: 上面显示了多种语言的
2008-09-08 23:18:00 38910 36
原创 谷歌浏览器的源码分析(1)
随着网络技术的发展,越来越多应用都已经离不开网络,特别像人类大脑一样的知识库的搜索引擎,更加是离不开功能强大的云计算。不过,即便云计算非常强大,但它还不能直接地把结果呈现给用户,这样就需要一个客户端来呈现出来,这个客户端就是浏览器。现在越来越多人上网,他们每一次上网,都离不开浏览的使用,这已经是一个不可缺少的软件了。这里介绍和分析谷歌推出有创新的浏览器,它的速度比其它浏览器快很多,那么它是怎么实现
2008-09-07 10:28:00 59250 60
原创 使用VC2005编译出现这个错误
Include/unknwn.idl(108) : error MIDL2025 : syntax error : expecting ] or , near "annotation"Include/unknwn.idl(108) : error MIDL2026 : cannot recover from earlier syntax errors; aborting compilation 如
2008-09-06 22:01:00 5674
python抓取天气并分析 实例源码
2017-08-28
书《深度学习》
2017-03-13
国产8051模拟器
2016-09-10
tinyxml2配套源码
2016-06-27
selenium的浏览器驱动
2016-06-14
开源鸿蒙4.0不能进入桌面的补丁
2024-03-17
开源鸿蒙 4.0 RK3566开发板配置
2024-03-17
svm_hog_data.rar
2020-03-02
实现numpy的C++库扩展
2019-11-24
python web py入门配套源代码
2018-02-23
webpy演示例子1
2018-02-21
胶囊模型的代码
2018-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人