Chromium fast start机制

我们知道Chromium有一个Browser进程,多个Renderer进程。如果已经运行了Chromium浏览器,再通过快捷方式启动浏览器,会打开新的浏览器窗口,显示新标签页。或者创建一个新的浏览器进程,给它传递一个url参数,比如https://www.baidu.com/,就会在现有的窗口里面打开一个百度的页面。查看浏览器的进程,发现仍然只有Browser进程,那么第二次创建的新创建的进程哪里去了呢? 这就是Chromium的fast... Read More | Share it now!

Chrome HTTP Transport Security

传统的HTTP连接很容易被中间人攻击。比如当网络流量经过网络运营商的时候,运营商为了私利可能会在HTTP的数据中插入它自己的广告链接,也可能会把HTTP请求重定向到别的网址。随着现代浏览器对HTTPS的支持越来越普遍,很多重要的网站例如www.baidu.com把HTTP协议升级成HTTPS,保证网站的内容在传输的过程中不被篡改。然而大部分普通用户还是习惯在地址栏里输入HTTP网址来访问网站,互联网中也有很多的链接还是HTTP。为了保证兼容性,网站的后台可以把HTTP请求重定向到HTTPS,但是这有两个问题。一是客户端浏览器发起请求还是HTTP,这个过程可能会被中间人攻击,二是网站服务端每次都把HTTP重定向到HTTPS会增大服务器的负担。 HTTP... Read More | Share it now!

Chromium多线程

之前也写过Chromium多线程相关的博客,就不再重复了。这两天基于Chromium50画了一下Thread相关的图,想到了一个恰当的比喻,分享一下。 这是相关的类图。 我们把线程Thread比喻成一个机器人,我们告诉机器人怎么做事,那我们就可以跟机器人并行做一些事情。 我们把要做的事情按照协议打包成一个Task,这个Task包含各种所需的信息,机器人拿到Task就知道该如何做事。打包Task就是使用base::Bind接口返回一个无参数无返回值的Callback,这样特殊的Callback称之为Closure。 一开始机器人是出于关机状态的,所以需要调用Thread::Start开动机器人。然后机器创建一个UI交互界面MessageLoop,我们可以通过task_runner给这个MessageLoop... Read More | Share it now!

Chromium开发有用链接

收集一些Chromium开发用到的实用网址链接,不定时更新。 Chromium开发者文档。http://dev.chromium.org/developers/ Chromium设计文档。http://dev.chromium.org/developers/design-documents Chromium开发者论坛群组。https://groups.google.com/a/chromium.org/forum/#!forum/chromium-dev Chromium代码搜索。https://cs.chromium.org/ Chromium发布日历。https://www.chromium.org/developers/calendar ... Read More | Share it now!

Chrome extension features

Chrome浏览器一个非常厉害的地方是建立了一个强大的extension系统,提供了丰富的浏览器extension接口。我们打开Chrome网上应用商店https://chrome.google.com/webstore/category/extensions,可以看到第三方开发者用这些extension接口做出各种各样的扩展程序,比如广告过滤、视频下载等等。 Chrome的extension系统提供的extension接口在Chrome的代码实现里称之为“extension... Read More | Share it now!

避免编译器优化掉代码

c++代码编译成Release版本,编译器会做一些优化,生成的二进制可执行文件执行更快,体积更小。这种优化会复用栈上不同变量的空间,导致调试的时候,有些局部变量看不到了。比如如下代码: 在调试的的时候,调试器直接运行到printf(“%d”,... Read More | Share it now!

劫持浏览器首页越来越嚣张了

昨晚下班回家有个网友找我,说他的浏览器打开百度总是不停的刷新,让我远程给他看看。 然后就看看,在用户那里用浏览器打开百度果然是不停的刷新,切换到IE内核就正常了。然后用Fiddler抓个包看看,chrome内核下面浏览器打开百度会不停的刷新https://www.baidu.com/”,看网络包的内容,内容是: 百度的https网络包竟然被篡改了,... Read More | Share it now!